Новости → Вывод картинки независимо от текста новости
Как и обещал разбавлю немного посты про MODx несколькими про Joomla.
Кричев.by я делаю на Joomla, и при разработке столкнулся с некоторыми проблемами, которые удачно удалось решить. Сегодня расскажу про то, как сделать вывод краткого описания новости (статьи) с картинкой, но не простой вывод, а золотой так, чтобы картинка выводилась независимо от текста: в другом блоке. Должно быть вот так:
Картинка добавляется через стандартный редактор при добавлении новости. Она расположена слева и должна обтекать не только текст, но и дату публикации, и раздел, в котором расположена новость. Поэтому придется прибегнуть к некоторым хитростям, чтобы реализовать данный вывод. Если выводить это стандартным выводом, то получим следующее:

Как видно на скриншоте выше мы получаем не совсем то, что хотелось бы. Поэтому делаем следующее:
Данный вывод я использую для вывода “Шаблон блога категории”, “Шаблон блога раздела” и “Похожие новости”. Открываем шаблон категории или раздела и в место где вы хотели бы вывести картинку вставляем:
1 2 3 4 | $test = $this->item->text; preg_match_all('/<\s*img\s+src\s*="\s*("[^"]*"|\'[^\']*\'|[^"\s]+)(.*?)>/i', $test, $result); $text = strip_tags($test); echo JURI::base().$result[1][0]; |
Что здесь происходит: переменной $test содержит текст новости, далее регулярным выражением с помощью функции preg_match_all() вырезаем из текста первую картинку (подробнее про функциюю читайте здесь.
Далее удаляем все теги из текста новости функцией strip_tags(), это значит, что в кратком выводе новости картинки, ссылки, выделение жирным, курсивом и т.д. отображаться не будут, но все это будет в полном просмотре новости. Затем выводим адрес картинки. Не забудьте вставить вывод адреса в аттрибут src тега img. Так же можно добавить проверку на существование картинки с помощью функции empty и цикла if.
После этих манипуляций мы получим то, что изображено на первом скриншоте.

