defaultcontent.features.inc in Default Content 7.2
Same filename and directory in other branches
Handles all features exporting functionality
File
defaultcontent.features.incView source
<?php
/**
* @file
*
* Handles all features exporting functionality
*/
/**
* Implements hook_features_export_options().
*/
function content_features_export_options() {
$options = array();
foreach (defaultcontent_get_default() as $record) {
$options[$record->name] = $record->name;
}
return $options;
}
/**
* Implements hook_features_export().
*/
function content_features_export($data, &$export, $module_name) {
foreach ($data as $component) {
$export['features']['content'][$component] = $component;
}
return array();
}
/**
* Implements hook_features_export_render().
*/
function content_features_export_render($module_name, $data, $export = NULL) {
$code = " \$content = array();\n";
asort($data);
foreach ($data as $name) {
if ($node = defaultcontent_get_node($name)) {
$code .= "\n";
$code .= " \$content['{$name}'] = " . defaultcontent_export_node($node) . ";\n";
}
}
$code .= "\n";
$code .= "return \$content;";
return array(
'content_defaults' => $code,
);
}
/**
* Implements hook_features_rebuild().
*/
function content_features_rebuild($module_name) {
return content_features_revert($module_name);
}
/**
* Implements hook_features_revert().
*/
function content_features_revert($module_name) {
$components = module_invoke($module_name, 'content_defaults');
usort($components, 'defaultcontent_import_sort');
if (!empty($components)) {
foreach ($components as $component) {
if ($nid = defaultcontent_get_default($component->machine_name)) {
$node = node_load($nid, NULL, TRUE);
$node = defaultcontent_export_node_process($node);
//check if the node has change before we blow it away
//and reimport
if ($node != $component) {
entity_get_controller('node')
->resetCache();
node_delete($nid);
defaultcontent_import_node($component);
}
}
else {
defaultcontent_import_node($component);
}
}
}
return TRUE;
}
/**
* Implements hook_features_export_options().
*/
function content_menu_links_features_export_options() {
module_load_include('inc', 'features', 'includes/features.menu');
$options = menu_links_features_export_options();
foreach ($options as $identifier => $title) {
$identifier = defaultcontent_alter_identifier($identifier);
$options_prime[$identifier] = $title;
}
return $options_prime;
}
/**
* Implements hook_features_export().
*/
function content_menu_links_features_export($data, &$export, $module_name = '') {
module_load_include('inc', 'features', 'includes/features.menu');
$export['dependencies']['features'] = 'features';
$export['dependencies']['menu'] = 'menu';
$export['dependencies']['defaultcontent'] = 'defaultcontent';
foreach ($data as $identifier) {
$export['features']['content_menu_links'][$identifier] = $identifier;
}
}
/**
* Implements hook_features_export_render().
*/
function content_menu_links_features_export_render($module, $data) {
module_load_include('inc', 'features', 'includes/features.menu');
$code = array();
$code[] = ' $menu_links = array();';
$code[] = '';
$translatables = array();
foreach ($data as $identifier) {
$identifier = defaultcontent_alter_identifier($identifier, FALSE);
if ($link = features_menu_link_load($identifier)) {
// Replace plid with a parent path.
if (!empty($link['plid']) && ($parent = menu_link_load($link['plid']))) {
$link['parent_path'] = defaultcontent_alter_path($parent['link_path']);
}
unset($link['plid']);
unset($link['mlid']);
$link['link_path'] = defaultcontent_alter_path($link['link_path']);
$code[] = " // Exported menu link: {$identifier}";
$code[] = " \$menu_links['{$identifier}'] = " . features_var_export($link, ' ') . ";";
$translatables[] = $link['link_title'];
}
}
if (!empty($translatables)) {
$code[] = features_translatables_export($translatables, ' ');
}
$code[] = '';
$code[] = ' return $menu_links;';
$code = implode("\n", $code);
return array(
'content_menu_links_defaults' => $code,
);
}
/**
* Implements hook_features_export_revert().
*/
function content_menu_links_features_revert($module) {
content_menu_links_features_rebuild($module);
}
/**
* Implements hook_features_export_rebuild().
*/
function content_menu_links_features_rebuild($module) {
if ($menu_links = features_get_default('content_menu_links', $module)) {
foreach ($menu_links as $key => $link) {
defaultcontent_import_menu_link($key, $link);
}
}
}
Functions
Name | Description |
---|---|
content_features_export | Implements hook_features_export(). |
content_features_export_options | Implements hook_features_export_options(). |
content_features_export_render | Implements hook_features_export_render(). |
content_features_rebuild | Implements hook_features_rebuild(). |
content_features_revert | Implements hook_features_revert(). |
content_menu_links_features_export | Implements hook_features_export(). |
content_menu_links_features_export_options | Implements hook_features_export_options(). |
content_menu_links_features_export_render | Implements hook_features_export_render(). |
content_menu_links_features_rebuild | Implements hook_features_export_rebuild(). |
content_menu_links_features_revert | Implements hook_features_export_revert(). |