Темизация Drupal урок 5 Темизация поля. Шаблон field.tpl.php.

В этом уроке мы продолжаем темизировать друпал и на этот раз темизируем поля. После этого урока мы будет темизировать вывод 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.

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

Комментарии

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook
(If you're a human, don't change the following field)
Your first name.
(If you're a human, don't change the following field)
Your first name.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Хороший урок но слишком сжато

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

Прошу не считать это придирками.

Теорию лучше прочитать в

Теорию лучше прочитать в книжках 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 по твоим урокам. Все перерыл в инете не нашел в чем проблема, можешь помочь?

Добрый день.   Очень

Добрый день.

 

Очень позноватально.

 

Подскажтите как вызвать оригинал картинки и image cache preset той же картинки.

 

Мне нужна такая конструкция

<a href="Оригинал картинки.jpg" class="fancybox">

<img src="пресет картинки.jpg" width="320" height="480" alt=""/>

</a>

 

Спасибо заранее.

Вам нужно для этого выводить

Вам нужно для этого выводить в поле оригинальный размер картинки, а уже в шаблоне запрашивать картинку с пресетом:

print theme_image_style(array(
  'style_name' => 'home_category_image',
  'path' => $result['node']->field_image['und'][0]['uri'],
  'alt' => $title,
  'attributes' => array('class' => 'search-result-img'),
));

С выводом пресета проблем не

С выводом пресета проблем не возникло,

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

<a href="Тут нужна ссылка на картинку" class="fancybox">
</a>

 

Напишите в каком шаблоне вы

Напишите в каком шаблоне вы смотрите, я посмотрю какие переменные там доступны.

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

 

Добрый день, подскажи

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

т.е. в полной ноде, все загруженные изображения, при клике на них, открываются в полном размере, но если в это поле не загруженно ни одного изображения, выводится изображение по умолчанию, и оно тоже открывается по клику, как от этого избавится?