Читать «Журнал PC Magazine/RE №11/2009» онлайн - страница 95

PC Magazine/RE

В шаблоне node.tplp.php доступно несколько переменных, самые важные из них: $title – заголовок документа, $node – объект, содержащий полную информацию о текущем документе, $submitted – HTML-код, содержащий информацию об авторе документа, $content – основное содержимое (тело) текущего документа. Не путайте переменную $content из шаблона node.tpl.php с одноименной переменной из шаблона page.tpl.php. В первой есть только «тело» текущего документа без дополнительной информации (автор, дата публикации и т. д.), а во второй – полный HTML-код, который будет показан пользователю в регионе content. Например, при просмотре ленты последних новостей переменная $content каждой новости будет содержать текст одной новости, а переменная $content в шаблоне page.tpl.php – HTML-код всех выводимых новостей (см. врезку «Описание схемы страницы»).

Листинг 3

<div class="node<?php if ($sticky) {

    print " sticky";

  } ?>

  <?php if (!$status) {

    print " node-unpublished";

  } ?>">

  <h2 class="title"><?php print $title?></h2>

  <span class="submitted"><?php print $submitted?></span>

  <div class="content"><?php print $content?></div>

</div>

Формы

Прежде чем говорить об изменении внешнего вида форм, ознакомимся с основами Drupal Forms API – программного интерфейса, используемого для генерации форм. Применение Forms API несколько сложнее создания HTML-форм вручную, так как требует изучения логики его работы, однако его использование обязательно, поскольку Forms API решает ряд важных задач:

• любой разработчик может добавить или удалить элементы в форме, созданной другим разработчиком, не меняя ее исходного кода;

• любой разработчик может добавить дополнительные функции проверки и обработки введенных пользователем данных без изменения исходной формы;

• формы, созданные с использованием Forms API, защищены от атак, связанных с отправкой пользователем модифицированной формы;

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

Каждая форма в Drupal представляет собой функцию, возвращающую ассоциативный массив. Этот массив должен содержать информацию обо всех элементах формы, функциях проверки (валидаторы, validators) и обработки (сабмиттеры, submitters) введенных данных. Данная функция должна быть расположена в файле модуля, о разработке модуля говорилось в статье, опубликованной в PC Magazine/RE, 9/2009.