Slick Slider

Автор vagvic, 09 ноября 2019, 00:57:20

« назад - далее »

vagvic

Добрый день.
Возникла проблема при установке Slick-слайдера.
Что сделал:
1. Загрузил файлы слайдера(css, js)
2. В head.tpl прописал

<link rel="stylesheet" type="text/css" href="/slick/slick.css"/>
<link rel="stylesheet" type="text/css" href="/slick/slick-theme.css"/>

<script src="/slick/slick.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
    $(document).on('ready', function() {
      $(".vertical-center-4").slick({
        dots: true,
        vertical: true,
        centerMode: true,
        slidesToShow: 4,
        slidesToScroll: 2
      });
      $(".vertical-center-3").slick({
        dots: true,
        vertical: true,
        centerMode: true,
        slidesToShow: 3,
        slidesToScroll: 3
      });
      $(".vertical-center-2").slick({
        dots: true,
        vertical: true,
        centerMode: true,
        slidesToShow: 2,
        slidesToScroll: 2
      });
      $(".vertical-center").slick({
        dots: true,
        vertical: true,
        centerMode: true,
      });
      $(".vertical").slick({
        dots: true,
        vertical: true,
        slidesToShow: 3,
        slidesToScroll: 3
      });
      $(".regular").slick({
        dots: true,
        infinite: true,
        slidesToShow: 3,
        slidesToScroll: 3
      });
      $(".center").slick({
        dots: true,
        infinite: true,
        centerMode: true,
        slidesToShow: 5,
        slidesToScroll: 3
      });
      $(".variable").slick({
        dots: true,
        infinite: true,
        variableWidth: true
      });
      $(".lazy").slick({
        lazyLoad: 'ondemand', // ondemand progressive anticipated
        infinite: true
      });
    });
</script>


3. Кэш отключил и включил рекомпиляцию шаблона

Обновляю страницу и не работает слайдер....
В консоли ошибок нет.

Должно работать здесь: http://a-astory.ru/content/6-lookbook

На других движках все легко ставится.
Например: http://polgreen.ru/pages/nomera-i-ceny.php#gotopid2

В чем может быть проблема?

Adik

В страницах cms и не будет работать. Нужно сначала разрешить javascript на этих страницах.
В контроллере cms в medie подгружать slick.js и slick.css, в шаблон педавать переменные настройки слайдера и т.д.

vagvic

Цитата: Adik от 09 ноября 2019, 12:11:25
В страницах cms и не будет работать. Нужно сначала разрешить javascript на этих страницах.
В контроллере cms в medie подгружать slick.js и slick.css, в шаблон педавать переменные настройки слайдера и т.д.

Спасибо за ответ.
И если не сложно, то как все это сделать по-шагово. Версия 1.7.6.0

Но странно, что FancyBox сторонний работает.

PrestaMan

#3
Цитата: vagvic от 10 ноября 2019, 13:01:25
Но странно, что FancyBox сторонний работает.
FancyBox в страницах смс не работает по дефолту. Чтобы работал переопределяют контроллер, в /override/controllers/front/CmsController.php
<?php

class CmsController extends CmsControllerCore
{
public function
setMedia()
   {
       
parent::setMedia();

       if (
$this->assignCase == 1) {
           
$this->addJS(_THEME_JS_DIR_.'cms.js');
       }

       
$this->addCSS(_THEME_CSS_DIR_.'product.css');
   
$this->addCSS(_THEME_CSS_DIR_.'cms.css');
   
$this->addCSS(_PS_CSS_DIR_.'jquery.fancybox.css', 'screen');
   
$this->addJqueryPlugin('fancybox');
   
   }
}


Тоже самое можно подключения других js плагинов.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

vagvic

Есть способ намного проще.
По умолчанию Prestashop не может запрещать выполнение js, т.к. вся преста на js работает.
Но есть где-то, что-то что запрещает выполнение js.

Если не хотите заморачиваться за то, чтобы разрешать, нужно просто загружать свои скрипты перед закрывающимся тегом </body> в этом файле
...themes/classic/templates/layouts/layout-both-columns.tpl

Проверено. Все работает.

PrestaMan

Проще не значит лучше. Чтобы проблем не было при обновлении, делают через переопределния. Чтобы можно было использовать функции prestashop сжатия и минификации, делают через переопределния. Чтобы не загружать по 10 одинаковых js библиотек, делают через переопределния.
Для меня проще через
Цитировать$this->addJqueryPlugin('fancybox');
одна строчка и все работает.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

vagvic

Понятно, что не лучше.
Будем попробовать...

PrestaMan

Есть же бесплатные модули, можно их взять и адаптировать под себя. Вот такой
https://www.prestashop.com/forums/topic/594556-free-module-slick-slider-homefeatured/

https://github.com/przemwl/prestashop-slick-slider-module
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!