на скорую руку делал через темизацию (точное имя файла tpl.php сейчас увы вспомнить не смогу, модуль devel вам в помощь), но думаю лучше делать это через собственный модуль, ибо в шаблоне мы уже имеем обработанные друпалом переменные готовые к выводу, а на ранней стадии (в модуле) можно пресечь эту обработку дабы ускорить работу сайта. Перехватить вывод ноды, определить наличие полей imagefield и их кол-во, определить в тизере мы или нет и обрезать крайних четыре штук...примерно так
поставье contemplate, там будет ясно. чтобы вывести 1ое изображение в tpl.php можете добавить <?php if ($node->field_название_поля[0]['view']) print $node->field_название_поля[0]['view'] ?>
соответственно следующие изображения будут в $node->field_название_поля[1]['view'], $node->field_название_поля[2]['view'] и т.д.
у меня через imagecache создается 2 размера фотографии. Мjжно ли так сделать чтобы в тизере выводилась первая фотография одного размера (prev), а в теле документа все остальные фотографии другого размера (tumb)?
И еще может подскажите по ограничению кол-ва загружаемых в ImageField фотографий. Нужно чтобы при выборе в настройках "Number of values: без ограничений", было ограничение в 20 фотографий.
Есть у меня, на мой взгляд, немного похожий вопрос.
Во вьюсах, вывожу поле "Cодержимое: Фото Lightbox2: node-small->original", выводятся превью всех изображений ноды и кликом по любому из них открывается галерея lightbox2. Но вот хотелось сделать, чтобы выводилось лишь одно изображение, а в lightbox-е можно было просмотреть все изображения этой ноды. Если во вьюсе просто выводить лишь 1-е изображение, то и lightbox подхватывает только это изображение.
Как извратиться, чтобы вьюс показывал одну картинку, а lightbox - все изображения ноды?
поставье contemplate, там будет ясно. чтобы вывести 1ое изображение в tpl.php можете добавить <?php if ($node->field_название_поля[0]['view']) print $node->field_название_поля[0]['view'] ?>
соответственно следующие изображения будут в $node->field_название_поля[1]['view'], $node->field_название_поля[2]['view'] и т.д.
поставье contemplate, там будет ясно. чтобы вывести 1ое изображение в tpl.php можете добавить <?php if ($node->field_название_поля[0]['view']) print $node->field_название_поля[0]['view'] ?>
соответственно следующие изображения будут в $node->field_название_поля[1]['view'], $node->field_название_поля[2]['view'] и т.д.
вставил указанную выше строку, в тизере выводит ссылку на изображение, а как теперь сделать чтоб выводилось изображение, извините в коде не силен.
у меня через imagecache создается 2 размера фотографии. Мjжно ли так сделать чтобы в тизере выводилась первая фотография одного размера (prev), а в теле документа все остальные фотографии другого размера (tumb)?
"Sinn" wrote:
в свойствах типа содержимого есть "Display fields", и там можете указать что выводить в тизере и в контенте
в свойствах типа содержимого есть "Display fields", и там можете указать что выводить в тизере и в контенте
если сделать как вы говорите, то в тизер выводятся все фотографии с этого поля, а не одна.
в поле скажем 20 фотографий, каждая имеет два размера для отображения, так вот хотелось в тизер вывести одну (первую) одного размера, а внутри вывести все другого размера
Комментарии
на скорую руку делал через темизацию (точное имя файла tpl.php сейчас увы вспомнить не смогу, модуль devel вам в помощь), но думаю лучше делать это через собственный модуль, ибо в шаблоне мы уже имеем обработанные друпалом переменные готовые к выводу, а на ранней стадии (в модуле) можно пресечь эту обработку дабы ускорить работу сайта. Перехватить вывод ноды, определить наличие полей imagefield и их кол-во, определить в тизере мы или нет и обрезать крайних четыре штук...примерно так
kosilko спасибо за ответ!
Жаль, я еще не разобрался с правилами темизации(
Пойду ленивым способов, и добавлю два поля с картинкой:
1. Возможна загруска только одного изображения - для тизера.
2. Загрузка 4-х изображений
Думаю внешне, будет выгладеть почти также
поставье contemplate, там будет ясно. чтобы вывести 1ое изображение в tpl.php можете добавить <?php if ($node->field_название_поля[0]['view']) print $node->field_название_поля[0]['view'] ?>
соответственно следующие изображения будут в $node->field_название_поля[1]['view'], $node->field_название_поля[2]['view'] и т.д.
у меня через imagecache создается 2 размера фотографии. Мjжно ли так сделать чтобы в тизере выводилась первая фотография одного размера (prev), а в теле документа все остальные фотографии другого размера (tumb)?
И еще может подскажите по ограничению кол-ва загружаемых в ImageField фотографий. Нужно чтобы при выборе в настройках "Number of values: без ограничений", было ограничение в 20 фотографий.
Спасибо.
Есть у меня, на мой взгляд, немного похожий вопрос.
Во вьюсах, вывожу поле "Cодержимое: Фото Lightbox2: node-small->original", выводятся превью всех изображений ноды и кликом по любому из них открывается галерея lightbox2. Но вот хотелось сделать, чтобы выводилось лишь одно изображение, а в lightbox-е можно было просмотреть все изображения этой ноды. Если во вьюсе просто выводить лишь 1-е изображение, то и lightbox подхватывает только это изображение.
Как извратиться, чтобы вьюс показывал одну картинку, а lightbox - все изображения ноды?
Спасибо! Пойду разбираться с этим.
вставил указанную выше строку, в тизере выводит ссылку на изображение, а как теперь сделать чтоб выводилось изображение, извините в коде не силен.
в свойствах типа содержимого есть "Display fields", и там можете указать что выводить в тизере и в контенте
если сделать как вы говорите, то в тизер выводятся все фотографии с этого поля, а не одна.
в поле скажем 20 фотографий, каждая имеет два размера для отображения, так вот хотелось в тизер вывести одну (первую) одного размера, а внутри вывести все другого размера
выше же сказано - используйте contemplate и темизацию. осталось только вам самим этим заняться
да поставил я contemplate, разбираюсь, только толку пока маловато. Думал мож кто уже решал подобную задачу.