You are here

uuid_current_search_configuration.features.inc in UUID Features Integration 7

Features hooks for the uuid_current_search features component.

File

includes/uuid_current_search_configuration.features.inc
View source
<?php

/**
 * @file
 * Features hooks for the uuid_current_search features component.
 */

/**
 * Implements hook_features_export_options().
 */
function uuid_current_search_configuration_features_export_options() {
  $options = array();
  if (db_table_exists('block_current_search')) {
    $current_search_items = db_select('block_current_search', 'b')
      ->fields('b', array(
      'delta',
      'searcher',
    ))
      ->addTag('uuid_current_search_configuration_features_export_options')
      ->execute()
      ->fetchAllAssoc('delta');
    foreach ($current_search_items as $config) {
      $options[$config->delta] = $config->delta;
    }
  }
  drupal_alter('uuid_current_search_configuration_features_export_options', $options);
  return $options;
}

/**
 * Implements hook_features_export().
 */
function uuid_current_search_configuration_features_export($data, &$export, $module_name = '') {
  $export['dependencies']['current_search'] = 'current_search';
  foreach ($data as $uuid) {
    $export['features']['uuid_current_search_configuration'][$uuid] = $uuid;
  }
  return array();
}

/**
 * Implements hook_features_export_render().
 */
function uuid_current_search_configuration_features_export_render($module, $data) {
  $translatables = $code = array();
  $code[] = '  $current_search_configurations = array();';
  $code[] = '';
  foreach ($data as $uuid) {
    $block_config = db_select('block_current_search', 'b')
      ->fields('b', array(
      'delta',
      'searcher',
    ))
      ->condition('b.delta', $uuid)
      ->execute()
      ->fetchAssoc();
    if ($block_config) {
      $code[] = '  $current_search_configurations[] = ' . features_var_export($block_config, '  ') . ';';
    }
  }
  if (!empty($translatables)) {
    $code[] = features_translatables_export($translatables, '  ');
  }
  $code[] = '  return $current_search_configurations;';
  $code = implode("\n", $code);
  return array(
    'uuid_features_default_current_search_configurations' => $code,
  );
}

/**
 * Implements hook_features_revert().
 */
function uuid_current_search_configuration_features_revert($module) {
  uuid_current_search_configuration_features_rebuild($module);
}

/**
 * Implements hook_features_rebuild().
 */
function uuid_current_search_configuration_features_rebuild($module) {
  $block_current_search_configurations = features_get_default('uuid_current_search_configuration', $module);
  if (!empty($block_current_search_configurations)) {
    foreach ($block_current_search_configurations as $block_current_search_configuration) {
      db_delete('block_current_search')
        ->condition('delta', $block_current_search_configuration['delta'])
        ->execute();
      $record = new stdClass();
      $record->delta = $block_current_search_configuration['delta'];
      $record->searcher = $block_current_search_configuration['searcher'];
      drupal_write_record('block_current_search', $record);
    }
  }
}