Читать «Журнал 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.