Можно ли отресайзить все изображения на сайте

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

Аватар пользователя kras_over kras_over 10 января 2011 в 20:33

В связи с некоторыми изменениями в шаблоне, появилась необходимость проделать следующее со всеми нодами на сайте, над каждым их изображением:
1)Если изображение по ширине больше определенного размера, то добавить теги width height, притом сохраняя соотношение сторон. Если теги уже есть, то проверить проставленные размеры и, в случае необходимости, изменить на необходимые.
2)Если меньше, то оставить как есть.
Вполне подойдет и вариант, при котором для всех изображений больше заданного размера будет выводиться кликабельная миниатюра, наверняка есть подобный модуль, но пока не нашел.
Руками очень долго, не обессудьте.
С картинками разобрался вроде - установил Lightbox2. Осталось youtube-видео также отресайзить.

Комментарии

Аватар пользователя IrinaStasuk IrinaStasuk 10 января 2011 в 20:54

Еесли изображение - это поле image. Можно попробовать поставить модуль imagechache. Создать определнный вид изображения, установив нужные настройки. А потом в типе материала поставить в настройках поля нужный вид изображения. Не забудьте сделать дамп базы перед изменениями.

Если изображение встроено в тело, то этот способ - не годится.

Аватар пользователя kras_over kras_over 10 января 2011 в 21:17

image resize filter поставил, извините, что не указал этого в первом сообщении. Он отлично работает, только он, как я понял, делает миниатюры к изображениям, уже имеющим теги ресайза, если их нет, то и ресайзить он сам ничего не будет.
Lightbox вроде работает, но ресайзит только по горизонтали, по вертикали же картинка становится слегка вытянутой. Мелочь, а неприятно (разница в десяток пикселей).
Изображения именно что встроены в тело, часть локальные, часть внешние, если это тоже важно.

Тогда вопрос можно поставить и иначе:
Как откопать все ноды с youtube-роликами на сайте) Их немного, но вручную перебирать 300+ нод как-то не с руки?
И два, что сделать, чтобы картинки scale'ились пропорционально?

Аватар пользователя ubercoder ubercoder 10 января 2011 в 22:08

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

Для картинок используете lightbox2?

Аватар пользователя kras_over kras_over 10 января 2011 в 22:14

"<a href="mailto:ozoned@drupal.org">ozoned@drupal.org</a>" wrote:
Для картинок используете lightbox2?

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

Аватар пользователя ubercoder ubercoder 10 января 2011 в 22:53

Возможно. Т.к. задача производительности особо не стоит (акция одноразовая же?) я бы в сниппете перебрал все ноды, по регулярке заменил размеры.