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

#joomla #joomla1.5

#joomla #joomla1.5

Вопрос:

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

Комментарии:

1. Вы имеете в виду, что все, что содержит пункт меню, не будет отображаться в результатах вашего поиска?

Ответ №1:

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

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

/компоненты/com_search/просмотры/поиск/tmpl

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

/шаблоны/yourtemplate/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), а затем продолжить, если этот единственный результат должен быть пропущен.

Комментарии:

1. Большое спасибо за ответ! Я реализовал фильтрацию, как вы описали, но таким образом я получаю несоответствие количеству результатов. Он отображается default_form.php: <?php echo $this-> результат; ?>. Вы знаете, где скомпилировано это сообщение?