ertttert
Books-CMS.clan.su

Хранение параметров

В приведенном ниже разделе выполняется изменение значений и щелчок на кнопке Save configuration (Сохранить конфигурацию).

Использование таблицы variables

Вначале рассмотрим поле Annotations per node (Аннотаций на ноду). В его ключ #default_value заносится значение variable_get('annotate_limit_per_node', 1). В базе данных Drupal имеется таблица variables; пары “ключ/значение” могут сохраняться в ней с помощью функции variable_set($key, $value), а выбираться — с помощью функции variable_get($key, $default). Так что вызов из предыдущего абзаца означает: “Установить для поля Annotations per node в качестве стандартного значение переменной annotate_limit_per_node, хранящееся в таблице базы данных variables, а если никакого значения не найдено, использовать 1”.

Внимание! Чтобы сохранять и выбирать параметры из таблицы variables без возникновения конфликтов пространств имен, всегда назначайте одинаковые имена элементу формы и ключу переменной (в предыдущем примере это annotate_limit_per_node). Имена элемента формы и ключа переменной должны образовываться из имени модуля с добавлением описательного имени.

Поле Annotations will be deleted (Аннотации будут удалены) несколько сложнее, т.к. оно представляет собой переключатель. Параметр #options для него выглядит так:

'#options' => array(
t('Never'), // Никогда
t('Randomly'), // Случайным образом
t('After 30 days') // Спустя 30 дней
)

Если передать PHP массив без ключей, ему неявно присваиваются числовые ключи, так что внутреннее представление массива будет выглядеть следующим образом:

'#options' => array(
 [0] => t('Never'), // Никогда
 [1] => t('Randomly'), // Случайным образом
 [2] => t('After 30 days') // Спустя 30 дней
 )

Указание стандартного значения для этого поля выполняется так:

'#default_value' => variable_get('annotate_deletion', 0)
// По умолчанию — Never

что означает выбор по умолчанию элемента 0 в массиве, т.е. t('Never').

Извлечение сохраненных значений с помощью функции variable_get()

Для извлечения сохраненных параметров должна использоваться функция variable_get():

// Извлечение сохраненного параметра — максимального количества аннотаций в ноде.
$max = variable_get('annotate_limit_per_node', 1);

Обратите внимание, что для variable_get() также применяется значение по умолчанию — на тот случай, если сохраненного значения нет (возможно, администратор еще не заходил на страницу настроек).

Дальнейшие шаги

Естественно, мы поделимся нашим модулем с сообществом пользователей открытого исходного кода. Поэтому необходимо создать файл README.txt и сохранить его в каталоге аннотирования вместе с файлами annotate.info, annotate.module и annotate.install. Файл README.txt обычно содержит информацию о том, кто написал данный модуль и как его устанавливать. Информация о лицензировании не требуется, т.к. для всех модулей, загруженных на сайт drupal.org, подразумевается лицензия GPL, и упаковочный сценарий на drupal.org автоматически добавляет файл LICENSE.txt. После этого его можно загрузить в хранилище дополнительных файлов на drupal.org и создать страницу проекта для отслеживания отзывов от других членов сообщества.

Всего комментариев: 0
Имя *:
Email *:
Код *:


Бесплатный конструктор сайтов - uCoz