popsu-d7/sites/all/modules/features/includes/features.context.inc
Bachir Soussi Chiadmi 1bc61b12ad first import
2015-04-08 11:40:19 +02:00

55 lines
1.6 KiB
PHP

<?php
/**
* Implements hook_features_export().
*/
function context_features_export($data, &$export, $module_name = '') {
$pipe = ctools_component_features_export('context', $data, $export, $module_name);
$contexts = context_load();
foreach ($data as $identifier) {
if (isset($contexts[$identifier])) {
$context = $contexts[$identifier];
// Conditions.
// Currently only node and views conditions are supported.
// @TODO: Should this be delegated to a method on the plugin?
foreach (array('node', 'views') as $key) {
if (!empty($context->conditions{$key}['values'])) {
foreach ($context->conditions{$key}['values'] as $item) {
// Special pipe for views
if ($key === 'views') {
$split = explode(':', $item);
$view_name = array_shift($split);
$pipe[$key][$view_name] = $view_name;
}
else {
$pipe[$key][$item] = $item;
}
}
}
}
// Reactions.
if (!empty($context->reactions['block']['blocks'])) {
foreach ($context->reactions['block']['blocks'] as $block) {
$block = (array) $block;
$bid = "{$block['module']}-{$block['delta']}";
$pipe['block'][$bid] = $bid;
}
}
}
}
return $pipe;
}
/**
* Implements hook_features_revert().
*
* @param $module
* name of module to revert content for
*/
function context_features_revert($module = NULL) {
$return = ctools_component_features_revert('context', $module);
context_invalidate_cache();
return $return;
}