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


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

Шаблон модуля 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

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

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

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


  • 0

#4 DMTR3000S

DMTR3000S

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

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


  • 0

#5 Kvadr

Kvadr

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

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

 

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

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

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

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

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

<?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       Vitaliy Yanovskiy <joejoker@jbzoo.com>
 */

// no direct access
defined('_JEXEC') or die('Restricted access');

$zoo->jbassets->css('modules/mod_jbzoo_item/assets/slick/slick.css');
$zoo->jbassets->css('modules/mod_jbzoo_item/assets/slick/slick-theme.css');
$zoo->jbassets->js('modules/mod_jbzoo_item/assets/slick/slick.js');
 

$items   = $modHelper->getItems();
$count   = count($items);
$columns = (int)$params->get('item_cols', 1);
$border  = (int)$params->get('display_border', 1) ? 'rborder' : '';

if ($count) {

    echo '<div id="' . $modHelper->getModuleId() . '" class="jbzoo yoo-zoo">';
    echo '<div class="project-slide' . $columns . '">';
    echo $modHelper->renderRemoveButton();

    if ($columns) {
        $j = 0;
        foreach ($items as $item) {

            $first = ($j == 0) ? ' first' : '';
            $last  = ($j == $count - 1) ? ' last' : '';
            $j++;

            $isLast = $j % $columns == 0;

            if ($isLast) {
                $last .= ' last';
            }

            $renderer = $modHelper->createRenderer('item');
            echo '<div class="' . $border . ' column width' . intval(100 / $columns) . $first . $last . '">'
                .   '<div class="jb-box">'
                        . $renderer->render('item.' . $modHelper->getItemLayout(), array(
                            'item'   => $item,
                            'params' => $params
                        ))
                    . '</div>'
                . '</div>';

            if ($isLast) {
                echo JBZOO_CLR;
            }
        }

    } else {

        foreach ($items as $item) {
            $renderer = $modHelper->createRenderer('item');
            echo $renderer->render('item.' . $modHelper->getItemLayout(), array(
                'item'   => $item,
                'params' => $params
            ));
        }
    }

    echo '</div></div>';
	 <script type="text/javascript">
    $(document).on('ready', function() {
      $(".project-slide").slick({
        dots: false,
        infinite: true,
        slidesToShow: 1,
        slidesToScroll: 1,
		lazyLoad: 'ondemand'
      });
	 });
</script>
<?php endif;
}

  • 0

#6 CB9TOIIIA

CB9TOIIIA

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

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

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

 

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


  • 0

#7 Kvadr

Kvadr

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

Есть синтаксис скрипта - вот его просто скрестить с данными по 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.  Что делаю не так?

 

<?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       Alexander Oganov <t_tapak@yahoo.com>
 */
 
// no direct access

defined('_JEXEC') or die('Restricted access');

$zoo->jbassets->css('modules/mod_jbzoo_item/assets/slick/slick.css');
$zoo->jbassets->css('modules/mod_jbzoo_item/assets/slick/slick-theme.css');
$zoo->jbassets->js('modules/mod_jbzoo_item/assets/slick/slick.js');
 
$items = $modHelper->getItems();
$count = count($items);
 
if ($count) : ?>
 
    <div id="<?php echo $modHelper->getModuleId(); ?>" class="jbzoo yoo-zoo">
        <div class="multiple-items">
            <?php echo $modHelper->renderRemoveButton(); ?>
            <div>
                <?php
                foreach ($items as $item) {
                    $renderer = $modHelper->createRenderer('item');
                    echo $renderer->render('item.' . $modHelper->getItemLayout(), array(
                        'item'   => $item,
                        'params' => $params
                    ));
                }
                ?>
            </div>
        </div>
    </div>
 <script type="text/javascript">
 jQuery ( function ($) {
$(document).ready(function(){
$('.multiple-items').slick({
  infinite: true,
  slidesToShow: 3,
  slidesToScroll: 3
});
});
});
</script>
<?php endif;

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


  • 0

#8 DMTR3000S

DMTR3000S

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

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

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

 

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. Вы также можете подключить скрипт прям в лоб в любом месте документа (разумеется, путь до скрипта у вас будет свой):

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

  • 0

#9 Kvadr

Kvadr

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

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

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

 

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 

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!