В предыдущем рецепте Na_uM предложил отличную идею, сделать pagination для элемента JBGallery. Найдя простенький JS плагин решил привязать к нашему элементу.
1. Скачиваем и ложим файл jquery.paginate.min.js в
сайт\media\zoo\applications\jbuniversal\elements\jbgallery\assets\js\jquery.paginate.min.js
2. Добавляем 2 параметра в xml файл конфига в группу render
<param name="paginate" type="radio" default="0" label="Показать навигацию" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param name="paginate_limit" type="text" default="10" label="Количество на странице" description=""/>
3. Передаем параметры в шаблон
В файле
сайт\media\zoo\applications\jbuniversal\elements\jbgallery\jbgallery.php
в методе render находим
// render layout
if ($layout = $this->getLayout()) {
return self::renderLayout($layout, compact('thumbs', 'galleryId', 'rel'));
}
и меняем на
// render layout
if ($layout = $this->getLayout()) {
return self::renderLayout($layout, compact('thumbs', 'galleryId', 'rel', 'parameter'));
}
4. Заменяем код шаблона
сайт\media\zoo\applications\jbuniversal\elements\jbgallery\tmpl\jbgallery.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');
$this->app->jbassets->fancybox();
?>
<?php if (!$parameter->get('paginate', 0)) : ?>
<div id="<?php echo $galleryId; ?>">
<?php foreach ($thumbs as $thumb) { ?>
<a href="<?php echo $thumb['img']; ?>"
rel="<?php echo $rel; ?>"
title="<?php echo $thumb['name']; ?>"
class="jbgallery"><img src="<?php echo $thumb['thumb']; ?>"
alt="<?php echo $thumb['name']; ?>"
title="<?php echo $thumb['name']; ?>"
width="<?php echo $thumb['thumb_width']; ?>"
height="<?php echo $thumb['thumb_height']; ?>"
/></a>
<?php } ?>
<div class="clear clr"></div>
</div>
<?php else :
$this->app->document->addScript('elements:jbgallery/assets/js/jquery.paginate.min.js');
?>
<style>
.jbgallery-list {
list-style: none;
}
</style>
<ul id="<?php echo $galleryId; ?>" class="jbgallery-list" style="">
<?php foreach ($thumbs as $thumb) { ?>
<li>
<a href="<?php echo $thumb['img']; ?>"
rel="<?php echo $rel; ?>"
title="<?php echo $thumb['name']; ?>"
class="jbgallery"><img src="<?php echo $thumb['thumb']; ?>"
alt="<?php echo $thumb['name']; ?>"
title="<?php echo $thumb['name']; ?>"
width="<?php echo $thumb['thumb_width']; ?>"
height="<?php echo $thumb['thumb_height']; ?>"
/></a>
</li>
<?php } ?>
</ul>
<div class="clear clr"></div>
<div id="<?php echo $galleryId; ?>-pagination" style="display:none">
<a id="<?php echo $galleryId; ?>-previous" href="#" class="disabled">« Previous</a>
<a id="<?php echo $galleryId; ?>-next" href="#">Next »</a>
</div>
<?php endif; ?>
<script type="text/javascript">
jQuery(function ($) {
$('#<?php echo $galleryId; ?> .jbgallery').fancybox({
helpers: {
"title" : { type: "outside" },
"buttons": { position: "top" },
"thumbs" : { width: 80, height: 80 },
"overlay": { locked: false}
}
});
$('#<?php echo $galleryId; ?>').paginate({itemsPerPage: 10});
});
</script>
Теперь мы получим следующий результат
ВНИМАНИЕ!!!
- Будьте внимательны при замене файлов.
- Проверьте с начало на тестовом сайте а уже потом загружайте на рабочий сайт.
- Это решение(модификация) тестировалось на
Joomla: 3.3.3
JBZoo: 2.1.5 Pro
Zoo: 3.2.1, - Не забывайте - это решение(модификация) и при следующих обновлениях эти изменения могут пострадать.
- При появлении проблем Тех.Поддержка ответственности не несет.
Сообщение отредактировал Cheren-dow: 17 February 2015 - 12:32












