Index: default_filter.info =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/default_filter/default_filter.info,v retrieving revision 1.1 diff -u -p -r1.1 default_filter.info --- default_filter.info 3 Aug 2007 17:19:18 -0000 1.1 +++ default_filter.info 18 Feb 2008 21:31:24 -0000 @@ -1,3 +1,4 @@ name = Default Filter description = "Allows administrators to set default input format per role." package = Administration +core = 6.x \ No newline at end of file Index: default_filter.install =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/default_filter/default_filter.install,v retrieving revision 1.4 diff -u -p -r1.4 default_filter.install --- default_filter.install 31 Aug 2007 20:01:01 -0000 1.4 +++ default_filter.install 18 Feb 2008 21:31:24 -0000 @@ -1,36 +1,50 @@ array( + 'id' => array( + 'type' => 'serial', + 'unsigned' => TRUE, + 'not null' => TRUE, + ), + 'role_id' => array( + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + ), + 'format_id' => array( + 'type' => 'int', + 'size' => 'medium', + 'unsigned' => TRUE, + 'not null' => TRUE, + ), + 'node_type' => array( + 'type' => 'varchar', + 'length' => 30, + 'not null' => TRUE, + ), + 'weight' => array( + 'type' => 'int', + 'size' => 'medium', + 'default' => 0, + 'unsigned' => FALSE, + 'not null' => TRUE, + ), + ), + 'primary key' => array('id'), + ); + + return $schema; +} + function default_filter_install() { - switch ($GLOBALS['db_type']) { - case 'mysql': - case 'mysqli': - db_query(' - CREATE TABLE {default_filters}( - id int(10) unsigned not null primary key auto_increment, - role_id int(10), - format_id int(4), - node_type varchar(30), - weight int(3) default 0 - ); - '); - break; - case 'pgsql': - db_query(' - CREATE TABLE {default_filters}( - id serial, - role_id integer, - format_id integer, - node_type varchar(30), - weight integer default 0, - PRIMARY KEY(id) - ); - '); - break; - } + drupal_install_schema('default_filter'); } function default_filter_uninstall(){ - db_query('DROP TABLE {default_filters}'); + drupal_uninstall_schema('default_filter'); } - -?> Index: default_filter.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/default_filter/default_filter.module,v retrieving revision 1.9 diff -u -p -r1.9 default_filter.module --- default_filter.module 3 Sep 2007 01:21:34 -0000 1.9 +++ default_filter.module 18 Feb 2008 21:31:24 -0000 @@ -4,10 +4,10 @@ /** * Implementation of hook_help(). */ -function default_filter_help($section='') { +function default_filter_help($path, $arg) { $output = ''; - switch ($section) { + switch ($path) { case "admin/help/default_filter": case "admin/settings/default_filter": $output = '

' . t('This module allows you to set default filter formats per node type per role, preventing users from having to tick a checkbox every time they add a new node. This is useful for sites that set the global default to a less rich format to prevent anonymous users from using (for example) full HTML.') . '

'; @@ -21,6 +21,7 @@ function default_filter_help($section='' } return $output; } + /** * Implementation of hook_perm(). */ @@ -86,6 +87,8 @@ function default_filter_admin(){ '#description' => t('Because people can belong to multiple roles, you may need to set a weight to assure that a given format for a given role for a given node type is set as the default before others are evaluated. The topmost grouping will be used. Negative weights rise to the top.'), ); + $form['#submit'] = array('default_filter_admin_submit'); + $output = system_settings_form($form); $headers = array(t('Role'), t('Format'), t('Node Type'), t('Weight'), t('Delete')); @@ -117,34 +120,40 @@ function default_filter_admin(){ /** * Implementation of hook_menu(). */ -function default_filter_menu($may_cache){ - $items[] = array( - 'path' => 'admin/settings/default_filter', - 'title' => t('Default Filter Settings'), - 'callback' => 'drupal_get_form', - 'callback arguments' => 'default_filter_admin', - 'access' => user_access('administer default filters'), - 'description' => t('Specify default filter formats by role.'), +function default_filter_menu(){ + $items['admin/settings/default_filter'] = array( + 'title' => 'Default Filter Settings', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('default_filter_admin'), + 'access arguments' => array('administer default filters'), + 'description' => 'Specify default filter formats by role.', 'type' => MENU_NORMAL_ITEM, ); - if(arg(4)){ - $items[] = array( - 'path' => 'admin/settings/default_filter/delete/' . arg(4), - 'title' => t('Delete Default Filter Association'), - 'callback' => 'drupal_get_form', - 'callback arguments' => array('default_filter_delete', intval(arg(4))), - 'access' => user_access('administer default filters'), - 'type' => MENU_NORMAL_ITEM, - ); - } + + $items['admin/settings/default_filter/delete/%default_filter'] = array( + 'title' => 'Delete Default Filter Association', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('default_filter_delete', 4), + 'access arguments' => array('administer default filters'), + 'type' => MENU_CALLBACK, + ); return $items; } +function default_filter_load($id) { + if (!is_numeric($id)) { + return FALSE; + } + else { + return db_fetch_object(db_query('SELECT * FROM {default_filters} WHERE id = %d', $id)); + } +} + /** * Delete submit */ -function default_filter_delete_submit(){ - if($_POST['id'] && $id = intval($_POST['id'])){ +function default_filter_delete_submit($form, &$form_state){ + if($form_state['values']['id'] && $id = intval($form_state['values']['id'])){ db_query('DELETE FROM {default_filters} WHERE id = %d', $id); drupal_set_message(t('Filter association deleted.')); } @@ -157,12 +166,13 @@ function default_filter_delete_submit(){ /** * Delete form. */ -function default_filter_delete($id){ +function default_filter_delete($form_state, $filter){ global $base_url; + $form = array(); $form['id'] = array( '#type' => 'hidden', - '#value' => $id, + '#value' => $filter->id, ); $form['warning'] = array( '#type' => 'item', @@ -187,8 +197,9 @@ function default_filter_delete($id){ * is equal to #return_value, so we set #value to the format value * to make the two line up. */ -function default_filter_form_alter($form_id, &$form){ - if($form['#id'] == 'node-form' && array_key_exists('body_filter', $form)){ +function default_filter_form_alter(&$form, &$form_state, $form_id) { + if($form['#id'] == 'node-form' && array_key_exists('format', $form['body_field'])){ + //print_r($form); $form['default_filter_passed_form'] = array( '#type' => 'value', '#value' => 1, @@ -201,28 +212,28 @@ function default_filter_form_alter($form //formats, but others' installs used "format". This block looks for each. I've //also added below an if statement to confirm that whichever one gets set exists. $format_key = 'this is not a valid key'; - if(array_key_exists('filter', $form['body_filter'])){ + if(array_key_exists('filter', $form['body_field'])){ $format_key = 'filter'; } - if(array_key_exists('format', $form['body_filter'])){ + if(array_key_exists('format', $form['body_field'])){ $format_key = 'format'; } - if(array_key_exists($format_key, $form['body_filter']) && $format && !isset($form['nid']['#value'])){ + if(array_key_exists($format_key, $form['body_field']) && $format && !isset($form['nid']['#value'])){ //Unset any pre-selected filter. If multiples are checked, Gecko //browsers seem to take the last selected but IE takes the first selected. - foreach($form['body_filter'][$format_key] as $key => $val){ + foreach($form['body_field'][$format_key] as $key => $val){ if (is_numeric($key)) { - if (isset($form['body_filter'][$format_key][$key]['#value'])) { - unset($form['body_filter'][$format_key][$key]['#value']); + if (isset($form['body_field'][$format_key][$key]['#value'])) { + unset($form['body_field'][$format_key][$key]['#value']); } - if (isset($form['body_filter'][$format_key][$key]['#default_value'])) { - unset($form['body_filter'][$format_key][$key]['#default_value']); + if (isset($form['body_field'][$format_key][$key]['#default_value'])) { + unset($form['body_field'][$format_key][$key]['#default_value']); } } } - if(isset($form['body_filter'][$format_key][$format])){ - $form['body_filter'][$format_key][$format]['#default_value'] = $format; + if(isset($form['body_field'][$format_key][$format])){ + $form['body_field'][$format_key][$format]['#default_value'] = $format; } } }