ImageField: Как показать в тизере только первое изображение?

Аватар пользователя a.mohax a.mohax 1 апреля 2009 в 12:59

В настройках поля, стоит разрешение загружать до 5 изображений.

Как сделать так, что бы в отображении тизера, отображалось только первое изображение?

зы: Вроде где-то видел, или показалось Fool

Комментарии

Аватар пользователя kosilko kosilko 1 апреля 2009 в 13:32

на скорую руку делал через темизацию (точное имя файла tpl.php сейчас увы вспомнить не смогу, модуль devel вам в помощь), но думаю лучше делать это через собственный модуль, ибо в шаблоне мы уже имеем обработанные друпалом переменные готовые к выводу, а на ранней стадии (в модуле) можно пресечь эту обработку дабы ускорить работу сайта. Перехватить вывод ноды, определить наличие полей imagefield и их кол-во, определить в тизере мы или нет и обрезать крайних четыре штук...примерно так

Аватар пользователя a.mohax a.mohax 1 апреля 2009 в 13:47

kosilko спасибо за ответ!

Жаль, я еще не разобрался с правилами темизации(

Пойду ленивым способов, и добавлю два поля с картинкой:
1. Возможна загруска только одного изображения - для тизера.
2. Загрузка 4-х изображений

Думаю внешне, будет выгладеть почти также Smile

Аватар пользователя Sinn Sinn 1 апреля 2009 в 18:32

поставье contemplate, там будет ясно. чтобы вывести 1ое изображение в tpl.php можете добавить <?php if ($node->field_название_поля[0]['view']) print $node->field_название_поля[0]['view'] ?>

соответственно следующие изображения будут в $node->field_название_поля[1]['view'], $node->field_название_поля[2]['view'] и т.д.

Аватар пользователя RayB RayB 15 августа 2009 в 13:01

у меня через imagecache создается 2 размера фотографии. Мjжно ли так сделать чтобы в тизере выводилась первая фотография одного размера (prev), а в теле документа все остальные фотографии другого размера (tumb)?

И еще может подскажите по ограничению кол-ва загружаемых в ImageField фотографий. Нужно чтобы при выборе в настройках "Number of values: без ограничений", было ограничение в 20 фотографий.

Спасибо.

Аватар пользователя barmentalisk barmentalisk 1 апреля 2009 в 22:38

Есть у меня, на мой взгляд, немного похожий вопрос.
Во вьюсах, вывожу поле "Cодержимое: Фото Lightbox2: node-small->original", выводятся превью всех изображений ноды и кликом по любому из них открывается галерея lightbox2. Но вот хотелось сделать, чтобы выводилось лишь одно изображение, а в lightbox-е можно было просмотреть все изображения этой ноды. Если во вьюсе просто выводить лишь 1-е изображение, то и lightbox подхватывает только это изображение.
Как извратиться, чтобы вьюс показывал одну картинку, а lightbox - все изображения ноды?

Аватар пользователя a.mohax a.mohax 2 апреля 2009 в 10:29

"Sinn" wrote:
поставье contemplate, там будет ясно. чтобы вывести 1ое изображение в tpl.php можете добавить <?php if ($node->field_название_поля[0]['view']) print $node->field_название_поля[0]['view'] ?>

соответственно следующие изображения будут в $node->field_название_поля[1]['view'], $node->field_название_поля[2]['view'] и т.д.


Спасибо! Пойду разбираться с этим.

Аватар пользователя ph0en1xx ph0en1xx 3 июня 2009 в 22:49

"a.mohax" wrote:

поставье contemplate, там будет ясно. чтобы вывести 1ое изображение в tpl.php можете добавить <?php if ($node->field_название_поля[0]['view']) print $node->field_название_поля[0]['view'] ?>

соответственно следующие изображения будут в $node->field_название_поля[1]['view'], $node->field_название_поля[2]['view'] и т.д.

вставил указанную выше строку, в тизере выводит ссылку на изображение, а как теперь сделать чтоб выводилось изображение, извините в коде не силен.

Аватар пользователя Sinn Sinn 21 июня 2009 в 15:57

в свойствах типа содержимого есть "Display fields", и там можете указать что выводить в тизере и в контенте

Аватар пользователя Sinn Sinn 15 августа 2009 в 15:54

"RayB" wrote:
у меня через imagecache создается 2 размера фотографии. Мjжно ли так сделать чтобы в тизере выводилась первая фотография одного размера (prev), а в теле документа все остальные фотографии другого размера (tumb)?

"Sinn" wrote:
в свойствах типа содержимого есть "Display fields", и там можете указать что выводить в тизере и в контенте

Аватар пользователя RayB RayB 15 августа 2009 в 16:29

"Sinn" wrote:
"Sinn" написал(а):

в свойствах типа содержимого есть "Display fields", и там можете указать что выводить в тизере и в контенте

если сделать как вы говорите, то в тизер выводятся все фотографии с этого поля, а не одна.
в поле скажем 20 фотографий, каждая имеет два размера для отображения, так вот хотелось в тизер вывести одну (первую) одного размера, а внутри вывести все другого размера

Аватар пользователя Sinn Sinn 17 августа 2009 в 10:48

выше же сказано - используйте contemplate и темизацию. осталось только вам самим этим заняться

Аватар пользователя RayB RayB 17 августа 2009 в 19:03

да поставил я contemplate, разбираюсь, только толку пока маловато. Думал мож кто уже решал подобную задачу.