3

私は drupal のドキュメントとフォーラムに目を通していますが、どれも少し気が遠くなるようなものです。管理セクションの [サイト情報] ページにフィールドを追加するための単純または簡単な方法を誰かが持っている場合は、本当に感謝します。

背景として、ユーザーがカスタマイズ可能なフィールドをサイト全体のフィールド/値に追加しようとしています。

4

3 に答える 3

7

カスタムモジュールでは、を使用hook_form_alter()してそのフォームにフィールドを追加できます。例えば:

function mymodule_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'system_site_information_settings') {
    $form['my_module_extra_setting'] = array(
      '#type' => 'checkbox',
      '#title' => t('Use my setting'),
      '#default_value' => variable_get('my_module_extra_setting', TRUE),
    );
  }
}

保存された設定自体にアクセスする必要があるコードのどこでも、そのフォーム要素のデフォルト値を設定するために使用されるのと同じ呼び出しを使用できます。variable_get('my_module_extra_setting', TRUE)

于 2009-06-12T00:13:01.233 に答える
2

In order to save the value from your new custom field you will need to add a second submit item to the submit array eg:

$form['#submit'][] = 'misc_system_settings_form_submit';

and then add a function to handle the submission, eg:

function misc_system_settings_form_submit($form_id, $form_values) {
    // Handle saving of custom data here
    variable_set('access_denied_message', $form_values['values']['custom_access_denied_message']);
}
于 2012-01-12T16:24:21.690 に答える
1

関数はmymodule_hook_form_alterではなくmymodule_form_alterにする必要があります

于 2010-09-09T08:38:12.763 に答える