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


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

Шаблон модуля JBZoo Item в виде слайдера

jbzoo item слайдер slick

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

#1 Kvadr

Kvadr

Отправлено 22 March 2018 - 16:52

Добрый день. Знаю, что тема поднималась, но конкретного и четкого ответа не нашел. Подскажите пожалуйста, как подключить свой шаблон (в виде слайдера slick) в модуле JBZoo Item. Модуль находится в категории и должен выводить в слайдере тизеры материалов ("Популярные проекты")
На основе дефолтного я создал свой шаблон модуля(/modules/mod_jbzoo_item/renderer/item/slickslider.php) и шаблон материала (/modules/mod_jbzoo_item/tmpl/slickslider.php), поправил metadata.xml и positions.xml .Что делать дальше, в каком файле подключать слайдер к модулю? 

  • 0

#2 CB9TOIIIA

CB9TOIIIA

Отправлено 22 March 2018 - 16:57

Для примера возьмите из маркета фликсити или owl
  • 0

#3 Kvadr

Kvadr

Отправлено 22 March 2018 - 17:35

CB9TOIIIA сказал(а) 22 Мар 2018 - 15:57:

Для примера возьмите из маркета фликсити или owl

Спасибо за оперативный ответ. Но я не понимаю. Вопрос - что мне с "ними" делать? Есть скрипты слайдера, как их связать с JBZoo Item?

Извините, но как то так)


  • 0

#4 DMTR3000S

DMTR3000S

Отправлено 22 March 2018 - 22:19

Kvadr, прям внутри шаблона и подключите скрипт, в чём проблема?


  • 0

#5 Kvadr

Kvadr

Отправлено 23 March 2018 - 07:28

DMTR3000S сказал(а) 22 Мар 2018 - 21:19:

Kvadr, прям внутри шаблона и подключите скрипт, в чём проблема?

 

Добрый день DMTR3000S.

Внутри шаблона модуля, или шаблона сайта?  :)

Вот в этом топике похожая ситуация, но так и не понятно чем всё закончилось, как я понял, через модуль у нее подключить не получилось.

Как и там, у меня в шаблоне сайта уже подключен скрипт slick, но ничего не работает, и как его привязать к  JBZoo Item мне не понятно.

 Хочу разобраться по-порядку как это работает, а именно, в каком файле начать подключать скрипт? Если в шаблоне модуля ^_^ , то там нет ни тега head, ни тега body. Сделал вот так (по аналогии с той темой, на которую ссылался выше), но сомневаюсь:
 

  1. <?php
  2. /**
  3. * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
  4. * @package jbzoo
  5. * @version 2.x Pro
  6. * @author JBZoo App http://jbzoo.com
  7. * @copyright Copyright (C) JBZoo.com, All rights reserved.
  8. * @license http://jbzoo.com/license-pro.php JBZoo Licence
  9. * @coder Vitaliy Yanovskiy <joejoker@jbzoo.com>
  10. */
  11.  
  12. // no direct access
  13. defined('_JEXEC') or die('Restricted access');
  14.  
  15. $zoo->jbassets->css('modules/mod_jbzoo_item/assets/slick/slick.css');
  16. $zoo->jbassets->css('modules/mod_jbzoo_item/assets/slick/slick-theme.css');
  17. $zoo->jbassets->js('modules/mod_jbzoo_item/assets/slick/slick.js');
  18.  
  19. $items = $modHelper->getItems();
  20. $count = count($items);
  21. $columns = (int)$params->get('item_cols', 1);
  22. $border = (int)$params->get('display_border', 1) ? 'rborder' : '';
  23.  
  24. if ($count) {
  25.  
  26. echo '<div id="' . $modHelper->getModuleId() . '" class="jbzoo yoo-zoo">';
  27. echo '<div class="project-slide' . $columns . '">';
  28. echo $modHelper->renderRemoveButton();
  29.  
  30. if ($columns) {
  31. $j = 0;
  32. foreach ($items as $item) {
  33.  
  34. $first = ($j == 0) ? ' first' : '';
  35. $last = ($j == $count - 1) ? ' last' : '';
  36. $j++;
  37.  
  38. $isLast = $j % $columns == 0;
  39.  
  40. if ($isLast) {
  41. $last .= ' last';
  42. }
  43.  
  44. $renderer = $modHelper->createRenderer('item');
  45. echo '<div class="' . $border . ' column width' . intval(100 / $columns) . $first . $last . '">'
  46. . '<div class="jb-box">'
  47. . $renderer->render('item.' . $modHelper->getItemLayout(), array(
  48. 'item' => $item,
  49. 'params' => $params
  50. ))
  51. . '</div>'
  52. . '</div>';
  53.  
  54. if ($isLast) {
  55. echo JBZOO_CLR;
  56. }
  57. }
  58.  
  59. } else {
  60.  
  61. foreach ($items as $item) {
  62. $renderer = $modHelper->createRenderer('item');
  63. echo $renderer->render('item.' . $modHelper->getItemLayout(), array(
  64. 'item' => $item,
  65. 'params' => $params
  66. ));
  67. }
  68. }
  69.  
  70. echo '</div></div>';
  71. <script type="text/javascript">
  72. $(document).on('ready', function() {
  73. $(".project-slide").slick({
  74. dots: false,
  75. infinite: true,
  76. slidesToShow: 1,
  77. slidesToScroll: 1,
  78. lazyLoad: 'ondemand'
  79. });
  80. });
  81. </script>
  82. <?php endif;
  83. }

  • 0

#6 CB9TOIIIA

CB9TOIIIA

Отправлено 23 March 2018 - 08:29

Kvadr сказал(а) 22 Мар 2018 - 16:35:

Спасибо за оперативный ответ. Но я не понимаю. Вопрос - что мне с "ними" делать? Есть скрипты слайдера, как их связать с JBZoo Item?

Извините, но как то так)

 

Есть синтаксис скрипта - вот его просто скрестить с данными по API с JBZoo/zoo


  • 0

#7 Kvadr

Kvadr

Отправлено 26 March 2018 - 16:44

'CB9TOIIIA' сказал(а) 23 Мар 2018 - 07:29:

Есть синтаксис скрипта - вот его просто скрестить с данными по API с JBZoo/zoo

 

Если бы я сразу знал, что это делается таким методом - "просто скрестить...по API", наверно не задавал бы таких глупых вопросов. Если беретесь помочь  - то помогите. На данный момент, вот такая ситуация: Fatal error: Call to a member function css() on null in ..../modules/mod_jbzoo_item/tmpl/slickslider.php on line 16.  Что делаю не так?

 

  1. <?php
  2. /**
  3. * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
  4. * @package jbzoo
  5. * @version 2.x Pro
  6. * @author JBZoo App http://jbzoo.com
  7. * @copyright Copyright (C) JBZoo.com, All rights reserved.
  8. * @license http://jbzoo.com/license-pro.php JBZoo Licence
  9. * @coder Alexander Oganov <t_tapak@yahoo.com>
  10. */
  11. // no direct access
  12.  
  13. defined('_JEXEC') or die('Restricted access');
  14.  
  15. $zoo->jbassets->css('modules/mod_jbzoo_item/assets/slick/slick.css');
  16. $zoo->jbassets->css('modules/mod_jbzoo_item/assets/slick/slick-theme.css');
  17. $zoo->jbassets->js('modules/mod_jbzoo_item/assets/slick/slick.js');
  18. $items = $modHelper->getItems();
  19. $count = count($items);
  20. if ($count) : ?>
  21. <div id="<?php echo $modHelper->getModuleId(); ?>" class="jbzoo yoo-zoo">
  22. <div class="multiple-items">
  23. <?php echo $modHelper->renderRemoveButton(); ?>
  24. <div>
  25. <?php
  26. foreach ($items as $item) {
  27. $renderer = $modHelper->createRenderer('item');
  28. echo $renderer->render('item.' . $modHelper->getItemLayout(), array(
  29. 'item' => $item,
  30. 'params' => $params
  31. ));
  32. }
  33. ?>
  34. </div>
  35. </div>
  36. </div>
  37. <script type="text/javascript">
  38. jQuery ( function ($) {
  39. $(document).ready(function(){
  40. $('.multiple-items').slick({
  41. infinite: true,
  42. slidesToShow: 3,
  43. slidesToScroll: 3
  44. });
  45. });
  46. });
  47. </script>
  48. <?php endif;

Помогите разобраться, кому не лень. Весь сайт почти сделал, не единого вопроса не задал. А вот здесь встал в ступор.


  • 0

#8 DMTR3000S

DMTR3000S

Отправлено 27 March 2018 - 10:07

Kvadr сказал(а) 23 Мар 2018 - 06:28:

Внутри шаблона модуля, или шаблона сайта? 

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

 

Kvadr сказал(а) 26 Мар 2018 - 15:44:

Fatal error: Call to a member function css() on null in ..../modules/mod_jbzoo_item/tmpl/slickslider.php on line 16.  Что делаю не так?

Файлы slick-slider'а лежат по указанному пути?

 

P.S. Вы также можете подключить скрипт прям в лоб в любом месте документа (разумеется, путь до скрипта у вас будет свой):

  1. <script type="text/javascript" src="/templates/ВАШ_ШАБЛОН/js/script.js"></script> 

  • 0

#9 Kvadr

Kvadr

Отправлено 27 March 2018 - 10:33

DMTR3000S сказал(а) 27 Мар 2018 - 09:07:

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

С этим ясно. Да, именно надо подключить скрипт через модуль.

 

DMTR3000S сказал(а) 27 Мар 2018 - 09:07:

Kvadr сказал(а) 26 Мар 2018 - 18:44: Fatal error: Call to a member function css() on null in ..../modules/mod_jbzoo_item/tmpl/slickslider.php on line 16.  Что делаю не так? Файлы slick-slider'а лежат по указанному пути?

 

 

Нет, по этому пути лежит шаблон модуля. Файлы слайдера здесь: /modules/mod_jbzoo_item/assets/slick 

DMTR3000S сказал(а) 27 Мар 2018 - 09:07:

P.S. Вы также можете подключить скрипт прям в лоб в любом месте документа (разумеется, путь до скрипта у вас будет свой): <script type="text/javascript" src="/templates/ВАШ_ШАБЛОН/js/script.js"></script> 

 

В каком файле подключить скрипт? В файле шаблона модуля или в файле альтернативного макета? Ещё момент, во всех инструкциях по установке слайдера, говорится о подключении его из файла html, у меня же файлы шаблона и макета php, как подключить из них я не понимаю. Так же в блоки div надо прописывать картинки, которые в слайдере будут находиться, но у меня в слайдере будут находится тизеры субкатегории. Вобщем вопросов море, в голове каша, поэтому не понятно.


  • 0





Темы с аналогичным тегами jbzoo item, слайдер slick

Click to return to top of page in style!