Узлы

В этой главе мы рассмотрим узлы и их типы. Мы покажем, как можно создать тип узла двумя различными способами. Сначала мы опишем программное шение. написав модуль, использующий обработчики прерываний Drupal. Этот юдход обеспечивает большую степень управляемости и гибкости при определении того, что узел может и не может делать. Затем мы покажем, как создать тип узла с помощью интерфейса администратора Drupal.

и кратко обсудим "Комплект для работы с содержимым" (Content Construction Kit — ССК). который постепенно превращается в часть ядра Drupal. Наконец, мы исследуем механизм управления доступом к узлу Drupal.
Что такое узел
Один из первых вопросов, которые задают новички в технологии Drupal, таков: -Что такое узел?" Узел является частью содержимого1. Drupal назначает каждой части содержимого номер, называемый идентификатор узла (node ID. в коде сокращенно указывается как $nid). Вообще-то каждый узел имеет еще и заголовок, благодаря чему администратор может просматривать список содержимого сайта.
Есть много различных видов узлов, или типов узлов. Вот некоторые распoстраненные типы: blog entry (запись в блоге), poll (опрос) и book page (книжная страница). Часто термин тип содержимого используется как синоним термина тип узла, хотя в действительности тип узла - более абстрактное понятие и может рассматриваться как контейнер.
Типы узлов расширяют возможности базового узла, обычно добавлением своих собственных атрибутов данных. Узел типа pol 1 запоминает опции голосования, дату истечения срока опроса и отданные голоса. Узел типа book хранит для каждого узла идентификатор его родительского узла, поэтому он будет знать, чему он соответствует в оглавлении книги. Узлы типа Ыод. в отличие от других, не добавляют никаких данных. Вместо этого они только добавляют различные разрезы в данные, создавая блоги для каждого пользователя и RSS-потоки для каждого блога. Все узлы имеют следующие атрибуты, сохраняемые в узле и таблице node_revi s ions базы данных.
• nid. Уникальный идентификатор узла.
• vid. Уникальная ревизия идентификатора узла, необходимая потому, что Drupal может хранить ревизии содержимого для каждого узла. Атрибут vid уникален для всех узлов и ревизий узла.
• type. Каждый узел относится к какому-то типу, например blog, story, article, image и т.д.
• title. Короткая 128-символьная строка, используемая как заголовок узла, если не запрограммировано иначе, обозначается как 0 в поле hae_title таблицы node_type.