В этом уроке мы продолжаем темизировать друпал и на этот раз темизируем поля. После этого урока мы будет темизировать вывод Views.
Для темизации поля, нужно скопировать файл modules/field/theme/field.tpl.php
в папку templates
вашей темы и дать ему новое имя согласно одному из шаблонов:
-
field--FIELD_TYPE.tpl.php — шаблон будет применён ко всем полям типа
FIELD_TYPE
. Например, чтобы темизировать все поля типа Image, нужно создать шаблон с именемfield--image.php
. -
field--FIELD_NAME.tpl.php — шаблон будет применён к полю с именем
FIELD_NAME
. Например, чтобы темизировать поле с именемfield_images
, нужно создать шаблон с именемfield--field_images.tpl.php
. -
field--BUNDLE.tpl.php — шаблон будет применён ко всем полям добавленных к сущности с типом
BUNDLE
. Например, чтобы темизировать все поля в материале типаpage
, нужно создать шаблон с именемfield--page.tpl.php
. -
field--FIELD_NAME--BUNDLE.tpl.php — шаблон будет применён только к полю
FIELD_NAME
, которое добавлено к сущности с типомBUNDLE
. Например, чтобы темизировать полеfield_images
в материале типаpage
, нужно создать шаблон с именемfield--field_images--page.tpl.php
.
После того, как шаблон скопирован и переименован, нужно сбросить кэш и отредактировать созданный файл. Описание всех доступных переменных находятся в комментариях шаблона.
Комментарии
Добавить комментарий
Хороший урок но слишком сжато
Хороший урок но слишком сжато - хотелось бы побольше теории в начале, что за файлы мы скопировали, почему именно такие, непонятен немного механизм работы Друпала по выводу полей в ноде. Я понимаю что для тебя это примитив, но вот осваивая Друпал все же возникают непонятки. поэтому чем подробнее - даже повторяя чтото из старых уроков, тем лучше.
Прошу не считать это придирками.
Теорию лучше прочитать в
Теорию лучше прочитать в книжках A. Byron, тогда станет понятнее. Ну а в целом в друпале как и везде шаблоны несут в себе ту же функцию, облегчают вывод данных. Друпал подготавливает данные и посылает их в шаблон, а в шаблоне из этих данных уже генерируется HTML. Шаблон field.tpl.php генерирует HTML из данных модуля fields, node.tpl.php генерирует из модуля node, user-profile.tpl.php из модуля user и так далее. Когда попробуете написать свой модуль и добавить в него свой шаблон, то станет понятнее как это все работает.
Количество изображений можно
Количество изображений можно настроить через display suite и обойтись без переопределения шаблонов - это намного проще. Но как пример работы с шаблонами все очень здорово! спасибо за уроки.
PS Капча безумная =)
У меня печальный опыт работы
У меня печальный опыт работы с display suite, panels, так что стараюсь избегать этих модулей, они ( по крайней мере в 6 друпале) очень сильно нагружали сайт. С тех пор стараюсь написать немного кода, но установить меньше модулей.
Привет! Еще вопрос - у меня в
Привет! Еще вопрос - у меня в админке почему то нет интерфейса перетаскиваия - это крестики которые слева от строк. за которые можно перетаскивать строки или поля. Делал тему на zen по твоим урокам. Все перерыл в инете не нашел в чем проблема, можешь помочь?
Скорее всего где-то ошибка
Скорее всего где-то ошибка javascript, установите firebug или web developer, чтобы посмотреть ошибки.
Спасибо!
Спасибо!
Добрый день. Очень
Добрый день.
Очень позноватально.
Подскажтите как вызвать оригинал картинки и image cache preset той же картинки.
Мне нужна такая конструкция
<a href="Оригинал картинки.jpg" class="fancybox">
<img src="пресет картинки.jpg" width="320" height="480" alt=""/>
</a>
Спасибо заранее.
Вам нужно для этого выводить
Вам нужно для этого выводить в поле оригинальный размер картинки, а уже в шаблоне запрашивать картинку с пресетом:
С выводом пресета проблем не
С выводом пресета проблем не возникло,
а вот вывод оригинального не пойму как сделать, просто изображение выводится, а как завернуть его в ссылку не знаю, точнее знаю, не знаю переменной.
Напишите в каком шаблоне вы
Напишите в каком шаблоне вы смотрите, я посмотрю какие переменные там доступны.
Наверно если вы задаете отображение в поле через пресет, то уже нельзя будет возвратить оригинальное изображение. Но если вы задаете отображение оригинального изображения, то вы можете возвратить оригинальное изображение и изображение с пресетом.
В шаблоне
В шаблоне node--content-type.tpl.php
Добрый день, подскажи
Добрый день, подскажи пожалуйста, как у поля изображение по умолчанию, убрать ссылку на просмотр в полном размере.
т.е. в полной ноде, все загруженные изображения, при клике на них, открываются в полном размере, но если в это поле не загруженно ни одного изображения, выводится изображение по умолчанию, и оно тоже открывается по клику, как от этого избавится?
скорее всего придется
скорее всего придется переопределить шаблон поля и в зависимости от контента в поле заменять вывод на обычную картинку.
Подскажи, пожалуйста, как
Подскажи, пожалуйста, как именно это сделать, буду очень признателен
Подскажите пожалуйста как
Подскажите пожалуйста как зделать меню, как на этом сайте suenco.ru