Значение по умолчанию для переменной drupal
У меня есть фрагмент кода, в котором я хочу, чтобы значение по умолчанию было переменной, но мне нужно знать, как установить значение по умолчанию, если переменная не установлена:
$form['background_audio_height'] = array(
'#type' => 'textfield',
'#title' => t('Subject'),
'#default_value' => variable_get('background_audio_upload_path'),
'#size' => 5,
'#maxlength' => 3,
'#required' => TRUE,
);
Как я могу установить значение по умолчанию, если background_audio_upload_path не задан?
3 answers
Вы можете передать вторую переменную в функцию variable_get(), которая является значением по умолчанию.
Пример:
variable_get('background_audio_upload_path', 'path/to/foo.bar');
Если вы выполняете много операций с переменными, рассмотрите возможность использования модуля Переменная.
После настройки это значительно сэкономит ваше время. Одна из проблем, которую он исправит для вас, - это значение переменной по умолчанию, которое вам нужно будет изменить только в одном месте, вместо того, чтобы просматривать весь код. Он также бесплатно предоставит вам форму конфигурации для ваших переменных.
<?php
function my_module_menu() {
$menu['my_form_page/%'] = array
(
'title' => 'My Form',
'page callback' => 'my_form_page',
'page arguments' => array(1),
'access callback' => TRUE,
);
return $menu;
}
function my_module_load_data($item_id) {
return db_query('SELECT value1 FROM {some_table} WHERE item_id = :item_id', array(':item_id' => $item_id))->fetchObject();
}
function my_form_page($item_id) {
$my_object = my_module_load_data($item_id);
return drupal_get_form('my_form', $my_object);
}
function my_form($form, &$form_state, $my_object) {
$form['element1'] = array(
'#type' => 'textfield',
'#title' => t('Item 1'),
'#default_value' => $my_object->value1,
);
return $form;
}