#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-> результат; ?>. Вы знаете, где скомпилировано это сообщение?