Обрезание анонса строки по пробелу/слову

Неизвестно почему, но многие из открытых расширений для вывода анонсов комментариев, статей и т.п. имеют обыкновение обрезать анонсы посередине слова, то есть совсем не по фэншую.
При этом апгрейд substr размером с одну строку кода.

Рассмотрим тот самый апгрейд на примере модуля mod_janewslight входящего в комплект хорошего joomla-шаблона ja_erica.
Суть модуля в выводе анонса статьи с картинкой управляемая расширенными настройками.
В файле modules\mod_janewslight\ja_newslight\common.php, подключаемом к основному скрипту модуля, находим строчки обрезания анонса:

$row->introtext1 = strip_tags($row->introtext);
if ($maxchars && strlen ($row->introtext) > $maxchars) {
	$row->introtext1 = substr ($row->introtext1, 0, $maxchars) . "...";
}

И модифицируем их:

$row->introtext1 = strip_tags($row->introtext); // очищаем строку от html и php-тегов 
if ($maxchars && strlen ($row->introtext) > $maxchars) { // проверяем существование переменной $maxchars и его меньший размер по сравнению с обрезаемым анонсом
	$length = strripos(substr($row->introtext1, 0, $maxchars), ' '); // ищем позицию последнего пробела в куске анонса
	$row->introtext1 = substr($row->introtext1, 0, $length) . '...'; // обрезаем по позиции найденного пробела
}

При этом вмешательство в скрипты модуля сведены к минимуму, т.е. например, $maxchars это все также количество символов в «анонсе анонса» статьи, которое задается в поле «Max Chars» настроек модуля.

Комментариев: 3


Добавление комментария:

 css.php