Вывод в шаблоне изображений-полей ноды с пресетом, выбраным пользователем в Drupal7

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

Аватар пользователя rebroff rebroff 24 ноября 2011 в 14:03

Подскажите, пожалуйста, как в 7-ке формируется вывод поля-изображения с установленным форматом отображения и как этим управлять.
Т.е. как я могу переопределить вывод этого поля с учетом всех настроек, выбранных пользователем - формат("Изображение" или,например, "Colorbox"), стиль в ноде - такой то, а стиль при переходе по ссылке - вот этот(пресеты Image Style).
Куда смотреть в API?

Вот так я задаю статичный вывод

theme_image_style(array('style_name' => 'class_photo_preset',
                        'path' => $vars['field_class_photo'][0]['uri'],
                        'width' => '300'));

Наверное можно динамически 'style_name' брать из field_class_photo['items']['formatter'].
Но как учесть варианты 'в ноде' и 'переход по ссылке'?

Комментарии

Аватар пользователя Chyvakoff Chyvakoff 24 ноября 2011 в 14:29

rebroff wrote:
П
Т.е. как я могу переопределить вывод этого поля с учетом всех настроек, выбранных пользователем - формат("Изображение" или,например, "Colorbox")

не понял...
что именно ты хочешь сделать?темизировать ноду?но так,чтобы в одном случае была одна темизация,а в другом другая?

Аватар пользователя rebroff rebroff 24 ноября 2011 в 14:45

Нет. Я хочу переопределить шаблон для нод определенного типа. В ноде нужно вывести фото - одно из полей ноды. Но сделать это с учетом настроек поля. Т.е. для отображения в ноде - один пресет, а если по фотке кликнут - другой, в окне Colorbox, например.

Короче нужно показать поле-фотку в ноде с учетом всех настроек отображения для этого поля, заданных пользователем на странице настроек. Так, как это делает Друпал по-умолчанию, если я просто в шаблоне поставлю print render($content).
Но я хочу переопределить вывод каждого поля(из $content) отдельно. Как в ней ($content)по-умолчанию формируется вывод именно вот такого поля с изображением? Как определяется, какой пресет и когда использовать?

Прошу прощения за косноязычие в терминах.

Аватар пользователя Chyvakoff Chyvakoff 25 ноября 2011 в 9:48

знаешь че..сходу так не скажу.
короче поставь contentemplate.
открой в нем(в админке) шаблон нужного тебе типа ноды.
в подстановочных шаблонах найдешь как вывести скажем путь к твоей картинке. там что то типа $field->бла бла бла...
Вот это дело и копируй прям в шаблон node--mytype.tpl.php ну и фороми там соответствующе,добавив класс колорбокса,или оберни в нужный тебе пресет.

Аватар пользователя rebroff rebroff 25 ноября 2011 в 13:57

Вобщем, решил пока не заморачиваться. Оставил пока
print render($content['field_class_photo']

Но при наличии времени обязательно копну, че да как.