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

yuazakharov

Постоялец
Регистрация
22 Янв 2013
Сообщения
300
Реакции
159
Добрый день! Извините за повтор, просто думаю тут больше замечут. Многим эта должно быть интересно.
Как к модальному окну fancybox прикрутить кнопку Toggle size (оригинальный размер)? Как тут Для просмотра ссылки Войди или Зарегистрируйся, 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", но не работает. Обычное модальное окно отображается, но при закрытии, картинки со страницы исчезают.
 
В шаблон\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 Для просмотра ссылки Войди или Зарегистрируйся.

Вот пример, где все работает:
Для просмотра ссылки Войди или Зарегистрируйся


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

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

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

Вложения

  • ProductController.rar
    1.003 байт · Просмотры: 5
У меня почему-то криво показывает.
Нажимаю на изображение, а там открывается пустое ...
Появляется только при нажатии мышкой на стрелки влево и направо.
2.jpg
 
как я понимаю к 1.5 не подойдет?) есть кто делал?)
 
У меня почему-то криво показывает.
Нажимаю на изображение, а там открывается пустое ...
Появляется только при нажатии мышкой на стрелки влево и направо.
Посмотреть вложение 66937

Нужно смотреть консоль браузера на наличие там ошибок.
 
Назад
Сверху