Drupal node, объект публикаций в друпал

Drupal — это прежде всего CMS, т.е. система управления контентом. Поэтому все в drupal так или иначе связано с главным объектом системы — с нодами (nodes). Опросы, статьи, разделы сайта, голосования и публикации в форуме — это все экземпляры объекта node, разные типы публикаций.

Модуль node

Управлять публикациями позволяет модуль ядра — Node. Он формирует базовые зацепки для программирования, реализует редактор публикаций, организует интерфейс для создания новых типов публикаций и т.д — все базовые возможности работы с публикациями.

Одной из базовых концепций drupal является проектирование типов публикаций. Когда вы приступаете к новому сайту на Drupal, вы думаете о том, какие типы публикаций вам понадобятся, какие дополнительные свойства, поля им будут нужны. Далее можно планировать внешний вид, шаблоны типов публикаций, создание доп. кода на PHP.

Управление типами публикаций (типами node) выполняется администратором сайта:

Administration > Structure > Content types
http://example.com/admin/structure/types.

А настройка каждого из типов:

Administration > Structure > Content types > [Specific content type]
http://example.com/admin/structure/types/[system-type-name].

В Drupal 6, почти всегда базовый функционал расширяется подборкой модулей CCK, а в Drupal 7 — конструирование полей берут на себя модули ядра.

Управление содержимым

Для управления содержимым модуль Node предоставляет в админке раздел
Administration > Content
http://example.com/admin/content
где вы найдете список всех публикаций, сортированный по дате их последней правки.

Node реализует также концепцию версий или ревизий содержимого. В проектах, где над содержимым сайта работает 1-2 человека — это не очень актуально. Но в сложных проектах, где трудятся десятки редакторов — создание версий содержимого бывает очень востребовано.

Каждая публикация имеет собственный node ID. К примеру, добавив к адресу сайта /node/[nodeID], вы увидите публикацию с соответствующим ID (при условии, что у вас есть соответствующие на это права). А набрав адрес /node/[nodeID]/edit или /node/[nodeID]/delete — вызвать соответственно форму редактирования или удаления материала.

Права доступа

Модуль node, позволяет сформировать права доступа, редактирования и удаления для каждого типа контента. Соответствующие флажки появляются в секции управления правами — /admin/people/permissions.

Элементы Drupal Node API

Управление публикациями в back-end только верхушка айсбера из всего того что, даёт модуль Node и Drupal как CMS. Для работы с публикациями программист получает полноценный API функций на PHP.

Вот некоторые из них:

function node_load(nodeID);
function node_load_multiple(nodeIDs);

Эти две функции предназначены для загрузки данных публикаций. Первая вернет вам объект ноды с указанным ID, а вторая вернет целый массив объектов публикаций, соответствующий переданному массиву идентификаторов.

Полученный таким образом объект, можно модифицировать и сохранить:

function node_save($node);

Функции загрузки и сохранения активируют соответствующие зацепки, связанные с публикацией. В итоге вы получаете весь набор полей публикации при загрузке, включая дополнительные поля, созданные в конструкторе, и вызов необходимых обработчиков при сохранении.

Если в коде вам необходимо сверстать ноду, воспользуйтесь функцией node_view():

drupal_render(node_view($node, $view_mode = ‘full’, $lang_code = NULL));

Здесь:

  • $node — объект ноды,
  • $view_mode — тип отображения ‘full’ — полный, ‘teaser’ — сокращенный (используется, например, в лентах),
  • $lang_code — код языка, по умолчанию используется текущий глобальный код. Нужен для сайтов, содержащих многоязычный контент.

function node_delete($nid);
function node_delete_multiple($nids);

Аналогично с парой ф-ций загрузки, действует пара функций, удаляющих публикации. При вызове будут удалены все связанные с материалом данные (поля, ревизии, поиск по сайту и т.д.), и запущены имеющиеся пользовательские зацепки.

Объект Node в drupal 7

Объект, загруженный функцией node_load(), представляет экземпляр класса stdClass. Большинство свойств взяты из таблицы {node}. Я немного рассортировал свойства объекта, и кое что убрал, заменив (…).

Написать комментарий

Мало букафф? Читайте есчо !

Замена поля таксономии в редакторе ноды в Drupal 6

Август 24, 2013 г.

Потому то я и не люблю таксономию в шестерке drupal, что возможностей ею управлять хуками почти что нет. В 7-ке ситуация лучше. У меня была задача выводить ...

Читать

Программируем добавление шаблонов в Drupal 7

Июнь 9, 2011 г.

Речь пойдет о том, как добавить в стандартный список имен шаблонов свой шаблон, который обрабатывается шаблонизатором  drupal,  для конкретного "своего" случая. Начать нужно с того, что здесь описаны стандартные имена шаблонов для семерки. Имена ...

Читать

 

Комментарии к «Drupal node, объект публикаций в друпал»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: