'Table that maps filters (HTML corrector) to text formats (Filtered HTML).', 'fields' => array( 'format' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, '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.', ), 'name' => array( 'type' => 'varchar', 'length' => 32, 'not null' => TRUE, 'default' => '', 'description' => 'Name of the filter being referenced.', ), 'weight' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'description' => 'Weight of filter within format.', ), 'status' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'description' => 'Filter enabled status. (1 = enabled, 0 = disabled)', ), 'settings' => array( 'type' => 'blob', 'not null' => FALSE, 'size' => 'big', 'serialize' => TRUE, 'description' => 'A serialized array of name value pairs that store the filter settings for the specific format.', ), ), 'primary key' => array('format', 'name'), 'indexes' => array( 'list' => array('weight', 'module', 'name'), ), ); $schema['filter_format'] = array( 'description' => 'Stores text formats: custom groupings of filters, such as Filtered HTML.', 'fields' => array( 'format' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'description' => 'Primary Key: Unique machine name of the format.', ), 'name' => array( 'type' => 'varchar', 'length' => 255, 'not null' => TRUE, 'default' => '', 'description' => 'Name of the text format (Filtered HTML).', 'translatable' => TRUE, ), 'cache' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'size' => 'tiny', 'description' => 'Flag to indicate whether format is cacheable. (1 = cacheable, 0 = not cacheable)', ), 'status' => array( 'type' => 'int', 'unsigned' => TRUE, 'not null' => TRUE, 'default' => 1, 'size' => 'tiny', 'description' => 'The status of the text format. (1 = enabled, 0 = disabled)', ), 'weight' => array( 'type' => 'int', 'not null' => TRUE, 'default' => 0, 'description' => 'Weight of text format to use when listing.', ), ), 'primary key' => array('format'), 'unique keys' => array( 'name' => array('name'), ), 'indexes' => array( 'status_weight' => array('status', 'weight'), ), ); $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 hash of the text.'; return $schema; } /** * Implements hook_install(). */ function filter_install() { // All sites require at least one text format (the fallback format) that all // users have access to, so add it here. We initialize it as a simple, safe // plain text format with very basic formatting, but it can be modified by // installation profiles to have other properties. $plain_text_format = array( 'format' => 'plain_text', 'name' => 'Plain text', 'weight' => 10, 'filters' => array( // Escape all HTML. 'filter_html_escape' => array( 'weight' => 0, 'status' => 1, ), // URL filter. 'filter_url' => array( 'weight' => 1, 'status' => 1, ), // Line break filter. 'filter_autop' => array( 'weight' => 2, 'status' => 1, ), ), ); $plain_text_format = (object) $plain_text_format; filter_format_save($plain_text_format); // Set the fallback format to plain text. variable_set('filter_fallback_format', $plain_text_format->format); }