Помню, где то читал сообщение от i001 где он сделал предварительный просмотр по нажатию на изображение. Все вроде работает, но реализация "кривоватая" - потому что используются CSS(слои) и элемент JBQuickView. А ведь можно доработать элемент JBImage и управлять им из админки .
-= 1. Добавляем параметр для выбора шаблона =-
Открываем файл
сайт\media\zoo\applications\jbuniversal\elements\jbimage\jbimage.xml
В список параметров template добавляем еще 1 значение
<param name="template" type="list" default="default" label="JBZOO_JBIMAGE_TEMPLATE" description="JBZOO_JBIMAGE_TEMPLATE_DESC"> <option value="default">JBZOO_DEFAULT</option> <option value="link">JBZOO_LINK</option> <option value="itemlink">JBZOO_ITEM_LINK</option> <option value="popup">JBZOO_POPUP</option> <option value="quickview">Быстрый просмотр</option> </param>
мы добавили следующую строку
<option value="quickview">Быстрый просмотр</option>
-= 2. Корректируем Render для нашего шаблона =-
Открываем файл
сайт\media\zoo\applications\jbuniversal\elements\jbimage\jbimage.php
В методе _render находим проверку на шаблон itemlink - строка начинается с
} elseif ($template == 'itemlink'){ .... }
Весь elseif меняем на
} elseif ($template == 'itemlink' || $template == 'quickview') { if ($this->getItem()->getState()) { $url = JRoute::_($this->app->route->item($this->_item, false), false, 2); $title = empty($title) ? $this->getItem()->name : $title; if ($template == 'quickview') { $appendClass = 'jbimage-quickview'; $url .= '?tmpl=component&jbquickview=quickview'; } } }
Теперь передадим параметры в шаблон - Находим условие
// render layout if ($image && $layout = $this->getLayout('jbimage-' . $template . '.php')) { ... }
И меняем его на
if ($image && $layout = $this->getLayout('jbimage-' . $template . '.php')) { return $this->renderLayout($layout, array( 'imageAttrs' => $this->_buildAttrs(array( 'class' => 'jbimage', 'alt' => $alt, 'title' => $title, 'src' => $image->url, 'width' => $image->width, 'height' => $image->height, )), 'linkAttrs' => $this->_buildAttrs(array( 'class' => 'jbimage-link ' . $appendClass, 'title' => $title, 'href' => $url, 'rel' => $rel, 'target' => $target, 'id' => uniqid('jbimage-link-'), )), 'link' => $url, 'image' => $image, 'params' => $params // передаем параметры ) ); }
-= 3. Создание файла шаблона =-
В папке
сайт\media\zoo\applications\jbuniversal\elements\jbimage\tmpl
создаем файл с именем jbimage-quickview.php со следующим содержимом
<?php /** * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component * * @package jbzoo * @version 2.x Pro * @author JBZoo App http://jbzoo.com * @copyright Copyright (C) JBZoo.com, All rights reserved. * @license http://jbzoo.com/license-pro.php JBZoo Licence * @coder Denis Smetannikov <denis@jbzoo.com> */ // no direct access defined('_JEXEC') or die('Restricted access'); echo '<a ' . $linkAttrs . '><img ' . $imageAttrs . ' /></a>'; $this->app->jbassets->addScript('jQuery(function($){ $("a.jbimage-quickview").fancybox({ type : "iframe", fitToView : true, width : "' . $params->get('width_popup') . '", height : "' . $params->get('height_popup') . '", iframe : { preload : true }, closeClick : false, title : null, helpers : { overlay: { locked: false } } }); });');
Вот и все....
Переходим в админку в любой из шаблонов(full,teaser...) и настраиваем
ВНИМАНИЕ!!!
- Будьте внимательны при замене файлов.
- Проверьте с начало на тестовом сайте а уже потом загружайте на рабочий сайт.
- Это решение(модификация) тестировалось на
Joomla: 3.1.5
JBZoo: 2.1.2 Pro
Zoo: 3.0.13,
подойдут так же ранние версии начиная с v 2.0.X. - Не забывайте - это решение(модификация) и при следующих обновлениях эти изменения могут пострадать.
- При появлении проблем Тех.Поддержка ответственности не несет.
jbimage_patch_for_quickview.zip 7.79KB 155 downloads
Edited by Cheren-dow, 06 March 2014 - 08:00.