Может, кому пригодится сработавшее у меня решение. Сразу говорю: сделано все методом научного тыка, по разным комментариям и примерам, в php я не разбираюсь почти совсем, плохо владею терминологией. Поэтому прошу сразу прощения за возможные ляпы и буду благодарна, если кто-то поправит вывод шаблона.
Насколько я поняла себе задачу красивого вывода поисковых результатов, решение состоит глобально в следующем:
1. Убрать форматирование выдачи по умолчанию результатов поиска Joomla.
2. Добавить нужные позиции в стандартный шаблон Search: Default и назначить им желаемое форматирование.
3. Раскидать свои поля по позициям.
Итак, решение.
1. В файле template /warp/systems/joomla/layouts/com_search/search/default_results.php
удаляем
echo $warp['template']->render('article', $args),
и добавляем
2. В файле components/com_search/views/search/view.html.php
удаляем
$row = SearchHelper::prepareSearchContent($row, $needle),
и удаляем полностью блок
foreach ($searchWords as $highlightWord)
3. Теперь можно настраивать собственные результаты в Search: Default. Для этого в файле /plugins/search/zoosearch/renderer/item/default.php
должно быть содержимое подобно этому с нужными позициями и оформлением:
// no direct access
defined('_JEXEC') or die('Restricted access');
// render description
?>
<div>
<h2 class="uk-h2"><?php echo $this->renderPosition('title'); ?></h2>
<p class="uk-panel">
<?php echo $this->renderPosition('image', array('style' => 'comma')); ?>
</p>
<p class="uk-text-muted">
<?php echo $this->renderPosition('meta', array('style' => 'comma')); ?>
</p>
<p class="uk-text-muted">
<?php echo $this->renderPosition('description', array('style' => 'comma')); ?>
</p>
<ul class="uk-list">
<?php echo $this->renderPosition('specification'); ?>
</ul>
<hr class="uk-grid-divider" />
</div>
4. Прописать позиции в /plugins/search/zoosearch/renderer/item/positions.xml
<renderer>
<positions layout="default">
<position name="title">Title</position>
<position name="image">Image</position>
<position name="meta">Meta</position>
<position name="description">Description</position>
<position name="specification">Specification</position>
</positions>
</renderer>
5. Настроить выдачу результатов в ZOO в расширенном расположении Search: Default, накидав в нужные позиции нужные поля.
В общем, результат меня устроил. Но поскольку я ничего не понимаю в php, не могу понять, почему выдается ошибка "Renderer Layout "element.uikit_list" not found. (File: administrator/components/com_zoo/classes/renderer/item.php, Line: 150)"
при описании позиции "specification"
<ul class="uk-list">
<?php echo $this->renderPosition('specification', array('style' => 'uikit_list')); ?>
</ul>
Кто-нибудь поможет с оформлением?