Перейти к содержимому


Загрузил

Тема поддержки файла Информация

  • Загружен: Jun 22 2014 13:00
  • Последнее обновление: Jun 22 2014 13:02
  • Размер: 10.23К
  • Просмотров: 74077
  • Скачан: 269
  • Версия JBZoo: Все версии
  • Версия Zoo: Все версии
  • Версия Joomla: Все версии

Загрузить Вывод тизера в поиске
version: 1.0

* * * * * 1 Голосов
рецепт поиск шаблоны фильтр



Скриншот
Столкнулся недавно с проблемой вывода товаров в стандартном поиске Joomla. А именно, не устраивал их внешний вид.
Стояла задача привести внешний вид товара в стандартном поиске на схожий в шаблоне teaser.

Все исправления были на версиях.
Joomla 3.2.1, JBzoo Pro 2.1.2

Возможные последствия.
Данный фикс сильно не тестировался.
По идее работу поиска это ни как затронуть не может.

В процессе работы у меня возник конфликт с jquery.chosen, если у Вас тоже слез шаблон, ошибки js на странице закоментируйте или удалите строку в файле
/components/com_search/views/search/tmpl/default.php/ на 11 строке комментируем или удаляем//JHtml::_('formbehavior.chosen', 'select');
а вместо этой строки вставляем код javascript после закрывающего php тега, выглядит он так - ?>
<script type="text/javascript">    jQuery(document).ready(function () {        jQuery('#ordering, #limit').chosen();    });</script>
Поиск по Zoo производится с помощью Zoo-шного плагина zoosearch, он должен быть включен в админке.

1. Править будем сам плагин - zoosearch.
/plugins/search/zoosearch/zoosearch.php
Находим нужные строки
Изображение

и заменяем этот участок кода
$renderer = $this->app->renderer->create('item')->addPath(array($this->app->path->path('component.site:'), $this->app->path->path('plugins:search/zoosearch/')));
foreach ($items as $item) {    $row = new stdClass();    $row->title = $item->name;    $row->text = $renderer->render('item.default', array('item' => $item));    $row->href = $this->app->route->item($item);    $row->created = $item->created;    $row->section = '';    $row->browsernav = 2;    $rows[] = $row;}
на этот
$template = $this->app->zoo->getApplication()->getTemplate();$renderer = $this->app->renderer->create('item')->addPath(array(                $this->app->path->path('component.site:'),                $template->getPath()));
foreach ($items as $item) {                $row = new stdClass();                    if ($renderer->pathExists('item/'.$item->getType()->id))                        $row->teaser = $renderer->render('item.' . $item->getType()->id . '.teaser', array('item' => $item));                    else                        $row->teaser = $renderer->render('item.teaser', array('item' => $item));                $row->created    = '';                $rows[]          = $row;            }


2. Компонент вывода - com_search.
/components/com_search/views/search/tmpl/default_results.php
Весь файл меняем на следующее
<?php/** * @package     Joomla.Site * @subpackage  com_search * * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved. * @license     GNU General Public License version 2 or later; see LICENSE.txt */defined('_JEXEC') or die;$this->app = App::getInstance('zoo');?><dl class="search-results<?php echo $this->pageclass_sfx; ?>">    <?php foreach ($this->results as $result) : ?>        <?php if (isset($result->teaser)) : ?>            <?php echo $this->app->jbwrapper->start(); ?>            <?php echo $result->teaser; ?>            <?php echo $this->app->jbwrapper->end(); ?>        <?php endif; ?>        <?php if (isset($result->title)) : ?>            <dt class="result-title">                <?php echo $this->pagination->limitstart + $result->count.'. ';?>                <?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; ?>            </dt>        <?php endif; ?>        <?php if (isset($result->section)) : ?>            <dd class="result-category">                <span class="small<?php echo $this->pageclass_sfx; ?>">                    <?php echo $this->escape($result->section); ?>)                </span>            </dd>        <?php endif; ?>        <?php if (isset($result->text)) : ?>            <dd class="result-text">                <?php echo $result->text; ?>            </dd>            <?php if ($this->params->get('show_date') && !empty($result->created)) : ?>                <dd class="result-created<?php echo $this->pageclass_sfx; ?>">                    <?php echo JText::sprintf('JGLOBAL_CREATED_DATE_ON', $result->created); ?>                </dd>            <?php endif; ?>        <?php endif; ?>    <?php endforeach; ?></dl><div class="pagination">    <?php echo $this->pagination->getPagesLinks(); ?></div>
Добавляем CSS и получаем
Изображение




Сделал по инструкции но увы :(

ошибка

Fatal error: Call to a member function getTemplate() on a non-object in /var/www/admin/data/www/mysites/plugins/search/zoosearch/zoosearch.php on line 196 
    • 0
  • Ответить
  • Жалоба

всем на будущее, проблема из за того что не подхватывается id приложения указываем ручками

$this->app->jbrequest->set('app_id', '1');

P.S. Решение нашел на форуме

    • 0
  • Ответить
  • Жалоба

Все сделал по инструкции, но выдает ошибку:

Parse error: syntax error, unexpected T_STRING in W:\home\localhost\www\DNTLsar\components\com_search\views\search\tmpl\default_results.php on line 1

    • 0
  • Ответить
  • Жалоба

Если сделать переносы строк, то эта ошибка укажет на строку 2, в которой: defined('_JEXEC') or die;

    • 0
  • Ответить
  • Жалоба
Фотография
mr.varhola
Mar 29 2015 18:05

Сделал все по вашей инструкции но на выходе получаю такой вид:  http://joxi.ru/LmGjl4ySvME1rl

подскажите как поправить, может кто-то уже сталкивался?

    • 0
  • Ответить
  • Жалоба
Фотография
Алексей
Apr 29 2015 12:06

У меня такое выскочило:

Ошибка

Renderer Layout "item.teaser" not found. (File: administrator/components/com_zoo/classes/renderer/item.php, Line: 65)

    • 0
  • Ответить
  • Жалоба
Фотография
mr.varhola
Apr 29 2015 12:10

У себя я проблему решил заменив свои файлы теми что можно скачать тут.

А когда пытался править нутрянку файлов копипастом - ничего не получалось..

    • 0
  • Ответить
  • Жалоба
Фотография
Алексей
Apr 29 2015 13:37

Разобрался, это я затупил. Спасибо.

    • 0
  • Ответить
  • Жалоба
Фотография
Art-Pavluk
Nov 19 2015 08:38

Спасибо все работает на Joomla: 3.4.5 JBZoo: 2.2.2 Pro rev2997 Zoo: 3.3.12

    • 0
  • Ответить
  • Жалоба

а может есть какой-то метод чтоб сразу стили тизера подтягивались:)? И отключить все лишнее, в смысле вот этого: http://joxi.ru/KAxY9ZDu95w8r8

    • 0
  • Ответить
  • Жалоба
Фотография
CB9TOIIIA
Dec 07 2016 08:41

"все это" в плагинах - поиск (метрки и прочее).

    • 0
  • Ответить
  • Жалоба

спасибо. Никогда просто не сталкивался. А стили боюсь и спрашивать, чтоб подтянулись:) а то порвут - учи CSS :) 

    • 0
  • Ответить
  • Жалоба

о, вот вопрос: есть 2 приложения - магазин и блог, можно ли поставить 2 формы чтоб одна выводила данные из магазина только а вторая только из блога?

    • 0
  • Ответить
  • Жалоба
Фотография
CB9TOIIIA
Dec 07 2016 08:49

не разбирался, все делал в рамках одного app всегда.

 

CSS  - по логике подтянутся должны были - но если нет, просто верстать. (htmlacademy) курс по верстке (буквально за 1-3 дня базовых знаний хватит).

    • 0
  • Ответить
  • Жалоба

а вот с разными приложениями и соответственно с шаблонами - беда, вот смотрите: http://enjoy-nature.portall.com.ua/ вверху вводим в поиске товар, например Длинное название товара - там например настроил, а если ввести название материала блога, например "Пример в блог" - бяда :) Я так понимаю что сделать так чтоб выводились разные шаблоны не получится, может хотя бы как-то модулями разделить, т.е. один модуль поиска - для магазина, второй - для блога. Т.е. где-то прописать в модулях отдельно типы?

    • 0
  • Ответить
  • Жалоба
Фотография
CB9TOIIIA
Dec 07 2016 09:15

Т.е. где-то прописать в модулях отдельно типы - без понятия и возможно ли,

 

CSS: 

.search-results #yoo-zoo {
    width: 33%;
    float: left;
    text-align: center;
}
0_a9579_dc89c4da_orig.png
    • 0
  • Ответить
  • Жалоба

да, с стилями разобрался, а вот с двумя шаблонами - совсем плохо получается, т.к. могут получается искать товары а могут статьи и вывод там совсем разный...Хорошо бы модуль свой чтоб был, и там в настройках указывать по каким типам или приложениям вести поиск и какой шаблон вывода использовать

    • 0
  • Ответить
  • Жалоба

а кто-то под последнюю версию правил эти файлы? После обновления все слетело

    • 0
  • Ответить
  • Жалоба
Фотография
mr.varhola
Dec 18 2018 11:52

Все работает четко

Joomla: 3.9.0 JBZoo: 4.0.2 GNU GPL (Community Edition) by SmetDenis Zoo: 3.3.32

 

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

    • 0
  • Ответить
  • Жалоба

или Войти


Случайные файлы





посетителей за последние 15 минут

пользователей, гостей, анонимных

Click to return to top of page in style!