Guest
27 Dec 2013 09:43

большинство разработчиков плагинов галереи реализовывают вставку галерей в статью с помощью своих "тегов" в фигурных скобках типа > {boxplus href="/levente/image.jpg" title="Description of image"}Sample image

{/boxplus}

или > {boxplus href="/levente/image.jpg" title="Description of image"}Sample image

{/boxplus}

{gallery}myfolder{/gallery}

думаю вы согласитесь со мной, что это немного нерационально, так как занимает некоторое время, ибо кроме загрузки и вставки еще нужно и оформлять..

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

чтобы хоть каким то образом автоматизировать этот процесс, я использовал совместную работу двух плагинов: boxplus для всплывающих окон для вызова которого нужно было написать ссылку типа

         <a rel="boxplus-images" href="/levente/image.jpg" title="Description of image"><img alt="Sample image" src="/levente/thumb.jpg" />

</a> 

с подредактированным плагином SP Thumbnail, который заменял все картинки

<img alt="Sample image" src="/levente/thumb.jpg" />

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

но оказалось ,что это несовместимо с некоторыми функциями кобальта..

при этом мне очень понравился лайтбокс, который используется в кобальте. для всплывающих окон. а так же используется, как один из возможных вариантов вывода изображений полного размера (Режим Отображения) для поля галереи.

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

привожу фрагмент измененного кода (начиная с рядка 100) и файл плагина (с поддержкой трех языков), готов к установке и использованию

                       function onBeforeRender(){

                JHtml::_('lightbox.init', $this->id);

        }

        private function convertString($text, $replace_str) {

            $pos = strpos($replace_str, 'src=');

            $pos_start = strpos($replace_str, '"', $pos + 1);

            $pos_end = strpos($replace_str, '"', $pos_start + 1);

            $image_str = substr($replace_str, $pos_start + 1, $pos_end - $pos_start - 1);

            $new_str = '         <a id="'.$pos_start.'" rel="lightbox[0_1]"  href="'.$image_str.'">'.$replace_str.'</a>';

            $return_str = str_replace($replace_str, $new_str, $text);

            return $return_str;

        }

}

Last Modified: 02 Mar 2014


Guest
29 Dec 2013 06:50

одна проблема: после установки в админке в некоторых местах (например при попытке редактирования стиля шаблона) выдает 500 JHtml lightbox not found.

наверное надо это как то грамотнее подключить

        function onBeforeRender(){

            JHtml::_('lightbox.init', $this->id);

        }

Sergey
Total posts: 13,748
30 Dec 2013 07:47

lightbox.init это чисто кобальтавская примочка. В джумле это работать не будет в отрыве от кабоальта.


Guest
30 Dec 2013 09:52

почему то у меня в стандатрной джумловской категории lightbox.init работает без проблем

такой способ не остазал:

        function onBeforeRender(){

            $url1='/media/mint/js/lightbox/js/lightbox.js';

            $url2='/media/mint/js/lightbox/css/lightbox.css';

        $document =& JFactory::getDocument();

        $document->addScript($url1);

        $document->addStyleSheet($url2);          

        }
Powered by Cobalt