Помощь Пытаюсь улучшить модальное окно fancybox

Тема в разделе "PrestaShop", создана пользователем yuazakharov, 11 ноя 2015.

Информация :
Хочешь в разделе без проблем общаться - прочти правила, чтобы потом с форумом на время не прощаться. Читать обязательно!
Внимание! Читайте внимательно правила!Предупреждения выдаются без всяких вопросов. Нарушил - получил. Будьте Внимательнее! Постинг нескольких постов подряд приравнивается к НАРУШЕНИЮ! Будьте вежливы и соблюдайте правила ;-)
Модераторы: ZiX
  1. yuazakharov

    yuazakharov

    Регистр.:
    22 янв 2013
    Сообщения:
    215
    Симпатии:
    96
    Добрый день! Извините за повтор, просто думаю тут больше замечут. Многим эта должно быть интересно.
    Как к модальному окну fancybox прикрутить кнопку Toggle size (оригинальный размер)? Как тут http://www.fancyapps.com/fancybox/#examples, Button helper
    1.jpg

    Внутри head добавил
    Код:
    <script type="text/javascript">
        $(document).ready(function() {
        $(".fancyq").fancybox({
            prevEffect        : 'none',
            nextEffect        : 'none',
            closeBtn        : false,
            helpers        : {
                title    : { type : 'inside' },
                buttons    : {}
            }
        });
    });
    </script>
    в файле product.tpl
    во всех тегах img, a добавил class="fancyq", но не работает. Обычное модальное окно отображается, но при закрытии, картинки со страницы исчезают.
     
  2. Jarhead

    Jarhead

    Регистр.:
    17 июн 2011
    Сообщения:
    336
    Симпатии:
    95
    Я тебе описал все уже на форуме престашопа
     
    Kolfg, trace, yuazakharov и ещё 1-му нравится это.
  3. yuazakharov

    yuazakharov

    Регистр.:
    22 янв 2013
    Сообщения:
    215
    Симпатии:
    96
    В шаблон\js\product.js ищем 184 строку, заменяем эту:
    Код:
     if (typeof(contentOnly) != 'undefined' && !contentOnly)
      {
        if (!!$.prototype.fancybox)
          $('li:visible .fancybox, .fancybox.shown').fancybox({
            'hideOnContentClick': true,
            'openEffect'  : 'elastic',
            'closeEffect'  : 'elastic',
            wrapCSS: 'image-fancy',
            afterLoad: function(){
              var body_w = $('body').width();
              var body_h = $('body').height();
    
              $('body#product .image-fancy').css('max-width', body_w - 50 + 'px');
              $('body#product .image-fancy').css('max-height', body_h - 100 + 'px');
            }
          });
         
         
      }
    На это:
    Код:
      if (typeof(contentOnly) != 'undefined' && !contentOnly)
    {
        if (!!$.prototype.fancybox)
            $('li:visible .fancybox, .fancybox.shown').fancybox({
                'hideOnContentClick': true,
                'openEffect'    : 'elastic',
                'closeEffect'    : 'elastic',
                helpers        : {
                    title    : { type : 'inside' },
                    buttons    : {}
                }
            });
    }
    Нужно в файле ProductController.php, примерно на 37 строчке внутри функции "public function setMedia()" дописать, или сделать оверайд этой функции с необходимыми правками. Помни, если ты сделаешь это без оверайда, то со следующим обновлением эти правки сотрутся.

    Заменить этот код:
    Код:
    if (!$this->useMobileTheme()) {
                $this->addCSS(_THEME_CSS_DIR_.'product.css');
                $this->addCSS(_THEME_CSS_DIR_.'print.css', 'print');
                $this->addJqueryPlugin(array('fancybox', 'idTabs', 'scrollTo', 'serialScroll', 'bxslider'));
                $this->addJS(array(
                    _THEME_JS_DIR_.'tools.js',  // retro compat themes 1.5
                    _THEME_JS_DIR_.'product.js'
                ));
            } else {
    На этот:
    Код:
    if (!$this->useMobileTheme()) {
                $this->addCSS(_THEME_CSS_DIR_.'product.css');
                $this->addCSS(_THEME_CSS_DIR_.'print.css', 'print');
                $this->addJqueryPlugin(array('fancybox', 'idTabs', 'scrollTo', 'serialScroll', 'bxslider'));
                $this->addCSS(_THEME_JS_DIR_.'jquery/fancybox/helpers/jquery.fancybox-buttons.css');
                $this->addJS(array(
                    _THEME_JS_DIR_.'tools.js',  // retro compat themes 1.5
                    _THEME_JS_DIR_.'product.js',
                    _THEME_JS_DIR_.'jquery/fancybox/helpers/jquery.fancybox-buttons.js'
                ));
            } else {
    Далее, тебе нужно в шаблон\js\ создать папку jquery/fancybox и положить внутрь созданной папки, папку helpers которую ты можешь взять из архива со скриптом fancybox скаченного с ихнего сайта.

    Вот пример, где все работает:
    http://demo.prestash...ves-tshirt.html


    Прикрепил файл для оверайда, его нужно закинуть в папку /override/controllers/front/

    Далее нужно удалить этот файл: /cache/class_index.php

    Благодарю, Kerm84!
     

    Вложения:

  4. yuazakharov

    yuazakharov

    Регистр.:
    22 янв 2013
    Сообщения:
    215
    Симпатии:
    96
    У меня почему-то криво показывает.
    Нажимаю на изображение, а там открывается пустое ...
    Появляется только при нажатии мышкой на стрелки влево и направо.
    2.jpg
     
  5. Konpolya

    Konpolya Постоялец

    Регистр.:
    23 окт 2015
    Сообщения:
    56
    Симпатии:
    8
    как я понимаю к 1.5 не подойдет?) есть кто делал?)
     
  6. Jarhead

    Jarhead

    Регистр.:
    17 июн 2011
    Сообщения:
    336
    Симпатии:
    95
    Нужно смотреть консоль браузера на наличие там ошибок.
     
  7. Jarhead

    Jarhead

    Регистр.:
    17 июн 2011
    Сообщения:
    336
    Симпатии:
    95
    Подойдет если в теме используется Fancybox 2
     
  8. yuazakharov

    yuazakharov

    Регистр.:
    22 янв 2013
    Сообщения:
    215
    Симпатии:
    96
    Вложил скрин. По фэнсибоксу вроде ошибок нет
     

    Вложения:

    • 1.jpg
      1.jpg
      Размер файла:
      64,5 КБ
      Просмотров:
      9
  9. Konpolya

    Konpolya Постоялец

    Регистр.:
    23 окт 2015
    Сообщения:
    56
    Симпатии:
    8
    fancybox2 это не родной модуль? а может кто тыкнет как переделать обычный на 1.5 ?)
     
  10. Jarhead

    Jarhead

    Регистр.:
    17 июн 2011
    Сообщения:
    336
    Симпатии:
    95
    Это не модуль, а скрипт увеличалки фото и фото галареи