[Решено]Как задействовать imagecache и lightbox2 при вставке изображений в ноду?

Главные вкладки

Аватар пользователя yaguar yaguar 12 марта 2012 в 19:04

Установлено bueditor, imce, lightbox2, imagecache.

В imagecache создал правило ресайза.
Создал папку и загрузил туда картинку требуемую.

Как теперь заставить друпал к этой картинке автоматически применять imagecache и выводить с помощью lightbox2? Lightbox2 не столь важно, как заставить ресайзится картинку на автомате?

Комментарии

Аватар пользователя yaguar yaguar 12 марта 2012 в 21:02

А если мне нужно загрузить 20 изображений в разные места ноды? Не пойдёт/
Пока надыбал такое решение http://ufku.com/drupal/bueditor/contributions/imagecache. С imagecache вопрос решён. Осталось решить вопрос с lightbox2 - вероятно таким же методом можно, добавив дополнительные Image style. Как?

Аватар пользователя Xermit Xermit 13 марта 2012 в 1:45

Использую решение на основе модуля linodef + nodepicker
Пример:

[nodepicker==node/215==Сунержа==[#344:field_image_cache:20,formatter="logo_default",nolink]]

В данном случае с помощью nodepicker будет создана ссылка на адрес node/215, на самом деле nodepicker найдет синоним этого адреса и вставит сразу ссылку-синоним этого адреса.

А вместо текста ссылки будет использован результат работы модуля linodef (вторые вложенные квадратные скобки), т.е. картинка, из ноды с идентификатором 344.

Так вот для страницы node/344 определено cck поле типа field_image_cache, в нем хранится чуть больше 20 изображений. Так вот мы берем 21 по счету изображение, так как индекс начинается с 0.
И пропускаем это изображение через заранее созданный пресет imagecache, который называется logo
при этом я запрещаю linodef-у генерировать ссылку, так как ее уже создал nodepicker модуль.

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

А именно ссылку генерировать модулем nodepicker,
так как в нем позволено использовать html в качестве текста ссылки, патч правда придется применить один.

Но не суть, в качестве форматера может вытупать не только пресет imagecache-а, но можно по сути подготовленное изображение вывести через imagecache, но запихнуть отображаться через lightbox к примеру.

Такая запись к примеру, благодаря linodef

[#344:field_image_cache:20,formatter="imagefield__lightbox2__colors__logo",nolink]

будет выводить в теле страницы картинку через пресет colors, а в лайтбоксе будет отбражена картинка через пресет logo, при этом оригинал изображения находится в узле за номером 344, в поле cck field_image_cache 21-й картинкой по счету.

Соответственно могу выводить картинки как захочу под какими угодно мне пресетами в нужном мне месте.

Аватар пользователя yaguar yaguar 13 марта 2012 в 18:20

Что-то слишком сложно.

Скрестить bueditor одновременно с imageche и lightbox2 получилось c помощью модуля BUEditor one click upload.

Найдено также решение в виде Image resize filter.

В BUEditor one click upload токены не работают, в Image resize filter они не предусмотрены в принципе. Руками всё придётся делать. Засада.

Аватар пользователя Jean-Claude Jean-Claude 13 марта 2012 в 20:22

я вручную, хотя сделал поле в imce - rel - и мозилла автоматом подставляет туда rel, хотя в последнее время юзаю thickbox, там вроде на классе определяется яваскриптом увеличение картинки

Аватар пользователя yaguar yaguar 13 марта 2012 в 20:27

Вручную - это не дело. Будем надёятся автор BUEditor one click upload поправит баги с токенами. Пока использую Image resize filter -руками выставля подпапку.

Аватар пользователя Jean-Claude Jean-Claude 13 марта 2012 в 20:29

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

Аватар пользователя Xermit Xermit 14 марта 2012 в 21:41

Могу объяснить почему не визуальное решение во много раз лучше любого визуального редактора.

Большинство всех визуальных модулей (за все не ручаюсь, но те которые я смотрел два года назад), которые позволяет вставлять картинки в страницы всегда вставляют абсолютную или относительную ссылку от корня или от url страницы, определенный на момент редактирования этой страницы.
При этом.
Абсолютные ломаются, как только вы переносите сайт в другое место, например, из дома на продакшн сайт, или сайт стал располагаться в подкаталоге сайта.
Все url-ы тут же станут битыми.
Второй вариант с относительными ссылками относительно корня ломается легко. Если вдруг вы захотите обновить картинку, и загрузите новую, но с другим названием, а у сайта стоят настройки сохранять на сайте изображение с тем же именем. То относительная ссылка ломается так как название изображения сменилось. Вариант же с просто ссылкой относительно страницы ломается еще легче, достаточно зайти в режим пред просмотра и изображения уже не видно.

У меня же, все равно, обновят ли у меня изображение, сменят ли название файла, переедет ли сайт на новое место или углубится по структуре каталогов на сайте, мне все равно! Так как, каждый раз при выводе, drupal залезет в узел 344, найдет там поименованное cck поле, возьмет его 21-ое по счету значение и пропустив через preset imagecache и lightbox-а выдаст на странице, и url к изображению будет валидным всегда, так как он определяется во время рендеринга. И все будет работать даже если я сменю место хранения изображений imagecache.

Если даже я вдруг размещу все картинки сейчас на поддомене, img.mysite.com с помощью одного из модуля с целью ускорить параллельную загрузку изображений браузером, все картинки по прежнему отобразятся на страницах.

И это главная беда этих визуальных плагинов, они в большинстве своем не являются выходными фильтрами, тупо вставляю ссылку определенную на момент вставки в страницу. С помощью linodef
я могу в любом месте страницы например вставить view с заданными мной параметрами для аргументов и фильтров. Это конечно можно итак, если разрешить php код вставить в тело страницы, но зачем городить огород, если есть возможность это сделать как в любом wiki движке, через определенный шаблонный синтаксис.