В Joomla 2.5 есть модуль вывода статей. Модуль хорош, но примечателен тем, что не показывает картинки из вводного текста. Сейчас мы научим его отображать картинки и выводить их так, как нам нужно.
Для начала откроем файл /modules/mod_articles_category/helper.php
Именно этим файлом думает модуль. Там, в строке 249 (там, где function _cleanIntrotext() ) надо добавить тег <img> к функции strip_tags.
Теперь в наш default.php попадает строка с изображением. Но (О, БОЖЕ!) изображение имеет атрибуты ширины и высоты! Сейчас откроем файл /templates/ШАБЛОН/html/mod_articles_category/default.php
или, если мы не подсуетились с правильным изменением вида модулей и компонентов, открываем этот файл /modules/mod_articles_category/tmpl/default.php
и со строки 118 добавляем код
<?php //выдергиваем изображения в массив preg_match_all('#<img[^<]+?>#', $item->displayIntrotext, $imageIntro); //убираем изображения из строки с интротекстом $item->displayIntrotext = strip_tags($item->displayIntrotext, '<a><em><strong>'); //убираем из атрибутов высоту изображения $img = preg_replace('#height="*(.+?)"#si',"",$imageIntro[0][0]); //меняем ширину на свою (120px) $img = preg_replace('#width="*(.+?)"#si',"width=\"120px\"",$img); //выводим картинку эхом echo $img; ?>
должно получиться
<?php if ($params->get('show_introtext')) :?> <?php //выдергиваем изображения в массив preg_match_all('#<img[^<]+?>#', $item->displayIntrotext, $imageIntro); //убираем изображения из строки с интротекстом $item->displayIntrotext = strip_tags($item->displayIntrotext, '<a><em><strong>'); $img = preg_replace('#height="*(.+?)"#si',"",$imageIntro[0][0]); $img = preg_replace('#width="*(.+?)"#si',"width=\"120px\"",$img); echo $img; ?> <p> <?php echo $item->displayIntrotext; ?> </p> <?php endif; ?>
Картинку вывожу эхом, только для примера.
Самое ценное в этом всем добре, пожалуй — это регулярное выражение для поиска атрибута ширины (width) и высоты (height) в теге img. Начинающим, вероятно, будет полезно 🙂
Ну все, наслаждаемся 🙂
lt;img[^
Большое спасибо!!
Я вообще обошлась только первым изменением 🙂
>>Именно этим файлом думает модуль. Там, в строке 249 (там, где function _cleanIntrotext() ) надо добавить тег к функции strip_tags.
Не подскажете как можно выдернуть url картинки из массива с контентом