Вы здесь

Друпал 7: node.tpl.php

node.tpl.php — шаблон формирующий документ.


  • $title — заголовок документа
  • $content: An array of node items. Use render($content) to print them all, or print a subset such as render($content['field_example']). Use hide($content['field_example']) to temporarily suppress the printing of a given element
  • $user_picture — изображение автора (если показ изображения разрешён (на странице регистрации и странице темы и пользователь его загрузил на странице аккаунта) из user-picture.tpl.php
  • $date: Formatted creation date. Preprocess functions can reformat it by calling format_date() with the desired parameters on the $created variable
  • $name — автор документа (в обработке theme_username())
  • $node_url — адрес документа
  • $display_submitted: Whether submission information should be displayed
  • $submitted: Submission information created from $name and $date during template_preprocess_node()
  • $classes: String of classes that can be used to style contextually through CSS. It can be manipulated through the variable $classes_array from preprocess functions. The default values can be one or more of the following:
    • node: The current template type, i.e., "theming hook"
    • node-[type]: The current node type. For example, if the node is a "Blog entry" it would result in "node-blog". Note that the machine name will often be in a short form of the human readable label
    • node-teaser: Nodes in teaser form
    • node-preview: Nodes in preview mode

    The following are controlled through the node publishing options.

    • node-promoted: Nodes promoted to the front page
    • node-sticky: Nodes ordered above other non-sticky nodes in teaser listings
    • node-unpublished: Unpublished nodes visible only to administrators
  • $title_prefix (array): An array containing additional output populated by modules, intended to be displayed in front of the main title tag that appears in the template
  • $title_suffix (array): An array containing additional output populated by modules, intended to be displayed after the main title tag that appears in the template

Other variables:

  • $node — объект $node (просмотреть переменные объекта можно с помощью записи <?php print_r($node); ?>)
  • $type — тип документа (например story, page, blog и т.д.)
  • $comment_count — счётчик количества комментариев
  • $uid — идентификатор пользователя, который является автором документа
  • $created — время создания документа в формате UNIX timestamp
  • $classes_array: Array of html class attribute values. It is flattened into a string within the variable $classes
  • $zebra — добавление классов odd и even (используется для оформления с помощью CSS)
  • $id — идентификатор документа (счётчик документов на странице; первый документ — 1, второй документ — 2 и т.д.)

Node status variables:

  • $view_mode: View mode, e.g. 'full', 'teaser'...
  • $teaser: Flag for the teaser state (shortcut for $view_mode == 'teaser')
  • $page: Flag for the full page state
  • $promote: Flag for front page promotion state
  • $sticky: Flags for sticky post setting
  • $status: Flag for published status
  • $comment: State of comment settings for the node
  • $readmore: Flags true if the teaser content of the node cannot hold the main body content
  • $is_front: Flags true when presented in the front page
  • $logged_in: Flags true when the current user is a logged-in member
  • $is_admin: Flags true when the current user is an administrator

Field variables: for each field instance attached to the node a corresponding variable is defined, e.g. $node->body becomes $body. When needing to access a field's raw values, developers/themers are strongly encouraged to use these variables. Otherwise they will have to explicitly specify the desired field language, e.g. $node->body['en'], thus overriding any language negotiation rule that was previously applied.

Пример шаблона

<div id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>

  <?php print $user_picture; ?>

  <?php print render($title_prefix); ?>
  <?php if (!$page): ?>
    <h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
  <?php endif; ?>
  <?php print render($title_suffix); ?>

  <?php if ($display_submitted): ?>
    <div class="submitted">
      <?php print $submitted; ?>
  <?php endif; ?>

  <div class="content"<?php print $content_attributes; ?>>
// We hide the comments and links now so that we can render them later.


  <?php print render($content['links']); ?>

  <?php print render($content['comments']); ?>