Значение по умолчанию для переменной 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 не задан?

Author: kiamlaluno, 2012-03-09

3 answers

Вы можете передать вторую переменную в функцию variable_get(), которая является значением по умолчанию.

Пример:

variable_get('background_audio_upload_path', 'path/to/foo.bar');
 7
Author: sheena_d, 2012-03-09 00:26:53

Если вы выполняете много операций с переменными, рассмотрите возможность использования модуля Переменная.

После настройки это значительно сэкономит ваше время. Одна из проблем, которую он исправит для вас, - это значение переменной по умолчанию, которое вам нужно будет изменить только в одном месте, вместо того, чтобы просматривать весь код. Он также бесплатно предоставит вам форму конфигурации для ваших переменных.

 0
Author: shumushin, 2013-05-14 13:12:37
<?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;
}
 0
Author: Sam Sterlin S, 2013-05-14 13:17:46