Комментарии 27
Спасибо за наводку на хорошую библиотеку для работы с миниатюрами. А то уже забадался велосипеды изобретать.
0
Пхп-Тамбов.
+5
Спасибо, вовремя.
0
Что-то не поняла я…
Фильтры вывода??? Т.е. изображение модифицируется не при загрузке, а при отображении? И если у меня в галерее 100 превьюх на одной странице — то при каждом просмотре страницы эти превьюхи генерятся на PHP? Хм…
Фильтры вывода??? Т.е. изображение модифицируется не при загрузке, а при отображении? И если у меня в галерее 100 превьюх на одной странице — то при каждом просмотре страницы эти превьюхи генерятся на PHP? Хм…
0
Может быть он их как то все же кеширует? Не думаю что все настолько плохо, а то 100 превьюх для файлов по 10 метров будет накладненько каждый раз генерировать.
0
они кешируются
0
нет создает и сохраняет в папке cache — если следующий раз с такими же параметрами вызывается изображение, то обращается к уже существующему.
0
А если исходная картинка с этого времени изменилась?
0
Вообще — перегенерирует, но тут уже броузер свой кэш включает.
Поэтому, я добавляю ?timestampобновления, чтобы броузер выводил новые картинки всегда.
Поэтому, я добавляю ?timestampобновления, чтобы броузер выводил новые картинки всегда.
0
Вообще это не правильно. На сайтам с большим количеством картинок будет лишняя (довольно большая) и совсем не нужная нагрузка + замедление скорости открытия сайта.
Надо чтобы картинки отдавались напрямую nginx-ом, без задействования php. Но тогда они должны приводиться к требуемому виду во время добавления на сайт.
Надо чтобы картинки отдавались напрямую nginx-ом, без задействования php. Но тогда они должны приводиться к требуемому виду во время добавления на сайт.
0
Так они ж и отдаются.
Первый раз php генерирует уменьшенную картинку и кладет ее в папку кэша. Там эта картина и лежит. Лично у меня лежат скриншоты сайтов — они обновляются периодически. Имена картинок и кэшированных копий при этом не меняются.
Nginx отдает картинку. Броузер видит, что адрес картинки прежний — и выводит свою сохраненную копию (старую картинку). Поэтому я добавляю к адресу timestamp последнего обновления ссылки (у меня в БД при обновлении пишется).
Так все и работает, без нареканий.
Вот прямая ссылка на картинку webstartpage.ru/assets/components/phpthumbof/cache/8205d9aae8a4a5bdcfa5a22d6c99b20b.6d51640cbf897f1de7d609fd986018d9.jpg?1319860380
Первый раз php генерирует уменьшенную картинку и кладет ее в папку кэша. Там эта картина и лежит. Лично у меня лежат скриншоты сайтов — они обновляются периодически. Имена картинок и кэшированных копий при этом не меняются.
Nginx отдает картинку. Броузер видит, что адрес картинки прежний — и выводит свою сохраненную копию (старую картинку). Поэтому я добавляю к адресу timestamp последнего обновления ссылки (у меня в БД при обновлении пишется).
Так все и работает, без нареканий.
Вот прямая ссылка на картинку webstartpage.ru/assets/components/phpthumbof/cache/8205d9aae8a4a5bdcfa5a22d6c99b20b.6d51640cbf897f1de7d609fd986018d9.jpg?1319860380
0
Когда обновляется файл с картинкой, то меняется дата его модификации и nginx на основании этого отдает картинку (а не 304) при запросе от браузера if-modified-since.
0
Nginx то отдает, а броузер свою копию подсовывает. Причем, если открыть картинку в новом окне, отдельно и нажать f5 — броузер показывает новую версию =)
Поверьте мне, я довольно долго разбирался с этим. На данный момент у меня на сайте можно кликнуть на кнопочку и обновить картинку самостоятельно, благодаря ?timestamp броузер сразу показывает изменения.
И кстати, последняя версия phpthumbof (1.2.2) Revo как то совсем круто кэширует — откатился на 1.2.0.
Поверьте мне, я довольно долго разбирался с этим. На данный момент у меня на сайте можно кликнуть на кнопочку и обновить картинку самостоятельно, благодаря ?timestamp броузер сразу показывает изменения.
И кстати, последняя версия phpthumbof (1.2.2) Revo как то совсем круто кэширует — откатился на 1.2.0.
+3
Фильтр вывода работает при рендеренге страницы. То есть — при совмещении контента и шаблона.
На экран вы получаете уже готовую страницу с обработанными превьюшками.
Все картинки кэшируются, конечно.
На экран вы получаете уже готовую страницу с обработанными превьюшками.
Все картинки кэшируются, конечно.
+1
TV параметр не обязателен. Можно работать с изображением просто через input.
Я делаю вот так, с обычными ссылками:
< img src='[[+id:input=`/inc/img/favorites/[[+img]]`:phpthumbof=`w=200&h=112&zc=1`]]?[[+updated:strtotime]]' alt='' title='' width='200' height='112' class='small' / >
id здесь просто для начала работы фильтра, дальше путь к картинке и placeholder. Как видно — они запихиваются через фильтр input, и к нему уже применяется phpthumbof. Также добавлено время обновления картинки, для борьбы с кэшем броузера.
Если интересно, как это все работает — вот, можно потыкать — webstartpage.ru
Я делаю вот так, с обычными ссылками:
< img src='[[+id:input=`/inc/img/favorites/[[+img]]`:phpthumbof=`w=200&h=112&zc=1`]]?[[+updated:strtotime]]' alt='' title='' width='200' height='112' class='small' / >
id здесь просто для начала работы фильтра, дальше путь к картинке и placeholder. Как видно — они запихиваются через фильтр input, и к нему уже применяется phpthumbof. Также добавлено время обновления картинки, для борьбы с кэшем броузера.
Если интересно, как это все работает — вот, можно потыкать — webstartpage.ru
0
Подскажите. Делаю фильтрацию фотки по вашему примеру через чанк.
Вот таким образом вызываю [[$img200?&gallery=`469` &img=`002`]]
Но переменные gallery и img не подставляются. Просто пропуск.
Но если я в любом месте чанка добавляю переменные, nо все срабатывает. Добавить можно как угодно
можно как комментарий.
или alt='[[+gallery]] [[+img]]' — или так к тегу img.
Подскажите в чем проблема?
Вот таким образом вызываю [[$img200?&gallery=`469` &img=`002`]]
Но переменные gallery и img не подставляются. Просто пропуск.
Но если я в любом месте чанка добавляю переменные, nо все срабатывает. Добавить можно как угодно
можно как комментарий.
или alt='[[+gallery]] [[+img]]' — или так к тегу img.
Подскажите в чем проблема?
0
Вижу 2 варианта:
1. Кэширование. Попробуйте [[!$…
2. Порядок обработки переменных. Тут нужно разбираться. У Эво была такая пробема, когда phx при определенных условиях «съедал» плейсхолдеры.
1. Кэширование. Попробуйте [[!$…
2. Порядок обработки переменных. Тут нужно разбираться. У Эво была такая пробема, когда phx при определенных условиях «съедал» плейсхолдеры.
0
забыл добавить у меня Revo.
1ый вариант сработал. А можно объяснить, почему. Я понял, что восклицательный знак задает моему чанку кешируемость. В последующие вызовах код обрабатываться не будет. Но как это повлияло на вывод переменных? Я не пойму.
1ый вариант сработал. А можно объяснить, почему. Я понял, что восклицательный знак задает моему чанку кешируемость. В последующие вызовах код обрабатываться не будет. Но как это повлияло на вывод переменных? Я не пойму.
0
Наоборот, чанк с! НЕ кэшируется. И обрабатывает все переданные переменные каждый раз.
Иначе, после первой обработки вывод берется из кэша и на смену переменных ему начхать.
Иначе, после первой обработки вывод берется из кэша и на смену переменных ему начхать.
0
Да, точно я перепутал.
А то что он не будет кешироватся, не повлияет на скорость работы?
А по поводу переменных. Они и не меняются. Их просто нет. Место них пустое место.
Да у меня есть предлоложение что это из-за двойных скобок
конструкция [[++site_url]]assets/gallery/[[+gallery]]/[[+img]].jpg выводиться без проблем.
А то что он не будет кешироватся, не повлияет на скорость работы?
А по поводу переменных. Они и не меняются. Их просто нет. Место них пустое место.
Да у меня есть предлоложение что это из-за двойных скобок
конструкция [[++site_url]]assets/gallery/[[+gallery]]/[[+img]].jpg выводиться без проблем.
0
Вы что-то путаете.
[[$ — это работа с чанком
[[+ — это работа с плейсхолдером. Плейсхолдеры находятся внутри чанков, страниц, шаблонов.
Если вы вызываете чанк с параметрами — то они превращаются в плейсхолдеры внутри него.
Вот здесь пример: rtfm.modx.com/display/revolution20/Chunks
Вот мой вызов: [[+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
[[$ — это работа с чанком
[[+ — это работа с плейсхолдером. Плейсхолдеры находятся внутри чанков, страниц, шаблонов.
Если вы вызываете чанк с параметрами — то они превращаются в плейсхолдеры внутри него.
Вот здесь пример: rtfm.modx.com/display/revolution20/Chunks
Вот мой вызов: [[+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
0
Как то я пост прослоупочил( Плагин как то попробовал, что то там не заработало, и я про него забыл. Прочитал статью, и понял что 3 месяца я переодически занимался полной ерундой. Автору огромное спасибо. Но вот кое что омрачает мою радость. У меня почему то работает исключительно в виде отдельного вызова,
и совершенно не хочет работать как фильтр
Может быть кто-нибудь подскажет, в чем может быть причина?
[[!phpthumbof? &input=`[[+filename]]` &options=`***`]]
и совершенно не хочет работать как фильтр
[[*TvNamephpthumbof=`***`]]
Может быть кто-нибудь подскажет, в чем может быть причина?
0
автору респект, буду юзать — даже круче чем DirectResize 0.9 (кто помнит)
0
А куда нужно класть .ttf шрифт? Просто указать путь на сервере до него? А то шрифт по-умолчанию не понимает кириллицу.
0
А можно ли сделать что бы редактировались изображения только большого размера, а если меньше определенных размеров оставлялись без изменений.
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Работа с изображениями средствами phpThumbOf