1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <?php
- /**
- * Implements hook_features_export_options().
- */
- function block_class_features_export_options() {
- $query = db_select('block_class', 'bc');
- $query->addExpression("CONCAT(bc.module, ':', bc.delta)");
- $blocks = $query->execute()->fetchAllKeyed(0, 0);
- natcasesort($blocks);
- return $blocks;
- }
- /**
- * Implements hook_features_export().
- */
- function block_class_features_export($data, &$export, $module_name = '') {
- $pipe = array();
- $export['dependencies']['features'] = 'features';
- $export['dependencies']['block_class'] = 'block_class';
- foreach ($data as $component) {
- $export['features']['block_class'][$component] = $component;
- }
- return $pipe;
- }
- /**
- * Implements hook_features_export_render().
- */
- function block_class_features_export_render($module, $data) {
- $query = db_select('block_class', 'bc');
- $query->addExpression("CONCAT(bc.module, ':', bc.delta)", 'id');
- $query->addField('bc', 'css_class');
- $classes = $query->execute()->fetchAllKeyed(1, 0);
- $code = array();
- foreach ($data as $id) {
- if (isset($classes[$id])) {
- list($module, $delta) = explode(':', $id);
- $css_classes = $classes[$id];
- $code[$id] = compact('module', 'delta', 'css_classes');
- }
- }
- $code = " return ". features_var_export($code, ' ') .";";
- return array('block_class_features_default_class' => $code);
- }
- /**
- * Implements hook_features_revert().
- */
- function block_class_features_revert($module) {
- block_class_features_rebuild($module);
- }
- /**
- * Implements hook_features_rebuild().
- */
- function block_class_features_rebuild($module) {
- $blocks = module_invoke($module, 'block_class_features_default_class');
- if ($blocks) {
- foreach($blocks as $block) {
- db_delete('block_class')->condition('module', $block['module'])->condition('delta', $block['delta'])->execute();
- if (!empty($block['css_classes'])) {
- $id = db_insert('block_class')->fields(array('module' => $block['module'], 'delta' => $block['delta'], 'css_class' => $block['css_classes']))->execute();
- }
- }
- }
- }
|