Баг вывода архива Joomla 1.5.x
- Подробности
- Автор: Никифоров Сергей Викторович
- Просмотров: 4362
На днях заметил баг в линейки 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 ); ?>
Как в первом, так и во втором варианте мы получим одинаковый вывод, так что только вам решать каким кодом воспользоваться.
Плюсы:
- Сохраняем дизайн в первозданном виде
Минусы:
- Теряем у текста форматирование, но это только в предисловии, при нажатии подробнее, увидим текст материала во всей красе!

