/var/log/life.log
Блог программиста из солнечной Бурятии

Картинки в результатах поиска в joomla

Да и не только изображения, но и любой html код. Дело в том, что joomla перед показом сниппета, заменяет неготорые теги на пробелы, и затем выполняет strip_tags. В joomla 1.5 с этим было сложнее, приходилось обходиться хаком, добавляя в strip_tags список допустимых тегов. В joomla 1.6 плагины типа content теперь вызываются не только для материалов, но так же могут вызываться для произвольных текстов.

$text       = JHtml::_('content.prepare', $text);

Для поискового сниппета также вызываются плагины контента, самое главное после очистки от тегов. Что и даёт возможность добавить нужные теги для вывода в сниппет. Мне было необходимо добавить <br>. В поисковом плагине вместо перевода строки я выбрал комбинацию \x01\x01\x01, чтобы не было случайных срабатываний в других плагинах. А в контентном плагине просто заменю эту последовательность на <br>

пример

В поисковом плагине в методе

function onContentSearch($text, $phrase='', $ordering='', $areas=null)

при формировании массива результатов

foreach($rows AS $key => $value) {
    if (searchHelper::checkNoHTML($value, $searchText, array('url', 'text', 'title'))) {
        $value->text = $value->text."\x01\x01\x01";
        $return[] = $value;
    }
}

В конткнтном плагине

    public function onContentPrepare($context, &$row, &$params, $page = 0)
    {
        $canProceed = $context == 'text';
        if (!$canProceed) {
            return;
        }
        $row->text = str_replace("\x01\x01\x01",'<br />',$row->text);
        return true;
    }

6 комментариев на запись «Картинки в результатах поиска в joomla»

  1. Kruchanrs пишет:

    А можно немного поподробнее про вывод первой картинки, та, что в интротексте!

  2. VampiRUS пишет:

    Добавил пример. Для картинок нужно, перед вызовом searchHelper::checkNoHTML , регулярным выражением определить src картинки и либо там же заменить на что-нибудь типа x01тут_src_картинкиx01 или вставить в нужное место при формировании поискового сниппета.

  3. Kav85 пишет:

    подскажите как сделать вывод картинки в поиске для стандартного плагина j1.7.

  4. VampiRUS пишет:

    я в каменте ниже описал примерный ход действий

  5. Mail пишет:

    Доброй ночи.
    У меня joomla 1.5 в каком файле нужно править код чтобы отображались картинки в поиске?

  6. VampiRUS пишет:

     в поисковом плагине.

Оставить комментарий

Вы так же можете оставить комментарий используя ваш OpenId, для этого нужно войти.