Помню, где то читал сообщение от 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.79К
198 Количество загрузок:
Сообщение отредактировал Cheren-dow: 06 March 2014 - 08:00












