vgrish
5 апр. 2013 г., 11:47

галерея на “prettyPhoto” вопрос

Добрый день ребята. Затеял галерею с использованием “prettyPhoto” и столкнулся со следующей проблемой: вывожу вот так элементы галереи
<article class="portfolio" data-category="photography"> <section class="thumbImage"> <img src="assets/components/images/gallery/01-thumb.jpg" alt="" class="fullwidth"> <div class="thumbTextWrap"> <div class="thumbText"> <h3 class="sectionTitle">На Волге</h3> <p>Мы с Саньком на рыбалке</p> <a class="thumbLink" href="assets/components/images/gallery/01.jpg" rel="prettyPhoto[gallery1]" title=" "></a> </div> </div> </section> </article>
все отлично работает, но только с одной галереей. А мне необходимо как бы галерея в галерее, т.е. чтобы при клике на миниатюру у меня открывалось слйдшоу из конкретно указанной папки, и для каждой миниатюры таким образом. каким образом это можно реализовать? у меня пока только мысль пришла в [iframes] загружать другое слайдшоу. может есть более элегантное решение? заранее спасибо огромное за вашу помощь!!!
Добрый день.
Обычно эти галереи работают с уже имеющимися ссылками. И различные группы картинок идентифицируют по какому-нибудь параметру (тот же rel используют). То есть на странице не надо обязательно миниатюры иметь, достаточно просто ссылок с адресами на картинки и идентификатором для галереи. Кликнув одно фото, можно будет листать эти фотки. То есть миниатюры — одна фотка из галереи, а остальное — просто ссылки, разбитые по блокам галерей.
мысль была выводить на одной странице миниатюры всех альбомов, а при клике на миниатюру подружалась бы галерея этого альбома без перезагрузки страницы. я так понимаю это невозможно на данный момент? хотя нашел вот такой пример: demo.freesoft.portonvictor.org/prettyPhoto-AJAX-test.html#prettyPhoto вроде как раз то, но для меня это совсем сложно
мысль была выводить на одной странице миниатюры всех альбомов, а при клике на миниатюру подружалась бы галерея этого альбома без перезагрузки страницы.
Я вообще-то и объяснил, как это делается. Неясно выразился? Значит вы еще не изучили как вообще эти галереи работают. Это следует сделать прежде, чем пытаться их вывести.
Вдумался, стало понятно))) спасибо!!! оказывается все так просто…
просто добавил ниже
<a href="http://components/focus/images/gallery2/gallery-02.jpg" rel="prettyPhoto[gallery2]" title="title 2"></a> <a href="http://components/focus/images/gallery2/gallery-03.jpg" rel="prettyPhoto[gallery2]" title="title 2"></a> … и т.д.
можно еще тогда вопрос: если планирую много галерей, от 20 и выше и в каждой хотя бы по 50 фоток. каким образом, быстрее набивать эти ссылки? каким инструментом лучше воспользоваться, так чтоб не по одной фото загружать, а допустим по фтп скинул и все… p.s. нельзя ли яндекс диск для хранения всего этого использовать или что либо подобное? или это пока не реализовать?
Готов поделиться своим решением, в ходе установки объяснить, как оно работает, что делает, как можно модифицировать и как использовать.
Естественно, не бесплатно…
каким инструментом лучше воспользоваться, так чтоб не по одной фото загружать, а допустим по фтп скинул и все…
Если речь именно о наполнении галереи, то там есть такое дело как «Пакетная загрузка». Жмете ее, он сообщает о директории, где он будет искать фотки (можно изменить), и все. Грузите туда фотки, он все это скопирует в этот альбом. (каждый альбом придется так же создавать в ручную). Есть еще там загрузка zip-архивом. Это все в том случае, если используете именно Gallery.
p.s. нельзя ли яндекс диск для хранения всего этого использовать или что либо подобное? или это пока не реализовать?
Я.Диск нет (еще не видел анонса такого пакета, хотя надо бы написать). Но можно облако Amazon3S, соответствующий медиасурс из коробки идет.
спасибо… с вопросами пока закончено, надо пробовать)
в личку черканите пожалуйста, что да как… какие плюсы вашего решения и сколько тенге
Начал писать в личку, но решил выложить здесь.
Вот, небольшой скрипт самописный. На странице вызываю так, например: [[Gal? &galdir=`images/gal/tube`]]
Там есть несколько параметров, немножко некрасиво сделал то, что оформление с кодом смешано, но разобраться можно.
Сниппет берет все файлы из указанной папки, обходит их циклом, с помощью phpThumbOf генерирует превьюшки и выводит на страницу. Результаты кеширует, чтобы каждый раз в папку не лезть (например, если галерея выводится на нескольких страницах, генерироваться будет только 1 раз). Оттолкнувшись от него можно будет сделать свою галерею.
Если скрипт подойдет, но трудно будет разобраться, тогда поговорим о консультациях. Или если будут конкретные вопросы, пишите в клуб)
спасибо огромное, все работает… мне оформление и не надо как бы мне достаточно вот такого вывода
<a href="images/gallery_N/name.jpg" rel="prettyPhoto[gallery_N]" title="name_Galery_N"></a>
и все))) спасибо!
<?php $properties = implode("-", $scriptProperties); $cache_key = "gal".$properties; $output = $modx->cacheManager->get($cache_key); if ($output) return $output; $files = scandir($galdir, 0); // если директории не существует if (!$files) return false; // удаляем . и .. (я думаю редко кто использует) if ($sort == 0) unset($files[0],$files[1]); else unset($files[count($files)-1], $files[count($files)-1]); foreach ($files as $file) { if (!$each_href) {$href = $modx->runSnippet('phpthumbof', array("input" => "/$galdir/$file", "options" => "w=1100&h=1100"));} else {$href = $each_href;} $output .= $before.'<a href="'.$href.'" '.$class.' rel="prettyPhoto['.$galdir.']"> </a>'.$after."\n"; } $modx->cacheManager->set($cache_key,$output); return $output;
выводит то что нужно единственно индификатор это полный путь. можно как то обрезать до названия папки? ато сейчас он вот в таком виде rel=«prettyPhoto[assets/components/focus/images/gal]»
Извините, но столько много вопросов, касаемых самых основ — это очень плохая тенденция. Во-первых, никто не будет постоянно на них отвечать, сутки не резиновые. Во-вторых, это говорит о том, что вы сами мало пытаетесь искать ответы на свои вопросы. Сталкиваясь даже простейшими вопросами, вы не сидите, и не ломаете над этим голову, а просто идете спрашивать. Так вы ничему и никогда не научитесь. Будет бессмысленный копипастинг.
да блин оказывается все просто, надо просто прочитать)))
$name = $scriptProperties['name'];
и вызываю
[[!Gal1? &galdir=`assets/components/focus/images/gal` &name=`[[*pagetitle]]` ]]
В принципе, строка
$name = $scriptProperties['name'];
не нужна — MODX и сам создает переменные по именам всех параметров, так что можно получить доступ к значению любого параметра двумя способами — написать $name или $scriptProperies['name']
Кстати, есть еще одна фишка. Если написать так:
[[*pagetitle:Gal=`assets/images/gal`]]
то в сниппете значение [[*pagetitle]] будет помещено в переменную $input, а путь — в переменную $options (это сделано для того, чтобы можно было создавать свои модификаторы помимо стандартных, типа [[*longtitle:default=`[[*pagetitle]]`]]).
Кстати, сниппет phpthumbof является таким модификатором. И параметры в него можно передавать так:
[[+tv.img:phpthumbof=`w=50&h=50&zc=1`]]
или так:
[[phpthumbof? &input=`[[+tv.img]]` &options=`w=50&h=50&zc=1`]]
Теперь можно легко понять, что это за строчка такая в сниппете:
$modx->runSnippet('phpthumbof', array("input" => "/$galdir/$file" , "options" => "w=1100&h=1100"));
т.е. вызывать я и так могу
[[!Gal1? &galdir=`assets/components/focus/images/gal` &id=`[[*id]]` &options=`w=1100&h=1100`]]
выкинув ту бесполезную строчку, а options присвою "'.$options.'" Спасибо за урок!) очень интересно!
вывожу некешированный ресурс с 60 фотографиями, обрабатывается гдето порядка 6 секунд. Хотел поинтересоваться, а если phpthumbof не обрабатывать фото а просто путь выводить, цикл ведь быстрее будет? Но тут путь как раз и формирует phpthumbof и его просто так не выкинуть да?
А вы попробуйте, и посмотрите, что получится.
я уже пробовал- получаю пусто)
Отключите плагин phpThumbofCacheManager — этот плагин каждый раз удаляет сгенерированные картинки при очистке кеша.

Добавить комментарий