Index: README.txt =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/filter_default/README.txt,v retrieving revision 1.2 diff -u -r1.2 README.txt --- README.txt 12 Sep 2007 20:54:11 -0000 1.2 +++ README.txt 26 Aug 2008 02:33:26 -0000 @@ -1,10 +1,6 @@ Filter Default module $Id: README.txt,v 1.2 2007/09/12 20:54:11 bjaspan Exp $ -PREREQUISITES - -- Drupal 4.7 or 5. - INSTALLATION Install and activate the Filter Default like every other Drupal Index: filter_default.info =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/filter_default/filter_default.info,v retrieving revision 1.1 diff -u -r1.1 filter_default.info --- filter_default.info 12 Sep 2007 20:40:39 -0000 1.1 +++ filter_default.info 26 Aug 2008 02:33:26 -0000 @@ -1,3 +1,4 @@ ; $Id: filter_default.info,v 1.1 2007/09/12 20:40:39 bjaspan Exp $ name = Filter Default description = Allows each role to have a default input format for nodes and comments. +core = 6.x \ No newline at end of file Index: filter_default.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/filter_default/filter_default.module,v retrieving revision 1.7 diff -u -r1.7 filter_default.module --- filter_default.module 24 Aug 2008 07:20:09 -0000 1.7 +++ filter_default.module 26 Aug 2008 02:33:26 -0000 @@ -4,19 +4,16 @@ /** * Implementation of hook_menu() */ -function filter_default_menu($may_cache) { +function filter_default_menu() { $items = array(); - if ($may_cache) { - $items[] = array( - 'path' => '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' => 5, + 'access arguments' => array('administer filters'), + ); return $items; } @@ -53,6 +50,14 @@ 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(); @@ -73,46 +78,47 @@ 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)) { + 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) { + if ($form_state['values']['role_'. $i] > 0) { variable_set('filter_default_'. $i, - array($form['role_'. $i], $form['format_'. $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; } @@ -120,7 +126,7 @@ } 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); } } } @@ -144,14 +150,14 @@ /** * Implementation of hook_form_alter() */ -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()); if (array_key_exists($role, $user->roles)) { - _filter_default_form_alter_filters($format, $form); + _filter_default_form_alter_filters($format, $form, $form_state); break; } }