Изучаем Переменные файла node.tpl.php в Drupal: Руководство для Разработчиков

Введение: В системе управления контентом Drupal, файл node.tpl.php является ключевым элементом для настройки отображения узлов (nodes). Этот файл предоставляет разработчикам мощный инструмент для контроля визуального представления контента на веб-сайте. В этой статье мы изучим основные переменные, доступные в node.tpl.php, и как использовать их для настройки отображения узлов.

1. Открываем файл node.tpl.php:

  • Расположение файла: Файл node.tpl.php обычно находится в теме вашего сайта в папке «templates» или «theme». Если его нет, можно создать собственный файл и поместить его в папку «templates» вашей темы.

2. Изучение Основных Переменных:

  • $node: Это основная переменная, представляющая текущий узел. Содержит всю информацию о ноде, такую как заголовок, тело, автор, дата создания и другие поля.

phpCopy code

<?php print $node->title; ?> // Вывод заголовка узла

  • $content: Эта переменная содержит контент узла, включая все поля и блоки.

phpCopy code

<?php print render($content['body']); ?> // Вывод тела узла

  • $teaser: Если узел отображается в виде анонса, эта переменная содержит краткое содержание.

phpCopy code

<?php print render($teaser); ?> // Вывод краткого содержания

3. Дополнительные Переменные:

  • $classes: Список классов для тега <div> обертки узла. Может быть использован для стилизации.

phpCopy code

<div class="<?php print $classes; ?>">

  • $id: ID узла. Может быть полезен для уникальной идентификации узла.

phpCopy code

<div id="node-<?php print $id; ?>">

  • $author: Информация об авторе узла, такая как имя пользователя.

phpCopy code

<?php print $author; ?>

4. Использование Условий и Циклов:

  • if ($page): Позволяет определить, отображается ли узел на отдельной странице (полная версия) или в анонсе (страница просмотра списка).

phpCopy code

<?php if ($page): ?> // Код для полной версии узла <?php else: ?> // Код для анонса узла <?php endif; ?>

  • foreach ($field_example as $item): Используется для обхода множественных значений полей (например, изображений).

phpCopy code

<?php foreach ($content['field_example'] as $item): ?> // Код для каждого значения поля <?php endforeach; ?>

5. Добавление Пользовательских Переменных:

  • theme_preprocess_node(&$variables): Вы можете использовать функцию theme_preprocess_node в файле template.php вашей темы для добавления собственных переменных.

phpCopy code

function YOUR_THEME_preprocess_node(&$variables) { $variables['custom_variable'] = 'Custom Value'; }

  • В node.tpl.php: После добавления пользовательской переменной в theme_preprocess_node, вы можете использовать ее в файле node.tpl.php.

phpCopy code

<?php print $custom_variable; ?>

Заключение: Переменные в файле node.tpl.php предоставляют широкие возможности для кастомизации отображения узлов в Drupal. Это мощный инструмент для разработчиков, позволяющий создавать уникальные макеты и визуальные эффекты на вашем сайте. Пользуйтесь этими переменными с умом, чтобы сделать ваш сайт более индивидуальным и функциональным.