filter_update_7004

Versions
7
filter_update_7004()

Move filter settings storage into {filter} table.

  • Remove {filter}.fid.
  • Add (format, name) as primary key for {filter}.
  • Add {filter}.status.
  • Add {filter}.settings.

Related topics

Code

modules/filter/filter.install, line 213

<?php
function filter_update_7004() {
  db_drop_field('filter', 'fid');
  db_add_primary_key('filter', array('format', 'name'));
  db_add_field('filter', 'status',
    array(
      'type' => 'int',
      'not null' => TRUE,
      'default' => 0,
      'description' => 'Filter enabled status. (1 = enabled, 0 = disabled)',
    )
  );
  db_add_field('filter', 'settings',
    array(
      'type' => 'text',
      'not null' => FALSE,
      'size' => 'big',
      'serialize' => TRUE,
      'description' => 'A serialized array of name value pairs that store the filter settings for the specific format.',
    )
  );

  // Enable all existing filters ({filter} contained only enabled previously).
  db_update('filter')
    ->fields('status', '1')
    ->execute();

  // Move filter settings from system variables into {filter}.settings.
  $filters = db_query("SELECT * FROM {filter} WHERE module = :name", array(':name' => 'filter'));
  foreach ($filters as $filter) {
    $settings = array();
    if ($filter->name == 'filter_html') {
      if ($setting = variable_get("allowed_html_{$filter->format}", NULL)) {
        $settings['allowed_html'] = $setting;
        variable_del("allowed_html_{$filter->format}");
      }
      if ($setting = variable_get("filter_html_help_{$filter->format}", NULL)) {
        $settings['filter_html_help'] = $setting;
        variable_del("filter_html_help_{$filter->format}");
      }
      if ($setting = variable_get("filter_html_nofollow_{$filter->format}", NULL)) {
        $settings['filter_html_nofollow'] = $setting;
        variable_del("filter_html_nofollow_{$filter->format}");
      }
    }
    elseif ($filter->name == 'filter_url') {
      if ($setting = variable_get("filter_url_length_{$filter->format}", NULL)) {
        $settings['filter_url_length'] = $setting;
        variable_del("filter_url_length_{$filter->format}");
      }
    }
    if (!empty($settings)) {
    	db_upddate('filter')
    	  ->fields(array('settings' => serialize($settings)))
    	  ->condition('format', $filter->format)
    	  ->condition('name', $filter->name)
    	  ->execute();
    }
  }
}
?>
Login or register to post comments
 
 

All source code and documentation on this site is released under the terms of the GNU General Public License, version 2 and later. Drupal is a registered trademark of Dries Buytaert.