--- Sites/drupal/sites/all/modules/filter_default/filter_default.module 2007-09-12 15:58:16.000000000 -0500 +++ sites/drupal6/sites/all/modules/filter_default/filter_default.module 2008-04-25 17:18:29.000000000 -0500 @@ -1,19 +1,18 @@ 'admin/settings/filters/default', - 'title' => t('Defaults'), - 'callback' => 'drupal_get_form', - 'callback arguments' => 'filter_default_admin_defaults_form', - 'type' => MENU_LOCAL_TASK, - 'weight' => 0.5, - 'access' => user_access('administer filters'), - ); - } + + $items['admin/settings/filters/default'] = array( + 'title' => 'Defaults', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('filter_default_admin_defaults_form'), + 'type' => MENU_LOCAL_TASK, + 'weight' => 0.5, + 'access arguments' => array('administer filters'), + ); + return $items; } @@ -31,25 +30,33 @@ function filter_default_admin_defaults_f array('%list_link' => l('list tab', 'admin/filters')))); for ($i = 1; $i < count($roles); $i++) { - list($def_role, $def_format) = variable_get('filter_default_'.$i, + list($def_role, $def_format) = variable_get('filter_default_'. $i, array()); - $form['role_'.$i] = array( + $form['role_'. $i] = array( '#type' => 'select', '#options' => $roles, '#default_value' => $def_role); - $form['format_'.$i] = array( + $form['format_'. $i] = array( '#type' => 'select', '#options' => $format_list, '#default_value' => $def_format); } $form['submit'] = array( - '#type' => 'submit', + '#type' => 'submit', '#value' => t('Save default roles')); return $form; } +function filter_default_theme() { + return array( + 'filter_default_admin_defaults_form' => array( + 'arguments' => array('form'), + ), + ); +} + function theme_filter_default_admin_defaults_form($form) { $roles = user_roles(); @@ -59,8 +66,8 @@ function theme_filter_default_admin_defa for ($i = 1; $i < count($roles)+1; $i++) { $row = array(); $row[] = $i; - $row[] = drupal_render($form['role_'.$i]); - $row[] = drupal_render($form['format_'.$i]); + $row[] = drupal_render($form['role_'. $i]); + $row[] = drupal_render($form['format_'. $i]); $rows[] = $row; } @@ -70,45 +77,47 @@ function theme_filter_default_admin_defa return $output; } -function filter_default_admin_defaults_form_validate($form_id, $form) { +function filter_default_admin_defaults_form_validate($form, &$form_state) { $roles = user_roles(); $formats = filter_formats(); for ($i = 1; $i < count($roles)+1; $i++) { - if ($form['role_'.$i] > 0 && - (strpos($formats[$form['format_'.$i]]->roles, - ','.$roles[$form['role_'.$i]].',') === FALSE && - strpos($formats[$form['format_'.$i]]->roles, - ','.$form['role_'.$i].',') === FALSE)) { - form_set_error('format_'.$i, + if ($form_state['values']['role_'. $i] > 0 && + (strpos($formats[$form_state['values']['format_'. $i]]->roles, + ','. $roles[$form_state['values']['role_'. $i]] .',') === FALSE && + strpos($formats[$form_state['values']['format_'. $i]]->roles, + ','. $form_state['values']['role_'. $i] .',') === FALSE)) { + form_set_error('format_'. $i, t('Role %role is not allowed to use format %format.', - array('%role' => $roles[$form['role_'.$i]], - '%format' => $formats[$form['format_'.$i]]->name))); + array('%role' => $roles[$form_state['values']['role_'. $i]], + '%format' => $formats[$form_state['values']['format_'. $i]]->name))); } } } -function filter_default_admin_defaults_form_submit($form_id, $form) { +function filter_default_admin_defaults_form_submit($form, &$form_state) { $roles = user_roles(); for ($i = 1; $i < count($roles)+1; $i++) { - if ($form['role_'.$i] > 0) { - variable_set('filter_default_'.$i, - array($form['role_'.$i], $form['format_'.$i])); - } else { - variable_del('filter_default_'.$i); + if ($form_state['values']['role_'. $i] > 0) { + variable_set('filter_default_'. $i, + array($form_state['values']['role_'. $i], $form_state['values']['format_'. $i])); + } + else { + variable_del('filter_default_'. $i); } } } -function _filter_default_form_alter_filters($format_new, &$form) { - if (isset($form['#validate']) && is_array($form['#validate']) && - array_key_exists('filter_form_validate', $form['#validate'])) { +function _filter_default_form_alter_filters($format_new, &$form, &$form_state) { + if (isset($form['#element_validate']) && is_array($form['#element_validate']) && + array_search('filter_form_validate', $form['#element_validate']) !== FALSE) { foreach (element_children($form) as $el) { + // Until admin/settings/filters is submitted, // filter_default_format is not set. Assume Filtered HTML. $default = variable_get('filter_default_format', 1); - if ($form[$el]['#type'] == 'radio' && + if ($form[$el]['#type'] == 'radio' && $form[$el]['#default_value'] == $default) { $form[$el]['#default_value'] = $format_new; } @@ -116,7 +125,7 @@ function _filter_default_form_alter_filt } if (is_array($form)) { foreach (element_children($form) as $el) { - _filter_default_form_alter_filters($format_new, $form[$el]); + _filter_default_form_alter_filters($format_new, $form[$el], $form_state); } } } @@ -135,14 +144,14 @@ function _filter_default_is_new($form_id return FALSE; } -function filter_default_form_alter($form_id, &$form) { +function filter_default_form_alter(&$form, &$form_state, $form_id) { if (_filter_default_is_new($form_id, $form)) { global $user; $roles = user_roles(); for ($i = 1; $i < count($roles)+1; $i++) { - list($role, $format) = variable_get('filter_default_'.$i, array()); + list($role, $format) = variable_get('filter_default_'. $i, array()); if (array_key_exists($role, $user->roles)) { - _filter_default_form_alter_filters($format, $form); + _filter_default_form_alter_filters($format, $form, $form_state); break; } }