Столкнулся с задачей по автоматическому изменению размеров одинаковой фотографии через imagecache.
Всего нужно 3 состояния: 1). анонс (тизер) 2). основная (в полной версии) 3). на главной (блок views)
В display свойстве imagecache есть только 2 состояния: teaser и full.
Как добавить еще 1 состояние?
Комментарии
Только вместо типа строки Материал, используйте поля. Тогда можно любой imagecache выбрать.
А если мне нужен вывод не полей а материала в блоке?
Просто тогда я не вижу возможности гибкой темизации, если использовать views с полями.
А если мне нужно вывести еще попутно html из ноды в этот блок? Что тогда?
Во views можно:
1. Использовать вывод материалов (тизеров или полных нод). Views просто выводит тизер или полную версию. Кастомизация - Ваша проблема, которую надо решать через шаблоны нод.
2. Юзать поля - весь вывод (состав и вид полей) настраивается с помощью views. Дополнительно можно всё подрихтовать через шаблоны views.
Вот представьте вполне нормальную ситуацию:
Нужно выводить новости на главной странице и на странице самого раздела новостей (/news).
Изначально юзер должен видеть аннонсы новостей, на главной странице фотка в тизере новости должна быть крупнее, чем в тизерах раздела новостей (/news). В полной версии ноды новости - самая большая картинка. Получается, что нужно 3 состояния картинок с возможной темазацией... и views с полями для главной страницы будет крайне неудобным решением.
Вот над этим и бьюсь вообщем то...
Именно поля Вас и спасут. Можно хоть десять списков с десятью размерами сделать. Не вижу проблемы.
Вообще-то человек правильную проблему поднял. Это недостаток системы, что нельзя настраивать дополнительные отображения материалов, которые бы именовались своим идентификатором (как teaser или full) и содержали разные наборы по-разному отформатированных полей.
Есть две проблемы:
- что показывать,
- где показывать.
Вариантов "где" несколько: teaser, full, rss, token (это штатно в ССК), вариантов "что" гораздо больше и зависит от типа поля (для изображений - вообще неограниченно).
Так мы про какую проблему рассуждаем?
Именно так я у себя на сайте и сделал, прекрасно работает.
Для материала news имеется три пресета, один для full node, другой для teaser в разделе новости, а третий для teaser на главной.
Если различие только в размере картинки, в настроках типа материала (display fields) отключите показ этого поля, а рендер его сделайте в препроцессинге.
Если нужно его куда-то в недра переменной $content пихать, то тогда можно заюзать nodeapi.
http://drupal.org/project/nd
Можно создать сколько угодно разных видов тизеров.
О! Интересные модули, спасибо Dimm!
Хорошо бы что бы не канули в Лету, а развивались дальше.
Dimm спасибо!!!!
То, что и требовалось
только вот непонятно как в node.tpl.php обозначать область для доп. вида.
Например стандартный код:
<?php if($teaser==1) { ?>
Делал по аналогии, но не работает:
<?php if($myview==1) { ?>
В документации модуля ничего не сказано