Подскажите по imagecach - добавление текста (Было подскажите по views) (решено)

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

Аватар пользователя Alex_R Alex_R 26 августа 2010 в 0:34

Сейчас есть работающее представление, у которого в полях только одно поле сск с картинкой (в виде пресета имажкэш).
В данный документ добавилось поле, в зависимости от значения которого нужно выводить либо один пресет, либо другой. Как это реализовать? Понимаю, что задача достаточно простая, но что то никак не могу сообразить как...

Чтобы было понять что требуется, объясню на примере: допустим есть тип ноды "Изображение" в нем есть поле "копирайт" (0/1) и поле "изображение" (файл). Представление показывает галерею картинок те у которых "копирайт" равен "1" показываются пресетом имажкэш с наложенным текстом, а другие без текста. Это вообще возможно сделать?

Upd.
Решил пойти другим путем пытаюсь обойтись одним пресетом, однако не понимаю как получить номер ноды, в поле которой находится данное изображение. В доступных объектах его нет.
Может можно его получить из какой нибудь глобальной переменной?
Что за поле "fid" в объекте $file_data?

Комментарии

Аватар пользователя graker graker 26 августа 2010 в 0:41

Берете поле с картинкой и пишете для него шаблон.

if ($row->таблица_copyright == 1) {
  print  theme('imagecache', 'preset_1', $row->field_image);
} else {
  print  theme('imagecache', 'preset_2', $row->field_image);
}

Как-то так, только я название сск-полей во вьюхах не помню.

Аватар пользователя Alex_R Alex_R 26 августа 2010 в 13:07

Спасибо! Получилось, однако, получив результат, решил попытаться пойти совсем другим путем, оставив один пресет в настройках которого буду проверять ставить копирайт или нет. Пока не понял как там получить номер ноды, к которой присоединено изображение. Uid туда передается, а Nid нет.

Аватар пользователя Alex_R Alex_R 26 августа 2010 в 14:38

Alex_R wrote:
Что за поле "fid" в объекте $file_data?

Что за поле до конца не понял, но по крайней мере это поле в таблице типа материала является уникальным ( field_типматериала_fid ) и по нему у меня получилось сделать выборку. итоговый текст выглядит примерно так:

<?php
$copyright 
db_resultdb_query('SELECT field_copyryght_value FROM {content_type_типматериала} WHERE field_типматериала_fid = %d' $file_data -> fid));
if (
$copyright == 1){
$u=user_load($file_data -> uid);
return 
'© '$u ->name ;
}
?>