это делается по средствам php. Такие фишки вставляют в модуля.
Лично я всегда пользуюсь easyblog и в нём по умолчанию обрезание параграфами словами или символами. Плюс от рокетов есть замечательный
компонент sprocket для вывода материала с easy blog.
Обрезка текста средствами php
Обрезать текст можно по-разному. Самая простая функция-это substr.
Этой функции нужно передать 3 аргумента. Первый-сама строка,второй-с какого символа начать обрезать текст(нумерация начинается с нуля), и третий-сколько символов обрезать.
$a = 'English Message';
$b = substr($a, 0, 7);
echo $b;//Выведет 'English'
$c = substr($a,8,7);
echo $c;//Выведет 'Message'
С русским текстом такая функция не всегда прокатит, поэтому нужно использовать mb_substr. Работает она точно также.
$a = 'Сама строка,которую нужно обрезать.';
$b = mb_substr($a, 0, 4);
echo $b;//Выведет 'Сама'
$c = mb_substr($a, 5, 6);
echo $c;//Выведет 'строка'
Если мы хотим добавить многоточие в том случае, когда строка обрезана - то нужно сравнить длину строки с длинной обрезаемого текста.
$a = 'Сама строка,которую нужно обрезать.';
$lenght = 5;
$b = mb_substr($a, 0, $lenght);
if (mb_strlen($a) > $lenght) {
$b .= '...';
}
echo $b;
Где $lenght - длинна обрезаемого текста.
Или просто сравнить исходную строку и обрезанную. Но это частный случай.
$a = 'Сама строка,которую нужно обрезать.';
$b = mb_substr($a, 0, 10);
if ($a != $b) {
$b .= '...';
}
echo $b;
Чтобы обрезать по пробелу, то есть взять например 5 первых слов-то строку следует разделить по пробелам и взять первые 5 элементов.Вот так:
$str='Этот текст имеет большое количество
пробелов и состоит из нескольких слов';
//разбиваем на массив
$arr_str = explode(" ", $str);
//берем первые 6 элементов
$arr = array_slice($arr_str, 0, 6);
//превращаем в строку
$new_str = implode(" ", $arr);
// Если необходимо добавить многоточие
if (count($arr_str) > 6) {
$new_str .= '...';
}
echo $new_str;//Выведет 'Этот текст имеет большое количество пробелов и...'
Ну и чтоб просто добавить в конце любой строки многоточие-можно дописать точки так:
$str = 'My string';
$str .= '...';
echo $str;//Выведет 'My string...'