Создание произвольных типов документов и полей к ним в Drupal

Одним из модулей-столпов на которых зиждется Drupal, наравне с Views, является модуль CCK (Content Construction Kit). Он позволяет создавать произвольные типы документов, а так же добавлять к ним новые поля. Скачать модуль можно тут.

В пакет модулей CCK входят следующие модули:

Content — Основной модуль, без него ничего работать не будет. Позволяет создавать новые типы документов (Content types).
Content Copy — позволяет импортировать/экспортировать определение полей.
Content Permissions — позволяет устанавливать права доступа на уровне полей.
Fieldgroup — с помощью него можно группировать поля.
Node Reference — добавляет к документу ссылку на другой документ.
Number — добавляет численное поле.
Option Widgets — добавляет дополнительные типы выбора для текстовых и числовых полей.
Text — добавляет текстовые поля.
User Reference — позволяет добавлять поле с ссылкой на пользователя.

Зайдем в меню «Administer › Site building › Modules» и включим их все.

В меню «Administer › Content management › Content types» добавим новый тип документа.

Необходимо заполнить 2 поля: Name (Имя для пользователя) и Type (имя для машины).

Сохраняем новый тип данных, сейчас он практически ничем не отличается от типа Story, давайте его разнообразим. Жмем «Edit».

Следом нажимаем «Manage fields».

После включения модуля CCK тут добавилась вкладка Add

где можно добавить новое поле, и новую группу полей. Для добавления нового поля нужно ввести:

Label — заголовок поля который увидят пользователи.
Name — машинное имя.
Type of data to store — тип поля (у нас их 6, но на drupal org можно скачать множество дополнительных модулей).
Form element to edit the data — Элемент формы для редактирования поля. Если по-русски, то тут мы выбираем как будем вводить данные в это поле если например у поля типа «Text» выбрать «Text field», то будет одно строчное поле для ввода текста, а если выбрать «Text area», то получим много строчное поле. У разных типов полей разные варианты элементов формы.

Добавим поле с заголовком «Text», именем «text», типом «Text», элементом формы «text field», и нажмем «Save».

Здесь можно настроить только что добавленное поле.
Size of textfield — размер поля.
Default value — значение по умолчанию.
Required — если галочка установлена, то при добавлении материала данное поле будет обязательно для заполения.
Number of values — количество значений которое может ввести пользователь.

Я оставил все значения без изменений, и сохранил. Только что созданное поле отобразилось в списке, его можно перетащить мышкой, тем самым выбрав его месторасположение.

Для того что бы изменить то, как поле будет отображаться, нужно зайти во вкладку «Display fields».

Здесь выводится список полей. Мы можем изменить:
Label — заголовок. Above — отображается выше содержимого поля. Inline — отображается на одной линии с содержимым. <Hidden> - не показывать заголовок.
Teaser — как отобразать поле в превью. Default — по умолчанию. Plain text — обычный текст. Trimmed — обрезанный. <Hidden> - не показывать поле в превью.
Exclude — исключить поле из превью.
Full node — значения аналогичны Teaser, но распространяются не на превью, а на полный документ.
Exclude — исключить поле из документа.

Таким же образом в тип документа можно добавить и другие поля. Для CCK доступно более 300 дополнительных модулей, и если вам нужно добавить какое либо поле не входящее в стандартную поставку, ищите модуль на drupal org.

На этом урок закончен, чуть позже мы вернемся к модулю CCK, и рассмотрим работу с ним более подробно.А так же, я думаю, попробуем скрестить в одном уроке CCK и Views.

2340