summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorSteven Wittens <steven@10.no-reply.drupal.org>2005-10-13 10:02:31 +0000
committerSteven Wittens <steven@10.no-reply.drupal.org>2005-10-13 10:02:31 +0000
commit5f0e0f364964b46bbaea3390acfe3628d32b0c07 (patch)
tree39855c482ea397e0100eae517242e45a9074ef53 /modules
parent0953282878086c8c513344baa8f4daea66f19fd4 (diff)
downloadbrdo-5f0e0f364964b46bbaea3390acfe3628d32b0c07.tar.gz
brdo-5f0e0f364964b46bbaea3390acfe3628d32b0c07.tar.bz2
- #33433: More form API fixes, and error handling improvements by Chx.
Diffstat (limited to 'modules')
-rw-r--r--modules/locale.module4
-rw-r--r--modules/locale/locale.module4
-rw-r--r--modules/node.module1
-rw-r--r--modules/node/node.module1
-rw-r--r--modules/profile.module2
-rw-r--r--modules/profile/profile.module2
-rw-r--r--modules/system.module15
-rw-r--r--modules/system/system.module15
-rw-r--r--modules/user.module4
-rw-r--r--modules/user/user.module4
10 files changed, 34 insertions, 18 deletions
diff --git a/modules/locale.module b/modules/locale.module
index c41be7a3c..be458bd15 100644
--- a/modules/locale.module
+++ b/modules/locale.module
@@ -108,7 +108,9 @@ function locale_user($type, $edit, &$user, $category = NULL) {
$user->language = key($languages['name']);
}
$languages['name'] = array_map('check_plain', $languages['name']);
- return array(array('title' => t('Interface language settings'), 'data' => $form['locale_user'] = array('#type' => 'radios', '#title' => t('Language'), '#default_value' => $user->language, '#options' => $languages['name'], '#description' => t('Selecting a different locale will change the interface language of the site.'))));
+ $form['locale'] = array('#title' => t('Interface language settings'), '#type' => 'fieldset', '#weight' => 1);
+ $form['locale']['language'] = array('#type' => 'radios', '#title' => t('Language'), '#default_value' => $user->language, '#options' => $languages['name'], '#description' => t('Selecting a different locale will change the interface language of the site.'));
+ return $form;
}
}
diff --git a/modules/locale/locale.module b/modules/locale/locale.module
index c41be7a3c..be458bd15 100644
--- a/modules/locale/locale.module
+++ b/modules/locale/locale.module
@@ -108,7 +108,9 @@ function locale_user($type, $edit, &$user, $category = NULL) {
$user->language = key($languages['name']);
}
$languages['name'] = array_map('check_plain', $languages['name']);
- return array(array('title' => t('Interface language settings'), 'data' => $form['locale_user'] = array('#type' => 'radios', '#title' => t('Language'), '#default_value' => $user->language, '#options' => $languages['name'], '#description' => t('Selecting a different locale will change the interface language of the site.'))));
+ $form['locale'] = array('#title' => t('Interface language settings'), '#type' => 'fieldset', '#weight' => 1);
+ $form['locale']['language'] = array('#type' => 'radios', '#title' => t('Language'), '#default_value' => $user->language, '#options' => $languages['name'], '#description' => t('Selecting a different locale will change the interface language of the site.'));
+ return $form;
}
}
diff --git a/modules/node.module b/modules/node.module
index 611389ea1..da0f2d9e1 100644
--- a/modules/node.module
+++ b/modules/node.module
@@ -1083,6 +1083,7 @@ function node_types_configure($type = NULL) {
$form['workflow'] = array('#type' => 'fieldset', '#title' =>t('Workflow'));
$form['workflow'] = array_merge($form['workflow'], node_invoke_nodeapi($node, 'settings'));
+ $form['array_filter'] = array('#type' => 'value', '#value' => TRUE);
return system_settings_form($type . '_node_settings', $form);
}
else {
diff --git a/modules/node/node.module b/modules/node/node.module
index 611389ea1..da0f2d9e1 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -1083,6 +1083,7 @@ function node_types_configure($type = NULL) {
$form['workflow'] = array('#type' => 'fieldset', '#title' =>t('Workflow'));
$form['workflow'] = array_merge($form['workflow'], node_invoke_nodeapi($node, 'settings'));
+ $form['array_filter'] = array('#type' => 'value', '#value' => TRUE);
return system_settings_form($type . '_node_settings', $form);
}
else {
diff --git a/modules/profile.module b/modules/profile.module
index c49a414b7..993d70f56 100644
--- a/modules/profile.module
+++ b/modules/profile.module
@@ -298,7 +298,7 @@ function profile_view_profile($user) {
$description = ($field->visibility == PROFILE_PRIVATE) ? t('The content of this field is private and only visible to yourself.') : '';
$title = ($field->type != 'checkbox') ? check_plain($field->title) : '';
$form = array('#type' => 'item', '#title' => $title, '#value' => $value, '#description' => $description);
- $fields[$field->category][$field->name] = form_render(_form_builder($form));
+ $fields[$field->category][$field->name] = drupal_get_form('profile_view_profile_' . $field->category .'_'. $field->name, $form, 'profile_view_profile');
}
}
diff --git a/modules/profile/profile.module b/modules/profile/profile.module
index c49a414b7..993d70f56 100644
--- a/modules/profile/profile.module
+++ b/modules/profile/profile.module
@@ -298,7 +298,7 @@ function profile_view_profile($user) {
$description = ($field->visibility == PROFILE_PRIVATE) ? t('The content of this field is private and only visible to yourself.') : '';
$title = ($field->type != 'checkbox') ? check_plain($field->title) : '';
$form = array('#type' => 'item', '#title' => $title, '#value' => $value, '#description' => $description);
- $fields[$field->category][$field->name] = form_render(_form_builder($form));
+ $fields[$field->category][$field->name] = drupal_get_form('profile_view_profile_' . $field->category .'_'. $field->name, $form, 'profile_view_profile');
}
}
diff --git a/modules/system.module b/modules/system.module
index d134a818b..8fd77e98f 100644
--- a/modules/system.module
+++ b/modules/system.module
@@ -188,7 +188,7 @@ function system_user($type, $edit, &$user, $category = NULL) {
$form['locale'] = array('#type'=>'item', '#title' => t('Locale settings'), '#weight' => 6);
$form['locale']['timezone'] = array(
'#type' => 'select', '#title' => t('Time zone'), '#default_value' => strlen($edit['timezone']) ? $edit['timezone'] : variable_get('date_default_timezone', 0),
- '#options' => $zones, descriptions => t('Select your current local time. Dates and times throughout this site will be displayed using this time zone.')
+ '#options' => $zones, '#description' => t('Select your current local time. Dates and times throughout this site will be displayed using this time zone.')
);
}
return $form;
@@ -684,7 +684,9 @@ function system_settings_form($form_id, $form) {
/**
* Execute the system_settings_form.
*
- * Due to specific handling of checkboxes, this function does not handle 'tree' based forms.
+ * If you want node type configure style handling of your checkboxes,
+ * add an array_filter value to your form.
+ *
*/
function system_settings_form_execute($form_id, $values) {
$op = isset($_POST['op']) ? $_POST['op'] : '';
@@ -694,7 +696,7 @@ function system_settings_form_execute($form_id, $values) {
variable_del($key);
}
else {
- if (is_array($value)) {
+ if (is_array($value) && isset($values['array_filter'])) {
$value = array_keys(array_filter($value));
}
variable_set($key, $value);
@@ -1057,11 +1059,14 @@ function system_theme_settings($key = '') {
$disabled['toggle_search'] = true;
}
- $form['toggles'] = array('#type' => 'fieldset', '#title' => t('Toggle display'), '#description' => t('Enable or disable the display of certain page elements.'));
+ $form['theme_settings'] = array('#type' => 'fieldset', '#title' => t('Toggle display'), '#description' => t('Enable or disable the display of certain page elements.'), '#tree' => TRUE);
foreach ($toggles as $name => $title) {
if ((!$key) || in_array($name, $features)) {
// disable search box if search.module is disabled
- $form['toggles'][$name] = array('#type' => 'checkbox', '#title' => $title, '#default_value' => $settings[$name], '#attributes' => isset($disabled[$name]) ? array('disabled' => 'disabled') : NULL);
+ $form['theme_settings'][$name] = array('#type' => 'checkbox', '#title' => $title, '#default_value' => $settings[$name]);
+ if (isset($disabled[$name])) {
+ $form['theme_settings'][$name]['#attributes'] = array('disabled' => 'disabled');
+ }
}
}
diff --git a/modules/system/system.module b/modules/system/system.module
index d134a818b..8fd77e98f 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -188,7 +188,7 @@ function system_user($type, $edit, &$user, $category = NULL) {
$form['locale'] = array('#type'=>'item', '#title' => t('Locale settings'), '#weight' => 6);
$form['locale']['timezone'] = array(
'#type' => 'select', '#title' => t('Time zone'), '#default_value' => strlen($edit['timezone']) ? $edit['timezone'] : variable_get('date_default_timezone', 0),
- '#options' => $zones, descriptions => t('Select your current local time. Dates and times throughout this site will be displayed using this time zone.')
+ '#options' => $zones, '#description' => t('Select your current local time. Dates and times throughout this site will be displayed using this time zone.')
);
}
return $form;
@@ -684,7 +684,9 @@ function system_settings_form($form_id, $form) {
/**
* Execute the system_settings_form.
*
- * Due to specific handling of checkboxes, this function does not handle 'tree' based forms.
+ * If you want node type configure style handling of your checkboxes,
+ * add an array_filter value to your form.
+ *
*/
function system_settings_form_execute($form_id, $values) {
$op = isset($_POST['op']) ? $_POST['op'] : '';
@@ -694,7 +696,7 @@ function system_settings_form_execute($form_id, $values) {
variable_del($key);
}
else {
- if (is_array($value)) {
+ if (is_array($value) && isset($values['array_filter'])) {
$value = array_keys(array_filter($value));
}
variable_set($key, $value);
@@ -1057,11 +1059,14 @@ function system_theme_settings($key = '') {
$disabled['toggle_search'] = true;
}
- $form['toggles'] = array('#type' => 'fieldset', '#title' => t('Toggle display'), '#description' => t('Enable or disable the display of certain page elements.'));
+ $form['theme_settings'] = array('#type' => 'fieldset', '#title' => t('Toggle display'), '#description' => t('Enable or disable the display of certain page elements.'), '#tree' => TRUE);
foreach ($toggles as $name => $title) {
if ((!$key) || in_array($name, $features)) {
// disable search box if search.module is disabled
- $form['toggles'][$name] = array('#type' => 'checkbox', '#title' => $title, '#default_value' => $settings[$name], '#attributes' => isset($disabled[$name]) ? array('disabled' => 'disabled') : NULL);
+ $form['theme_settings'][$name] = array('#type' => 'checkbox', '#title' => $title, '#default_value' => $settings[$name]);
+ if (isset($disabled[$name])) {
+ $form['theme_settings'][$name]['#attributes'] = array('disabled' => 'disabled');
+ }
}
}
diff --git a/modules/user.module b/modules/user.module
index 6de46309a..a68b0f471 100644
--- a/modules/user.module
+++ b/modules/user.module
@@ -476,7 +476,7 @@ function user_user($type, &$edit, &$user, $category = NULL) {
}
if ($type == 'validate' && $category == 'account') {
- return user_edit_validate(arg(1), $edit);
+ return _user_edit_validate(arg(1), $edit);
}
if ($type == 'categories') {
@@ -1172,7 +1172,7 @@ function user_edit_form($uid, $edit) {
return $form;
}
-function user_edit_validate($uid, &$edit) {
+function _user_edit_validate($uid, &$edit) {
// Validate the username:
if ($error = user_validate_name($edit['name'])) {
form_set_error('name', $error);
diff --git a/modules/user/user.module b/modules/user/user.module
index 6de46309a..a68b0f471 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -476,7 +476,7 @@ function user_user($type, &$edit, &$user, $category = NULL) {
}
if ($type == 'validate' && $category == 'account') {
- return user_edit_validate(arg(1), $edit);
+ return _user_edit_validate(arg(1), $edit);
}
if ($type == 'categories') {
@@ -1172,7 +1172,7 @@ function user_edit_form($uid, $edit) {
return $form;
}
-function user_edit_validate($uid, &$edit) {
+function _user_edit_validate($uid, &$edit) {
// Validate the username:
if ($error = user_validate_name($edit['name'])) {
form_set_error('name', $error);