Какая галерея может показывать из виртуального каталога?

Тема в разделе "Галереи", создана пользователем Dimonira, 13.05.2013.

  1. Offline

    Dimonira Недавно здесь

    Регистрация:
    13.05.2013
    Сообщения:
    3
    Симпатии:
    1
    Пол:
    Мужской
    Использую свой хостинг на виртуальной машине с сервером Windows Server 2012, на котором крутится IIS 8. Сама виртуальная машина крутится в том же сервере с Hyper-V. Сайт сделан на joomla 3.1.1, которая стоит в корне сайта. Создал виртуальный каталог от корня сайта, допустим с названием /photos. Создал веб-юзера с доступом на чтение и ввёл его логин/пароль в настройках доступа к этому каталогу в IIS. Добавил этого веб-юзера в разрешения физической сетевой папки, для которой сделан виртуальный каталог.
    Теперь о главном. Пробовал несколько галерей, но они не видят файлы jpg в виртуальном каталоге. Они, видимо, хотят только физический каталог. В то же самое время, если просто выводить изображение стандартным способом joomla через тег img и вставлять в него путь типа "photos/file.jpg" (или "photos/folder/file.jpg", если есть подкаталог), то картинка в joomla видна без проблем, прямо в JCE.
    Вопрос, есть ли галереи, которые могут работать с виртуальным каталогом? Или может можно как-то "допилить" имеющуюся? Ну, например, простую, типа SIGE. Попробовал в ней тупо поменять путь на виртуальный - ничего не вышло. Видимо, функция opendir, которая читает содержимое директория, не работает с виртуальным каталогом (в плагине читается физический путь либо от /images, расположенного в корне сайта, либо от корня сайта).
     
  2.  
  3. Offline

    Dimonira Недавно здесь

    Регистрация:
    13.05.2013
    Сообщения:
    3
    Симпатии:
    1
    Пол:
    Мужской
    Пока для пробы прикрутил Lightbox 2.51 (http://lokeshdhakar.com/projects/lightbox2/).
    Для этого (подразумевается, что архив распакован в корень сайта, т.е. в корне сайта расположена папка /lightbox) проделал следующее (часть нагуглил, часть сам догадался):
    1. Подкорректировал исходники. Пришлось сделать для показа больших фото (в пикселях). В файле css/lightbox.css после строки (25) вставил:
    Код (CODE):
    1. #lightbox img {
    2. [COLOR="Blue"]max-height: 700px;[/COLOR]

    В файле js/lightbox.js внутри функции function LightboxOptions() скорректировал пути к графическим символам от корня сайта в папку /lightbox (строки 51, 52):
    Код (CODE):
    1. this.fileLoadingImage = '[COLOR="Blue"]/lightbox/[/COLOR]images/loading.gif';
    2. this.fileCloseImage = '[COLOR="Blue"]/lightbox/[/COLOR]images/close.png';

    Заменил на русские слова в строках 55, 56 (потом сохранить обязательно в UTF-8!):
    Код (CODE):
    1. this.labelImage = [COLOR="Blue"]"изображение"[/COLOR];
    2. this.labelOf = [COLOR="Blue"]"из"[/COLOR];

    И внутри функции function(imageWidth, imageHeight) (строка 215) сразу после открывающей фигурной
    скобки вставил текст для масштабирования под большие изображения:
    Код (CODE):
    1. if (imageHeight > 700) {
    2.   imageWidth = imageWidth / imageHeight * 700;
    3.   imageHeight = 700;
    4. }


    2. В Joomla создал модуль "HTML код", назвал его mod_lightbox2, запретил показывать заголовок, назначил ему несуществующую позицию lightbox2 (надо убедиться, что такой позиции модуля в шаблоне нет), отключил редактор, нажав [Toggle Editor], чтобы он не "съел" код и ввёл следующий "Пользовательский текст":
    Код (CODE):
    1. <script type="text/javascript" src="lightbox/js/lightbox.js"></script>
    2. <link href="lightbox/css/lightbox.css" rel="stylesheet" />


    3. При создании материала надо в самом начале вставить следующий текст:
    Код (CODE):
    1. {loadposition lightbox2}

    Здесь lightbox2 - это как раз та самая несуществующая позиция модуля. Этим кодом мы загружаем модуль в материал, - пользуемся стандартным плагином Joomla "Контент - Загрузка модулей". По сути вставляем html-код - две строчки, необходимые для работы Lightbox (а загрузку jquery делает сама joomla).
    Ссылки в материале делаем как на сайте автора, вида:
    Код (CODE):
    1. <a href="images/image-1.jpg" rel="lightbox[galleryname]" title="Image 1 title">Image #1</a>
    2. <a href="images/image-2.jpg" rel="lightbox[galleryname]" title="Image 2 title">Image #2</a>

    В квадратных скобках добавляется имя группы (если надо). Или при наличии миниатюр типа такого:
    Код (CODE):
    1. <div class="imageRow">
    2.     <div class="set">
    3.         <div class="single first">
    4.             <a href="images/examples/image-1.jpg" rel="lightbox[plants]" title="Image 1 title">
    5.             <img src="images/examples/thumb-1.jpg" alt="image 1 of 3 thumb" /></a>
    6.         </div>
    7.         <div class="single">
    8.             <a href="images/examples/image-2.jpg" rel="lightbox[plants]" title="Image 2 title">
    9.             <img src="images/examples/thumb-2.jpg" alt="image 2 of 3 thumb" /></a>
    10.         </div>
    11.         <div class="single last">
    12.             <a href="images/examples/image-3.jpg" rel="lightbox[plants]" title="Image 3 title">
    13.             <img src="images/examples/thumb-3.jpg" alt="image 3 of 3 thumb" /></a>
    14.         </div>
    15.     </div>
    16. </div>


    В итоге изображения нормально показываются в том числе и из виртуального каталога (если им считать images в ссылках выше).
    Но вопрос о полноценной галерее для показа изображений из виртуального каталога, как расширения Joomla, остаётся открытым. Почему в галереях этого не сделано - непонятно...
     
    Последнее редактирование: 14.05.2013
    OlegM нравится это.
  4. Offline

    Dimonira Недавно здесь

    Регистрация:
    13.05.2013
    Сообщения:
    3
    Симпатии:
    1
    Пол:
    Мужской
    Сегодня решил прикрутить в качестве галереи Colorbox 1.4.15 (http://www.jacklmoore.com/colorbox/). Она оказалась лучше чем Lightbox тем, что не имеет проблемы с масштабированием галереи на экране - оно происходит автоматически в зависимости от разрешения. Итак, действовал я по аналогичному сценарию.

    1. Распаковал содержимое архива в корень сайта, например, в папку /colorbox. Удалил всё на первый взгляд ненужное:
    - README.md;
    - всю подпапку /content;
    - всю подпапку языковой поддержки /i18n (перевод сделал по другому, прямо в Joomla);
    - все файлы index.html из пяти подпакок /exampleX (в них лежат "темы").

    2. Отредактировал содержимое файла example4/colorbox.css, чтобы в "теме 4" не налезали русские слова друг на друга (шрифт, видимо не подходящий, не вдавался):
    - строку 37 изменил на:
    Код (CODE):
    1. #cboxCurrent{position:absolute; bottom:0px; left:1[COLOR="Blue"]3[/COLOR]0px; color:#999;}

    - строку 46 изменил на:
    Код (CODE):
    1. #cboxSlideshow{position:absolute; bottom:0px; right:[COLOR="Blue"]70[/COLOR]px; color:#444;}

    - строку 48 изменил на:
    Код (CODE):
    1. #cboxNext{position:absolute; bottom:0px; left:6[COLOR="Blue"][/COLOR]px; color:#444;}


    3. Создал в Joomla пять модулей с HTML-кодом, которые определяют "темы" оформления галереи, некоторые настройки и перевод на русский. Содержимое текста в них одинаковое, отличается только цифрой в названии папки exampleX. Модули назвал тоже одинаково, типа mod_colorboxX (где X - цифра, та же, что и в папке "темы"). Позиции модулей тоже прописываем руками, чтобы таких позиций нигде в шаблоне не было, например, colorboxX (где X - та же цифра).
    Содержимое в "Пользовательский текст" вводим, предварительно отключив редактор ([Toggle Editor]):
    Код (CODE):
    1. <link rel="stylesheet" href="colorbox/example[COLOR="Blue"]1[/COLOR]/colorbox.css" /><script src="colorbox/jquery.colorbox-min.js"></script>
    2. <script>
    3. jQuery(document).ready(function() {
    4.   jQuery('a.[COLOR="SeaGreen"]gallery[/COLOR]').colorbox( {
    5.     opacity:0.5, rel:true, slideshow:true, height:"95%", current:"{current} из {total}", previous:"назад", next:"вперёд", close:"закрыть",
    6.     xhrError:"Контент не загружается!", imgError:"Изображение не загружается!", slideshowStart:"старт слайд-шоу", slideshowStop:"стоп слайд-шоу"
    7.   });
    8. });
    9. </script>

    Отличие вводимого текста в модулях только в одной цифре, выделенной синим цветом. Ключевое слово в тексте - название gallery, которое надо будет вбивать в материалах для определения галереи (можно выбрать другое). Можно и значения настроек покрутить, плюс добавить других (см. сайт разработчика Colorbox). Я выбрал параметры такими, чтобы галерея раскрывалась почти на всё окно браузера, картинка масштабировалась на всё окно галереи и автоматом запускалось слайд-шоу (его можно остановить и листать вручную), циклически показывая все картинки.

    4. При оформлении материала для включения галереи надо вставить в него такой текст (выбор модуля по его позиции):
    Код (CODE):
    1. {loadposition colorbox5}

    Как, кстати, я уже выяснил (просветился чтением книги про jQuery), эту вставку можно сделать в любом месте, необязательно в начале (как я писал в предыдущем посте). Это вызовет вставку в код содержимого соответствующего модуля. В примере таким образом выбрана "тема 5" отображения галереи. Можно любую из пяти. Мне понравились с нечётными номерами.
    Далее надо вставить ссылки на изображения. Лучше сразу делать с миниатюрами, которые надо предварительно подготовить. Я для этого вооружился бесплатной программой FastStone Image Viewer (http://www.faststone.org/FSViewerDetail.htm). Ссылки я делал примерно так (пример одной):
    Код (CODE):
    1. <a class="[COLOR="SeaGreen"]gallery[/COLOR]" href="images/image1.jpg" title="Заголовок 1"><img src="images/thumbs/image1_tn.jpg" hspace="5" vspace="5" /></a>

    Нетрудно догадаться, что файлы с "_tn" в имени - это миниатюры (я сделал 120х90 пикселей). Значения hspace и vspace по 5 пикселей введены, чтобы соседние миниатюры в материале не сливались. Тут можно применить фантазию в оформлении. Главное не забыть вставить ключевое слово, выделенное зелёным.
    В итоге изображения тоже нормально показываются в том числе и из виртуального каталога. Неудобство только в том, что надо поработать руками, вбивая ссылки в материал. Но пока жить можно...
     

Поделиться этой страницей

Загрузка...