features.filter.inc in Features 7
File
includes/features.filter.inc
View source
<?php
function filter_features_api() {
return array(
'filter' => array(
'name' => t('Text formats'),
'default_hook' => 'filter_default_formats',
'default_file' => FEATURES_DEFAULTS_INCLUDED,
'feature_source' => TRUE,
),
);
}
function filter_features_export_options() {
$options = array();
foreach (filter_formats() as $format => $info) {
$options[$format] = $info->name;
}
return $options;
}
function filter_features_export($data, &$export, $module_name = '') {
$export['dependencies']['features'] = 'features';
$filter_info = filter_get_filters();
foreach ($data as $name) {
if ($format = features_filter_format_load($name)) {
$export['features']['filter'][$format->format] = $format->format;
foreach (array_keys($format->filters) as $name) {
if (isset($filter_info[$name], $filter_info[$name]['module'])) {
$module = $filter_info[$name]['module'];
$export['dependencies'][$module] = $module;
}
}
}
}
$pipe = array();
return $pipe;
}
function filter_features_export_render($module, $data, $export = NULL) {
$code = array();
$code[] = ' $formats = array();';
$code[] = '';
foreach ($data as $name) {
if ($format = features_filter_format_load($name)) {
$format_export = features_var_export($format, ' ');
$format_identifier = features_var_export($format->format);
$code[] = " // Exported format: {$format->name}.";
$code[] = " \$formats[{$format_identifier}] = {$format_export};";
$code[] = "";
}
}
$code[] = ' return $formats;';
$code = implode("\n", $code);
return array(
'filter_default_formats' => $code,
);
}
function filter_features_revert($module) {
return filter_features_rebuild($module);
}
function filter_features_rebuild($module) {
if ($defaults = features_get_default('filter', $module)) {
foreach ($defaults as $format) {
$format = (object) $format;
filter_format_save($format);
}
}
}
function features_filter_format_load($name) {
$query = db_select('filter_format');
$query
->fields('filter_format');
$query
->condition('format', $name);
if ($format = $query
->execute()
->fetchObject()) {
$format->filters = array();
foreach (filter_list_format($format->format) as $filter) {
if (!empty($filter->status)) {
$format->filters[$filter->name]['weight'] = $filter->weight;
$format->filters[$filter->name]['status'] = $filter->status;
$format->filters[$filter->name]['settings'] = $filter->settings;
}
}
return $format;
}
return FALSE;
}