фильтр результатов поиска joomla

Есть ли способ отфильтровать пункты меню из результатов поиска?


person Edgar    schedule 03.05.2011    source источник
comment
Вы имеете в виду, что что-либо с пунктом меню не будет отображаться в результатах поиска?   -  person Brent Friar    schedule 03.05.2011


Ответы (1)


Вы можете отфильтровать что-либо в выводе, настроив значения по умолчанию шаблона страницы поиска в своем «собственном» шаблоне с переопределением шаблона (http://docs.joomla.org/How_to_override_the_output_from_the_Joomla!_core).

Страницы, которые вы можете заменить, добавив их в свой шаблон, взяты из

/components/com_search/views/search/tmpl

скопируйте их в

/templates/вашшаблон/html/com_search/поиск

Страница результатов поиска, например. отображается: default_results.php

Для yoomla 1.6 если убрать

        <?php if ($result->href) :?>
        <a href="<?php echo JRoute::_($result->href); ?>"<?php if ($result->browsernav == 1) :?> target="_blank"<?php endif;?>>
            <?php echo $this->escape($result->title);?>
        </a>
    <?php else:?>
        <?php echo $this->escape($result->title);?>
    <?php endif; ?>

название заголовка/пункта меню больше не отображается, только текстовый результат.

Вы можете сделать условный оператор php, чтобы отфильтровать все, что вам нравится, в зависимости от содержимого результата поиска и вообще пропустить один результат поиска. Просто поместите свой код прямо за

<?php foreach($this->results as $result) : ?>

Это цикл для каждой отдельной строки результатов поиска. Вы можете проверить, например. if ($result->href/title/whatever == something), а затем продолжить, если этот единственный результат следует пропустить.

person Tom Bille    schedule 03.05.2011
comment
Большое спасибо за ответ! Я реализовал фильтрацию, как вы описали, но таким образом я получаю несоответствие с количеством результатов. Отображается default_form.php: ‹?php echo $this-›result; ?›. Вы знаете, где скомпилировано это сообщение? - person Edgar; 04.05.2011