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


Фотография
- - - - -

Добавляем pagination в элементе JBGallery

хак элемент jbgallery

Сообщений в теме: 9

#1 Cheren-dow

Cheren-dow

Отправлено 17 February 2015 - 10:29

В предыдущем рецепте Na_uM предложил отличную идею, сделать pagination для элемента JBGallery. Найдя простенький JS плагин решил привязать к нашему элементу.

 

1. Скачиваем и ложим файл jquery.paginate.min.js в 

  1. сайт\media\zoo\applications\jbuniversal\elements\jbgallery\assets\js\jquery.paginate.min.js

2. Добавляем 2 параметра в xml файл конфига в группу render 

  1. <param name="paginate" type="radio" default="0" label="Показать навигацию" description="">
  2. <option value="0">No</option>
  3. <option value="1">Yes</option>
  4. </param>
  5. <param name="paginate_limit" type="text" default="10" label="Количество на странице" description=""/>

mmk8_200x0.png

 

3. Передаем параметры в шаблон

В файле  

  1. сайт\media\zoo\applications\jbuniversal\elements\jbgallery\jbgallery.php

в методе render находим

  1. // render layout
  2. if ($layout = $this->getLayout()) {
  3. return self::renderLayout($layout, compact('thumbs', 'galleryId', 'rel'));
  4. } 

и меняем на 

  1. // render layout
  2. if ($layout = $this->getLayout()) {
  3. return self::renderLayout($layout, compact('thumbs', 'galleryId', 'rel', 'parameter'));
  4. } 

4. Заменяем код шаблона

  1. сайт\media\zoo\applications\jbuniversal\elements\jbgallery\tmpl\jbgallery.php

на

  1. <?php
  2. /**
  3. * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
  4. *
  5. * @package jbzoo
  6. * @version 2.x Pro
  7. * @author JBZoo App http://jbzoo.com
  8. * @copyright Copyright (C) JBZoo.com, All rights reserved.
  9. * @license http://jbzoo.com/license-pro.php JBZoo Licence
  10. * @coder Denis Smetannikov <denis@jbzoo.com>
  11. */
  12.  
  13. // no direct access
  14. defined('_JEXEC') or die('Restricted access');
  15.  
  16.  
  17. $this->app->jbassets->fancybox();
  18.  
  19. ?>
  20.  
  21. <?php if (!$parameter->get('paginate', 0)) : ?>
  22. <div id="<?php echo $galleryId; ?>">
  23.  
  24. <?php foreach ($thumbs as $thumb) { ?>
  25.  
  26. <a href="<?php echo $thumb['img']; ?>"
  27. rel="<?php echo $rel; ?>"
  28. title="<?php echo $thumb['name']; ?>"
  29. class="jbgallery"><img src="<?php echo $thumb['thumb']; ?>"
  30. alt="<?php echo $thumb['name']; ?>"
  31. title="<?php echo $thumb['name']; ?>"
  32. width="<?php echo $thumb['thumb_width']; ?>"
  33. height="<?php echo $thumb['thumb_height']; ?>"
  34. /></a>
  35.  
  36. <?php } ?>
  37.  
  38. <div class="clear clr"></div>
  39. </div>
  40. <?php else :
  41. $this->app->document->addScript('elements:jbgallery/assets/js/jquery.paginate.min.js');
  42. ?>
  43. <style>
  44. .jbgallery-list {
  45. list-style: none;
  46. }
  47. </style>
  48. <ul id="<?php echo $galleryId; ?>" class="jbgallery-list" style="">
  49. <?php foreach ($thumbs as $thumb) { ?>
  50. <li>
  51. <a href="<?php echo $thumb['img']; ?>"
  52. rel="<?php echo $rel; ?>"
  53. title="<?php echo $thumb['name']; ?>"
  54. class="jbgallery"><img src="<?php echo $thumb['thumb']; ?>"
  55. alt="<?php echo $thumb['name']; ?>"
  56. title="<?php echo $thumb['name']; ?>"
  57. width="<?php echo $thumb['thumb_width']; ?>"
  58. height="<?php echo $thumb['thumb_height']; ?>"
  59. /></a>
  60. </li>
  61. <?php } ?>
  62. </ul>
  63. <div class="clear clr"></div>
  64. <div id="<?php echo $galleryId; ?>-pagination" style="display:none">
  65. <a id="<?php echo $galleryId; ?>-previous" href="#" class="disabled">&laquo; Previous</a>
  66. <a id="<?php echo $galleryId; ?>-next" href="#">Next &raquo;</a>
  67. </div>
  68. <?php endif; ?>
  69.  
  70. <script type="text/javascript">
  71. jQuery(function ($) {
  72. $('#<?php echo $galleryId; ?> .jbgallery').fancybox({
  73. helpers: {
  74. "title" : { type: "outside" },
  75. "buttons": { position: "top" },
  76. "thumbs" : { width: 80, height: 80 },
  77. "overlay": { locked: false}
  78. }
  79. });
  80.  
  81. $('#<?php echo $galleryId; ?>').paginate({itemsPerPage: 10});
  82. });
  83. </script>
  84.  

Теперь  мы получим следующий результат

ihtr_200x0.jpg

 

ВНИМАНИЕ!!!

  • Будьте внимательны при замене файлов.
  • Проверьте с начало на тестовом сайте а уже потом загружайте на рабочий сайт.
  • Это решение(модификация) тестировалось на 
    Joomla: 3.3.3
    JBZoo: 2.1.5 Pro
    Zoo: 3.2.1,
  • Не забывайте - это решение(модификация) и при следующих обновлениях эти изменения могут пострадать.
  • При появлении проблем Тех.Поддержка ответственности не несет. 

Сообщение отредактировал Cheren-dow: 17 February 2015 - 12:32

  • 3
Изображение
 

#2 Na_uM

Na_uM

Отправлено 17 February 2015 - 11:37

что то не выходит

правда на 2.2.0 пробую

  1. Fatal error: Call to a member function get() on a non-object in /media/zoo/applications/jbuniversal/elements/jbgallery/tmpl/jbgallery.php on line 21

  • 0

#3 Cheren-dow

Cheren-dow

Отправлено 17 February 2015 - 12:33

Na_uM, забыл дописать что нужно параметры в щаблон передать. Посмотрите 3 - й пункт


  • 0
Изображение
 

#4 Na_uM

Na_uM

Отправлено 17 February 2015 - 12:53

да, так все работает - ну это немного не то что хотелось бы, нет ни разбивки на страницы не иже с ним

да и в popup показывает все миниатюры...

для уменьшения занимаемого места - решение хорошее но для галереи...

Спасибо!


  • 0

#5 Cheren-dow

Cheren-dow

Отправлено 17 February 2015 - 13:15

Na_uM, по ищите аналогичные плагины и привяжите его к галереи по аналогии. Я всего лишь показал пример.


  • 2
Изображение
 

#6 netmannp

netmannp

Отправлено 08 March 2015 - 09:11

а есть ли решение "Пагинация" для модуля JBZoo Item ?


  • 0

#7 Cheren-dow

Cheren-dow

Отправлено 12 March 2015 - 10:30

netmannp, можете по аналогии с этим рецептом внедрить в модуль. Должно работать. 


  • 0
Изображение
 

#8 netmannp

netmannp

Отправлено 12 March 2015 - 10:46

попробую но мне кажется самому модулю JBZoo Item  явно не хватает в настройках возможности выводить элементы с пагинацией


  • 0

#9 Cheren-dow

Cheren-dow

Отправлено 12 March 2015 - 11:22

netmannp, думаю модель сам по себе не предназначен для вывода большого кол-ва материалов и что бы была еще навигация в нем.


  • 0
Изображение
 

#10 netmannp

netmannp

Отправлено 12 March 2015 - 12:36

Cheren-dow сказал(а) 12 Мар 2015 - 10:22:

netmannp, думаю модель сам по себе не предназначен для вывода большого кол-ва материалов и что бы была еще навигация в нем.

большое количество это сколько?(многое зависит от дизайна сайта)  какая есть альтернатива вывода по произвольному фильтру материалов? В голову приходит JBZoo Search но насколько я помню там нет возможности выводить с "пред заданными"  параметрами


  • 0





Темы с аналогичным тегами хак, элемент, jbgallery

Click to return to top of page in style!