Что-то не поняла я…
Фильтры вывода??? Т.е. изображение модифицируется не при загрузке, а при отображении? И если у меня в галерее 100 превьюх на одной странице — то при каждом просмотре страницы эти превьюхи генерятся на PHP? Хм…
Может быть он их как то все же кеширует? Не думаю что все настолько плохо, а то 100 превьюх для файлов по 10 метров будет накладненько каждый раз генерировать.
Вообще это не правильно. На сайтам с большим количеством картинок будет лишняя (довольно большая) и совсем не нужная нагрузка + замедление скорости открытия сайта.
Надо чтобы картинки отдавались напрямую nginx-ом, без задействования php. Но тогда они должны приводиться к требуемому виду во время добавления на сайт.
Первый раз php генерирует уменьшенную картинку и кладет ее в папку кэша. Там эта картина и лежит. Лично у меня лежат скриншоты сайтов — они обновляются периодически. Имена картинок и кэшированных копий при этом не меняются.
Nginx отдает картинку. Броузер видит, что адрес картинки прежний — и выводит свою сохраненную копию (старую картинку). Поэтому я добавляю к адресу timestamp последнего обновления ссылки (у меня в БД при обновлении пишется).
Когда обновляется файл с картинкой, то меняется дата его модификации и nginx на основании этого отдает картинку (а не 304) при запросе от браузера if-modified-since.
Nginx то отдает, а броузер свою копию подсовывает. Причем, если открыть картинку в новом окне, отдельно и нажать f5 — броузер показывает новую версию =)
Поверьте мне, я довольно долго разбирался с этим. На данный момент у меня на сайте можно кликнуть на кнопочку и обновить картинку самостоятельно, благодаря ?timestamp броузер сразу показывает изменения.
И кстати, последняя версия phpthumbof (1.2.2) Revo как то совсем круто кэширует — откатился на 1.2.0.
Фильтр вывода работает при рендеренге страницы. То есть — при совмещении контента и шаблона.
На экран вы получаете уже готовую страницу с обработанными превьюшками.
id здесь просто для начала работы фильтра, дальше путь к картинке и placeholder. Как видно — они запихиваются через фильтр input, и к нему уже применяется phpthumbof. Также добавлено время обновления картинки, для борьбы с кэшем броузера.
Если интересно, как это все работает — вот, можно потыкать — webstartpage.ru
Подскажите. Делаю фильтрацию фотки по вашему примеру через чанк.
Вот таким образом вызываю [[$img200?&gallery=`469` &img=`002`]]
Но переменные gallery и img не подставляются. Просто пропуск.
Но если я в любом месте чанка добавляю переменные, nо все срабатывает. Добавить можно как угодно
можно как комментарий.
или alt='[[+gallery]] [[+img]]' — или так к тегу img.
Вижу 2 варианта:
1. Кэширование. Попробуйте [[!$…
2. Порядок обработки переменных. Тут нужно разбираться. У Эво была такая пробема, когда phx при определенных условиях «съедал» плейсхолдеры.
забыл добавить у меня Revo.
1ый вариант сработал. А можно объяснить, почему. Я понял, что восклицательный знак задает моему чанку кешируемость. В последующие вызовах код обрабатываться не будет. Но как это повлияло на вывод переменных? Я не пойму.
Вот мой вызов: [[+id:input=`/inc/img/favorites/[[+img]]`:phpthumbof=`w=200&h=112&zc=1`]]
Вот ваш: [[$img200?&gallery=`469` &img=`002`]]
Вы видите, что я работаю с плейсхолдером, а вы с чанком? Понимаете ли вы разницу?
Передавать значения для плейсхолдеров при вызове чанка в вашем случае не имеет смысла, так что делайте как работает — [[++site_url]]assets/gallery/[[+gallery]]/[[+img]].jpg
Как то я пост прослоупочил( Плагин как то попробовал, что то там не заработало, и я про него забыл. Прочитал статью, и понял что 3 месяца я переодически занимался полной ерундой. Автору огромное спасибо. Но вот кое что омрачает мою радость. У меня почему то работает исключительно в виде отдельного вызова,
Работа с изображениями средствами phpThumbOf