Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Обрезание текста по определенному кол-ву символов при выводе

Страницы: 1  |  2
26.01.2009, 14:09
Джоркаефф
Gogalev.ru

Зарегистрирован:
2006-06-19
Сообщений: 24

Приветствую!
Помогите, пожалуйста, разобраться и выбрать способ решения такой задачи:
1. Есть раздел со списком статей. У каждой статьи есть заголовок(строка), анонс (текст - HTML) и т.д.
2. на титуле надо вывести один объект из этого компонента в формате заголовок + обрезанный анонс по фиксированному количеству символов. Анонс необходимо предварительно перевести из HTML в текст. Если сть варианты, при которых HTML можно НЕ переводить предварительно в текст, то вообще замечательно...

Как решить эту задачу?

заранее признателен.

Жизнь проще, чем кажется.
28.01.2009, 13:40
Гость
Гость

обрезать то на определенном колличестве легко (напрмиер 150 символов)
".substr($f_Message,0,150)."
28.01.2009, 13:57
Джоркаефф
Gogalev.ru

Зарегистрирован:
2006-06-19
Сообщений: 24

Gость писал(а):
обрезать то на определенном колличестве легко (напрмиер 150 символов)
".substr($f_Message,0,150)."

Все оказалось настолько просто, что мне даже стало стыдноулыбка
Сработало...
Спасибоулыбка

Жизнь проще, чем кажется.
28.01.2009, 20:11
den

Зарегистрирован:
2005-10-28
Сообщений: 33

если установлен модуль поиска - то можно пользоваться функцией cuttext($text, $numchar) (текст и количество символов соответственно), она переводит html в текст, ищет $numchar символов, доходит до конца слова (чтоб посреди не резать), и добавляет многоточие. Т.е. символов получается не ровно $numchar, но зато выглядит более привлекательно.

 
28.01.2009, 23:13
Джоркаефф
Gogalev.ru

Зарегистрирован:
2006-06-19
Сообщений: 24

Не, этом проекте поиска нет, но за подсказку - спасибо. Приму к сведению!

Жизнь проще, чем кажется.
29.01.2009, 00:40
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

В mySQL есть функция SUBSTRING_INDEX(str,delim,count). Допустим у вас в компоненте есть поле Text, которое надо обрезать по первым 20 словам, то делается все очень просто:

В системные настройки компонента пишите:
Код:

$query_select = "SUBSTRING_INDEX(a.Text,' ',20) as ShortText";
$result_vars = "$f_ShortText";


теперь в переменной $f_ShortText доступен требуемый результат.

Temet nosce...
29.01.2009, 00:45
Джоркаефф
Gogalev.ru

Зарегистрирован:
2006-06-19
Сообщений: 24

Я смотрю, у меня сегодня просто праздник какой-тоулыбка
Спасибо всем оргомноеулыбка

Жизнь проще, чем кажется.
29.01.2009, 00:57
Гость
Гость

В последнее время на форуме больше конструктивных ответов большая улыбка
12.01.2012, 13:44
Гость
Гость

Цитата:
В mySQL есть функция SUBSTRING_INDEX(str,delim,count).
Допустим у вас в компоненте есть поле Text, которое надо обрезать по первым 20 словам, то делается все очень просто:

В системные настройки компонента пишите:
Код:

$query_select = "SUBSTRING_INDEX(a.Text,' ',20) as ShortText";
$result_vars = "$f_ShortText";


теперь в переменной $f_ShortText доступен требуемый результат.


Почему то не хочет работать никак
версия 4.6 стндарт
12.01.2012, 15:59
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

Попробуйте написать
Код:
$result_vars = '$f_ShortText';

а не
Код:
$result_vars = "$f_ShortText";


Ксю доставляет...
13.01.2012, 10:28
Гость
Гость

Вырезать при запросе к базе помоему может быть накладно при выборке, проще поле создать и туда складывать
198 196 2012-01-16 15:54:01 9561
Страницы: 1  |  2
Описание проекта