150 lines
4.4 KiB
Plaintext
150 lines
4.4 KiB
Plaintext
<?php
|
|
|
|
/**
|
|
* @file
|
|
* Install, update and uninstall functions for the filter module.
|
|
*/
|
|
|
|
/**
|
|
* Implements hook_schema().
|
|
*/
|
|
function filter_schema() {
|
|
$schema['filter'] = array(
|
|
'description' => '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);
|
|
}
|