Сейчас есть работающее представление, у которого в полях только одно поле сск с картинкой (в виде пресета имажкэш).
В данный документ добавилось поле, в зависимости от значения которого нужно выводить либо один пресет, либо другой. Как это реализовать? Понимаю, что задача достаточно простая, но что то никак не могу сообразить как...
Чтобы было понять что требуется, объясню на примере: допустим есть тип ноды "Изображение" в нем есть поле "копирайт" (0/1) и поле "изображение" (файл). Представление показывает галерею картинок те у которых "копирайт" равен "1" показываются пресетом имажкэш с наложенным текстом, а другие без текста. Это вообще возможно сделать?
Upd.
Решил пойти другим путем пытаюсь обойтись одним пресетом, однако не понимаю как получить номер ноды, в поле которой находится данное изображение. В доступных объектах его нет.
Может можно его получить из какой нибудь глобальной переменной?
Что за поле "fid" в объекте $file_data?
Комментарии
Берете поле с картинкой и пишете для него шаблон.
print theme('imagecache', 'preset_1', $row->field_image);
} else {
print theme('imagecache', 'preset_2', $row->field_image);
}
Как-то так, только я название сск-полей во вьюхах не помню.
например через Views Custom Field можно добавить php код
Спасибо! Получилось, однако, получив результат, решил попытаться пойти совсем другим путем, оставив один пресет в настройках которого буду проверять ставить копирайт или нет. Пока не понял как там получить номер ноды, к которой присоединено изображение. Uid туда передается, а Nid нет.
Что за поле до конца не понял, но по крайней мере это поле в таблице типа материала является уникальным ( field_типматериала_fid ) и по нему у меня получилось сделать выборку. итоговый текст выглядит примерно так:
<?php
$copyright = db_result( db_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 ;
}
?>