Баг вывода архива Joomla 1.5.x

На днях заметил баг в линейки Joomla 1.5.10 (Исследуя форум наткнулся, что аналогичный баг присутствует и в версии 1.5.9)

При просмотре списка материала в архиве наблюдается в конце написанных на русском текстов следующее: "...программирование в php и�...", так как не совсем знаю код линеек J1.5.x - обратился с вопросом к другу ФЕЙ с форума joomlaforum.ru. После совместного определения места кода который выводит это безобразие, я начал лечить баг.

Вариант 1

1. Находим файл:
/components/com_content/views/archive/tmpl/default_items.php

2. Находим в нем на строке 57

introtext), 0, 255); ?>...

меняем его на:

$text = strip_tags($item->introtext);
$limit = 255;
if (strlen($text) > $limit) {
$words = str_word_count($text, 2);
$pos = array_keys($words);
$text = substr($text, 0, $pos[$limit]) . '...';
}
echo $text; ?> 

Вот и все начинает работать корректно, даже лучше

Вариант 2 (предложенный pedrosoft)

introtext) > 255 ? (JString::substr($item->introtext, 0, 255) . ' ...' ): $item->introtext); ?>

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

$text = strip_tags($item->introtext);
echo (JString::strlen($text ) > 255 ? (JString::substr($text , 0, 255) . ' ...' ): $text ); ?>

Как в первом, так и во втором варианте мы получим одинаковый вывод, так что только вам решать каким кодом воспользоваться.

Плюсы:

  • Сохраняем дизайн в первозданном виде

Минусы:

  • Теряем у текста форматирование, но это только в предисловии, при нажатии подробнее, увидим текст материала во всей красе!
Вы здесь: Home Хаки Joomla 1.5.x Баг вывода архива Joomla 1.5.x
forex mmcis group | Проект, монтаж датчиков затопления, установок пожаротушения, контроль затопления - ТО