организовал ввод материала через ССК. там есть 4 поля ввода картинок. как сделать так, чтобы картинки отображались иконками например 200х200, а полную их версию можно было постомреть щелкнув на них. такая опция есть в модуле node image, но он не подойдет мне, насколько я понимаю, потом что его не прикрутить к ССК.
Комментарии
Вот пример из contemplates (работает и в обычном шаблоне). Отображается превьюшка, которая ведет на оригинальное изображение. Ссылки и названия полей, разумеется, меняем на свои. Ну еще надо бы разобраться с дивами и т.д., но это уже дизайнерские заморочки.
<h3 class="field-label"></h3>
<div class="field-items">
<?php foreach ((array)$field_pic_main as $item) { ?>
<div class="field-item"><?php print "<a href='/".$field_pic_main[0]['filepath']."'><img src='/files/imagecache/preview/".$field_pic_main[0]['filepath']."'></a></div>"; ?></div>
<?php } ?>
</div>
</div>
Все с помощью image field и imagecache, preview - название preset'a imagecache.
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Переводы некоторых модулей.
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
Нда... Век живи, век учись. И что меня тянет все делать через ж?
Natalie, спасибо!
Забыла уточнить, что imagecache генерит эти самые превьюшки по заданным правилам. Указанный код нужно поместить либо в шаблон для этого типа материала в contemplate, либо создать файл node-example.tpl.php (example - английское название типа материала).
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Переводы некоторых модулей.
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
Да, чего-то не понял. Поставил imagecache. Включил. Захожу в настройки: "Наборы правил Imagecache". Добавляю Preset и все... ничего более не появляется. Добавил уже штук 20 Preset'ов. Может еще что-то упустил (зависимости от других модулей). Вставил Ваш код в contemplate, изменив соответственно поля. Код работает, но вставляет full size image. Полез в директорию drupal/files/imagecache/preview/files/images. Картинка есть и она точная копия исходной.
После создания набора правил (preset), нужно добавить действия (scale, resize или crop), иначе imagecache ничего не будет делать.
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Переводы некоторых модулей.
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
Fuf, да оказалось не работает без модуля image
А причем здесь image? Мой пример - это ССК imagefield + imagecache
Подходит для вывода картинок по шаблону
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Переводы некоторых модулей.
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
Не знаю причем, но, как писал вышел, после добавления preset ничего не происходило (т.е. снова строка с просьбой создать новый preset и ничего более). После установки image и добавления нового preset, появились те самые настройки (resize, crop, scale), о которых Вы говорили.
Хотя в зависимостях imagecache не сказано ничего о image. У Вас установлен модуль image?
А Ваш пример работает безупречно
Не, image не стоит, только imagefield.
Ну работает, и то хорошо
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Переводы некоторых модулей.
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
огромнейшее спасибо, Natalie!
не работает =(((
как одлжно это все происходить?
превьюшка генерится во время загрузки изображения? тогда как прилинковать название пресета imagecashe к полю image в CCK?
а если не во время загрузки, то во время первого показа превьюшки на странице. в общем я вставил код, который вы написали выше, в свою тему в content templates. переменные поменял на свои. вот что получилось
<div class="field-items">
<?php foreach ((array)$field_news_image as $item) { ?>
<div class="field-item"><?php print "<a href='/".$field_news_image[0]['filepath']."'><img src='/files/imagecache/news_thumbnail/".$field_news_image[0]['filepath']."'></a></div>"; ?></div>
<?php } ?>
</div>
</div>
короче изображение не создается, не показывается, и путь к нему странный получается. должен быть вот такой, насколько я понимаю:
http://192.168.0.24/www.example.com/files/imagecache/preview/image.jpg
а получается вот такой:
http://192.168.0.24/files/imagecache/preview/files/image.jpg
большая картинка при этом на месте просто в папке files... ниче не понимаю
В примере Натали: "preview - название preset'a imagecache". Просто подставьте название Вашего preset
Давайте с начала.
Включите imagefield и сделаете новое поле image в вашем типе контента.
Включите imagecache, сделайте новый preset. Он будет генерить обработанные копии изображений по адресу files/imagecache/название_пресета/image.jpeg. Оригинальная картинка будет оставаться в files. Копия появится только когда в первый раз загрузится страница с изображением, а не во время загрузки оригинально изображений. Когда вы что-то меняете в наборе правил, не забывайте сделать flush (сброс) старых изображений.
Проверьте, работает ли средство обработки изображений. (image toolkit)
Дальше пробуйте код, не забыв изменить название поля, пресета и путь.
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Переводы некоторых модулей.
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.
Тоже столкнулся с проблемой, что не создавались пресеты. Много чего попробовал - оказалось, ларчик открывался просто
Из-за локализации, вообщем, косяк был.
http://drupal.org/node/125621
а у меня вот такая ошибка
* warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in www\drupal\includes\image.inc on line 238.
* warning: imagecopyresampled(): supplied argument is not a valid Image resource in \www\drupal\includes\image.inc on line 246.
* warning: imagejpeg(): supplied argument is not a valid Image resource in \www\drupal\includes\image.inc on line 321.
* warning: imagedestroy(): supplied argument is not a valid Image resource in \www\drupal\includes\image.inc on line 249.
а у меня вот такая ошибка
* warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in www\drupal\includes\image.inc on line 238.
я только что установил - тестирую - то же самое вылезло :/
Если критично место на диске посмотри http://drupal.ru/node/5149