Настройки и приятный интерфейс администратора в Drupal - PullRequest
0 голосов
/ 22 сентября 2010

Я создал пользовательский модуль Drupal и теперь хочу сохранить для него некоторые настройки.По сути, это 3 массива строк, которые должны быть сохранены и также легко отредактированы (административным) пользователем.

Каков наилучший способ сделать это в Drupal?Я читал о variable_set и variable_get, они подходят для хранения данных, специфичных для модуля, как это?

Есть ли способ легко создать форму администратора для редактирования этих переменных, или у меня естьнаписать что с нуля?

Ответы [ 2 ]

1 голос
/ 22 сентября 2010

Если вы хотите сделать это быстро, используйте variable_get / set и system_settings_form () .

0 голосов
/ 22 сентября 2010

Нужно больше места, чем комментарий.У @yorirou правильный ответ.Однако для сохранения / извлечения массива строк, каждая из которых введена различными виджетами, у вас есть простой путь:

Обернуть все в наборе полей свойством #tree.Все поля в этом наборе полей будут складываться в массив, структурированный на основе имени набора полей для имени переменной и отдельных имен полей для значения ключа.Сериализация массива автоматически обрабатывается в variable_get / set.

$form['custom_settings'] = array(
  '#title' => t('My settings'),
  '#type' => 'fieldset',
  '#tree' => TRUE,
);
$form['custom_settings']['first_setting'] = array(
  '#type' => 'textfield',
  // etcetera
);
$form['custom_settings']['second_setting'] = array(
  '#type' => 'textfield',
  // etcetera
);

При выводе сохраненного массива вы получите что-то вроде этого:

custom_settings = Array(
  'first_setting' => 'some string',
  'second_setting' => 'some other string',
)

Вы можете получить такой же эффект с помощьюОбработчик #validate или использование элемента #parents в массивах форм, но это потребует дополнительной работы для изменения значения по умолчанию.

...