'Table that maps filters (HTML corrector) to text formats (Filtered HTML).', 'fields' => array( 'fid' => array( 'type' => 'serial', 'not null' => TRUE, 'description' => 'Primary Key: Auto-incrementing filter ID.', ), 'format' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'description' => 'Foreign key: The {filter_format}.format to which this filter is assigned.', ), 'module' => array( 'type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => '', 'description' => 'The origin module of the filter.', ), 'delta' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny', 'description' => 'ID to identify which filter within module is being referenced.', ), 'weight' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny', 'description' => 'Weight of filter within format.', ) ), 'primary key' => array('fid'), 'unique keys' => array( 'fmd' => array('format', 'module', 'delta'), ), 'indexes' => array( 'list' => array('format', 'weight', 'module', 'delta'), ), ); $schema['filter_format'] = array( 'description' => 'Stores text formats: custom groupings of filters, such as Filtered HTML.', 'fields' => array( 'format' => array( 'type' => 'serial', 'not null' => TRUE, 'description' => 'Primary Key: Unique ID for format.', ), 'name' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', 'description' => 'Name of the text format (Filtered HTML).', ), 'roles' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', 'description' => 'A comma-separated string of roles; references {role}.rid.', // This is bad since you can't use joins, nor index. ), 'cache' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny', 'description' => 'Flag to indicate whether format is cachable. (1 = cachable, 0 = not cachable)', ), 'weight' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny', 'description' => 'Weight of text format to use when listing.', ) ), 'primary key' => array('format'), 'unique keys' => array( 'name' => array('name'), ), ); $schema['cache_filter'] = drupal_get_schema_unprocessed('system', 'cache'); $schema['cache_filter']['description'] = 'Cache table for the Filter module to store already filtered pieces of text, identified by text format and md5 hash of the text.'; return $schema; } /** * Add a weight column to the filter formats table. */ function filter_update_7000() { $ret = array(); db_add_field($ret, 'filter_formats', 'weight', array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny')); return $ret; } /** * Break out "escape HTML filter" option to its own filter. */ function filter_update_7001() { $ret = array(); $result = db_query("SELECT format FROM {filter_formats}"); foreach ($result as $format) { // Deprecated constants FILTER_HTML_STRIP = 1 and FILTER_HTML_ESCAPE = 2. if (variable_get('filter_html_' . $format->format, 1) == 2) { $ret[] = update_sql("INSERT INTO {filters} (format, module, delta, weight) VALUES (" . $format->format . ", 'filter', 4, 0)"); } variable_del('filter_html_' . $format->format); } return $ret; } /** * Rename {filters} table to {filter} and {filter_formats} table to {filter_format}. */ function filter_update_7002() { $ret = array(); db_rename_table($ret, 'filters', 'filter'); db_rename_table($ret, 'filter_formats', 'filter_format'); return $ret; }