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


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

Свой шаблон для JBGallery


Лучший Ответ zeus07 , 08 June 2016 - 20:54

Данную проблему давно решил. 

В файле /media/zoo/applications/jbuniversal/elements/jbgallery/jbgallery.php рендер шаблона прописываем таким образом: 

// render layout
        if ($layout = $this->getLayout($parameter->get('template', 'jbgallery').'.php')) {
            return self::renderLayout($layout, compact('thumbs', 'galleryId', 'rel'));
        }

Выбор шаблона делаем в jbgallery.xml

<param name="template" type="list" default="jbgallery" label="JBZOO_GALLERY_TEMPLATE" description="JBZOO_GALLERY_TEMPLATE_DESC">
            <option value="jbgallery">jbgallery.php</option>
            <option value="gallery-slider">gallery-slider.php</option>
        </param>

И тогда в настройках элемента JBGallery будет возможность выбора своего шаблона

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 7

#1 zeus07

zeus07

Отправлено 17 May 2016 - 11:25

Здравствуйте!

 

Понадобилось сделать свой шаблон для элемента JB Gallery в виде слайдера. Как я понимаю, его можно добавить в папку в tmpl данного элемента, но в шаблоне edit нужно будет сделать выбор шаблона. Верно?

 

Сам шаблон планирую реализовать на основе UIKit Slideset. Есть одна особенность. На одном экране мне необходимо выводить определённое количество миниатюр. Это уже зависит не от самого элемента, а от настроек в слайдере?


  • 0

#2 Cheren-dow

Cheren-dow

Отправлено 17 May 2016 - 11:38

здравствуйте zeus07, вам необходимо в XML

\media\zoo\applications\jbuniversal\elements\jbgallery\jbgallery.xml 

добавить параметр выбора шаблона. В документации это описано.

Это уже зависит не от самого элемента, а от настроек в слайдере?

Это скорей всего зависит от CSS.  


  • 0
Изображение
 

#3 zeus07

zeus07

Отправлено 17 May 2016 - 11:39

здравствуйте zeus07, вам необходимо в XML

\media\zoo\applications\jbuniversal\elements\jbgallery\jbgallery.xml 

добавить параметр выбора шаблона. В документации это описано.

 

 

Это скорей всего зависит от CSS.  

Понял, спасибо, буду пробовать


  • 0

#4 zeus07

zeus07

Отправлено 17 May 2016 - 19:47

Подскажите пожалуйста по одному вопросу. Как мне записать значение из селекта в переменную $layout ?

// render layout
        $template = $params->get('template'); // тут получаю имя выбранного шаблона
        if ($layout = $this->getLayout()) { // тут его надо как-то записать в $layout (понимаю, что делается просто, но не помню как)
            return self::renderLayout($layout, compact('thumbs', 'galleryId', 'rel'));
        }

  • 0

#5 zeus07

zeus07

Отправлено 19 May 2016 - 12:35

Уважаемые разработчики, подскажите пожалуйста этот небольшой момент


  • 0

#6 Cheren-dow

Cheren-dow

Отправлено 19 May 2016 - 21:57

zeus07, в ссылке которая веден на документацию это написано. Посмотрите внимательно. 


  • 0
Изображение
 

#7 zeus07

zeus07

Отправлено 20 May 2016 - 20:03

Сделал вот таким образом 

// render layout
        if ($layout = $this->getLayout($params->get('template', 'jbgallery.php'))) {
            return self::renderLayout($layout, compact('thumbs', 'galleryId', 'rel'));
        }

Но всё равно выдаёт ошибку 

Fatal error: Call to a member function get() on array in /home/artcolor/artcolorit.com/terra/media/zoo/applications/jbuniversal/elements/jbgallery/jbgallery.php on line 96

Как раз ругается на строку 

if ($layout = $this->getLayout($params->get('template', 'jbgallery.php'))) {

Подскажите пожалуйста, в чём ошибка?


  • 0

#8 zeus07

zeus07

Отправлено 08 June 2016 - 20:54   Лучший Ответ

Данную проблему давно решил. 

В файле /media/zoo/applications/jbuniversal/elements/jbgallery/jbgallery.php рендер шаблона прописываем таким образом: 

// render layout
        if ($layout = $this->getLayout($parameter->get('template', 'jbgallery').'.php')) {
            return self::renderLayout($layout, compact('thumbs', 'galleryId', 'rel'));
        }

Выбор шаблона делаем в jbgallery.xml

<param name="template" type="list" default="jbgallery" label="JBZOO_GALLERY_TEMPLATE" description="JBZOO_GALLERY_TEMPLATE_DESC">
            <option value="jbgallery">jbgallery.php</option>
            <option value="gallery-slider">gallery-slider.php</option>
        </param>

И тогда в настройках элемента JBGallery будет возможность выбора своего шаблона


  • 1




Click to return to top of page in style!