С помощью пакета модулей CCK пользователь CMS Drupal имеет возможность создания произвольных типов содержания, и поэтому умение использования этого пакета является обязательным!

Пакет модулей CCK состоит из следующих модулей:

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

 Для создание сайта интернет магазина нового типа содержания с помощью CCK перейдём на страницу Administer | Content management | Content types | Add content type. Указываем имя (Name), тип (Type) и описание (Description) создаваемого типа содержания, затем нажимаем на кнопку Save content type (сохранить тип содержания).

Теперь можно отредактировать существующие и добавить новые поля. Для этого переходим по ссылке Manage fields в строке созданного типа содержания.

Для создания нового поля (New field) указываем метку поля (Label), используемое Drupal имя поля (Field name), тип данных, содержащихся в поле (Type of data to store), форму представления поля (Form element to edit the data) и нажимаем на кнопку Save (сохранить). После этого отображается страница настроек, набор которых зависит от типа данных и формы представления поля.

После сохранения настроек поля (Save field settings) можно расположить поля в нужном порядке.

Тип данных может быть одним из следующих:

  •  ·    Decimal — десятичное число.
  •  ·    Float — действительное число.
  •  ·    Integer — целое число.
  •  ·    Node reference — ссылка на страницу сайта.
  •  ·    Text — текст.
  •  ·    User reference — ссылка на пользователя сайта.

 Каждому типу данных соответствует свой набор опций, определяющих как именно должно заполняться поле. Так, например, для целого числа (Integer) можно выбрать Text field (текстовое поле), Select list (список для выбора), Check boxes/radio buttons (набор выбираемых опций), Single on/off checkbox (единичная опция).

 Отображение созданных полей настраивается на странице Display fields (отображение полей).

Здесь выбирается способ отображения полей при обычном отображении содержания (Basic), при отображении в RSS, результатах поиска (Search) и при отображении некоторыми другими дополнительными модулями (например, Token). При выборе опции Exclude (исключить) соответствующее поле не используется при формировании страницы и, соответственно, не отображается. Наименование поля (Label) может располагаться над содержание поля (Above) или рядом с ним (Inline), а также может быть скрыто (<Hidden>). Для каждого поля помимо скрытого отображения (<Hidden>) доступны для выбора форматы отображения, соответствующие типу поля. Например, для поля, содержащего целое число, можно выбрать форматы представления “9999”, “9,999”, “9.999”, “9 999” или “unformatted” (без дополнительного форматирования).

 Если для какого-либо типа содержания создано новое поле, то оно становится доступным для дополнения и для других типов содержания. На странице Manage fields соответствующего типа содержания его можно выбрать по ранее указанному имени поля (Field name) в списке Field to share (используемое поле) в блоке Existing field (существующее поле). Для такого поля также можно назначить собственное имя (Label) и форму представления его на странице (Form element to edit the data).

Для логического выделения нескольких полей в отдельную группу можно создать группу полей (New group), указав наименование группы (Label) и используемое Drupal имя группы (Group name).

После создания группы в ней можно разместить необходимые элементы, например, с помощью перетаскивания на странице управления полями (Manage fields).

При редактировании настроек группы (Configure) можно указать наименование группы (Label), стиль представления группы (Style), вспомогательный текст, например инструкции по использованию группы (Help text), описание группы (Description). Для стиля отображения доступны три состояния: все элементы группы отображаются (always open), элементы группы отображаются, но при нажатии на наименование группы их можно скрыть (collapsible), элементы группы скрыты, но при нажатии на наименование группы они показываются (collapsed).

При удалении (delete) поля содержащаяся в нём информация удаляется. Если одно и то же поле используется в нескольких типах содержания, то при удалении поля из одного типа содержания, в других типах содержания оно остаётся и, соответственно, информация не удаляется. При удалении группы поля, содержащиеся в группе, не удаляются.

 Созданные поля для всех типов содержания перечислены на странице Content types | Fields, где указывается используемое Drupal имя поля (Field name), тип поля (Field type) и типы содержания, где используется это поле (Used in).

На странице Content types | Export можно экспортировать текстовое описание необходимого типа содержания, выбрав его в списке Types (типы).

Также можно уточнить, какие именно поля и настройки должны быть экспортированы, выбрав в отображаемом (после однократного нажатия на кнопку Export) списке нужные поля и группы.

 Полученный текст можно при необходимости отредактировать и после этого импортировать через страницу Content types | Import. Это позволяет добавить новые поля в какой-либо тип содержания или создать новый тип содержания с необходимыми полями и группами. За счёт механизма экспорта/импорта описание типов содержания можно переносить с одного сайта на другой.

Рассмотрим основные настройки для полей различных типов.

 Decimal — десятичное число. Для этого типа можно выбрать в качестве формы представления текстовое поле (Text field), выбор из списка (Select list), выбор среди возможных опций (Check boxes/radio buttons) или единичную опцию (Single on/off checkbox).

 На странице Configure (настроить) для этого типа данных доступны следующие настройки:

  •  ·    Label — наименование поля.
  •  ·    Widget type — формат представления поля. Содержание этого и предыдущего поля можно изменить, нажав на кнопку Change basic information (изменить основную информацию).

 Значения следующих полей используются только в том типе содержания, который редактируется.

  •  ·    Help text — вспомогательный текст.
  •  ·    Default value — значение, содержащееся в поле по умолчанию. Помимо непосредственного указания этого значения, можно вставить в поле PHP code (код PHP) код, возвращающий значение, которое должно использоваться в качестве значения по умолчанию.

 Значения следующих полей используются для всех типов содержания, в которых используется редактируемое поле.

  •  ·    Required — обязательно для заполнения.
  •  ·    Number of values — количество значений, которое пользователь может указать в поле. Если выбрано Unlimited (не ограничено), то при заполнении поля появляется кнопка Add more (добавить ещё), позволяющая добавлять любое количество значений.
  •  ·    Minimum — минимальное значение.
  •  ·    Maximum — максимальное значение.
  •  ·    Precision — точность. Общее количество знаков числа, сохраняемых в базе данных, в том числе и знаки справа от запятой.
  •  ·    Scale — количество знаков после запятой (от 0 до 2).
  •  ·    Decimal marker — знак, отделяющий целую часть от дробной. Может использоваться точка (decimal point), запятая (comma) или пробел (space).
  •  ·    Prefix — префикс. Строка, которая будет отображаться перед содержимым поля. Можно указать фразу как для единственного числа, так и для множественного, разделив их знаком “|”.
  •  ·    Suffix — суффикс. Строка, которая будет отображаться после содержимого поля. Как и для префикса, можно указать единственное и множественное число суффикса.

 ·    Allowed values list — перечень допустимых значений поля. Указываются по одному на строке в формате «ключ|наименование». Ключ сохраняется в базе данных и используется в качестве наименования, если наименование отдельно не указано. Ключ должен соответствовать типу поля, т.е. для десятичного поля должен быть десятичным. В поле допустимых значений можно использовать HTML-теги <a>, <b>, <big>, <code>, <del>, <em>, <i>, <ins>, <pre>, <q>, <small>, <span>, <strong>, <sub>, <sup>, <tt>, <ol>, <ul>, <li>, <p>, <br>, <img>. Также для заполнения перечня допустимых значений можно использовать PHP-код (PHP code). В случае Single on/off checkbox в качестве допустимых значений сначала указывается значение для случая «выключено», затем — для случая «включено». В качестве опции используется наименование значения для случая «включено». Например, если в качестве двух строк возможных значений использовать «1|выключено» и «2|включено», то в качестве возможного значения поля будет отображаться опция «включено», которой в базе данных будет соответствовать ключ «2».

 Float (действительное число) и Integer (целое число). Для этих типов так же можно выбрать в качестве формы представления текстовое поле (Text field), выбор из списка (Select list), выбор среди возможных опций (Check boxes/radio buttons) или единичную опцию (Single on/off checkbox).

 

На странице Configure (настроить) для этих типов данных доступны следующие настройки: Label (наименование поля), Widget type (формат представления поля), Help text (вспомогательный текст), Default value (значение по умолчанию), Required (обязательность для заполнения), Number of values (количество значений, которое пользователь может указать в поле), Minimum (минимальное значение), Maximum (максимальное значение), Prefix (префикс), Suffix (суффикс), Allowed values list (перечень допустимых значений поля).

 Node reference — ссылка на страницу сайта. Для этого типа можно выбрать в качестве формы представления выбор из списка (Select list), выбор среди возможных опций (Check boxes/radio buttons) или текстовое поле с автозавершением (Autocomplete text field).

 На странице Configure (настроить) для этого типа данных доступны следующие настройки: Label (наименование поля), Widget type (формат представления поля), Help text (вспомогательный текст), Default value (значение по умолчанию). Для формы представления в виде текстового поля с автозавершением (Autocomplete text field) можно указать настройки автозавершения (Autocomplete matching): в качестве подходящих для автозавершения строк могут предлагаться содержащие набранный текст (Contains) или начинающиеся набранным текстом (Starts with).

 К настройкам формы, распространяющимся на все типы содержания, использующие эту форму, относятся опция, требующая во включённом состоянии обязательного заполнения поля (Required), количество возможных значений (Number of values), типы содержания, ссылка на которые может содержаться в поле (Content types that can be referenced).

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

 User reference — ссылка на пользователя. Для этого типа можно выбрать, как и для Node reference, в качестве формы представления выбор из списка (Select list), выбор среди возможных опций (Check boxes/radio buttons) или текстовое поле с автозавершением (Autocomplete text field).

 На странице Configure (настроить) для этого типа данных доступны следующие настройки: Label (наименование поля), Widget type (формат представления поля), Help text (вспомогательный текст), Default value (значение по умолчанию). Также можно выбрать опцию Reverse link (обратная ссылка). В этом случае на странице пользователя, ссылка на которую содержится в поле, будет размещена обратная ссылка на страницу, содержащую эту форму. Для формы представления в виде текстового поля с автозавершением (Autocomplete text field) можно указать настройки автозавершения (Autocomplete matching): в качестве подходящих для автозавершения строк могут предлагаться содержащие набранный текст (Contains) или начинающиеся набранным текстом (Starts with).

 К настройкам формы, распространяющимся на все типы содержания, использующие эту форму, относятся опция, требующая во включённом состоянии обязательного заполнения поля (Required), количество возможных значений (Number of values), роли пользователей, ссылка на которых может содержаться в поле (User roles that can be referenced), статус пользователей, ссылка на которых может содержаться в поле (User status that can be referenced).

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

 Text — текст. Для этого типа можно выбрать в качестве формы представления выбор из списка (Select list), выбор одной или нескольких опций (Check boxes/radio buttons), единичную опцию (Single on/off checkbox), текстовое поле (Text field) или текстовую область (Text area (multiple rows)).

 На странице Configure (настроить) для этого типа данных доступны следующие настройки: Label (наименование поля), Widget type (формат представления поля), Help text (вспомогательный текст), Default value (значение по умолчанию). Для текстового поля (Text field) указывается его размер (Size of textfield). Для текстовой области (Text area) указывается количество строк области (Rows).

 К настройкам формы, распространяющимся на все типы содержания, использующие эту форму, относятся опция, требующая во включённом состоянии обязательного заполнения поля (Required), количество возможных значений (Number of values), способ обработки набираемого текста (Text processing), максимальная длина текста (Maximum length), допустимые значения (Allowed values). В качестве способа обработки набираемого текста (Text processing) можно выбрать отсутствие фильтрации (Plain text) или применение выбираемого пользователем из существующих фильтра (Filtered text (user selects input format)).