You are here

workbench_moderation.features.inc in Workbench Moderation 7.3

Same filename and directory in other branches
  1. 7 workbench_moderation.features.inc

Features file for the workbench_moderation module.

File

workbench_moderation.features.inc
View source
<?php

/**
 * @file
 * Features file for the workbench_moderation module.
 */

/**
 * Implements COMPONENT_features_export_options().
 *
 * Inform features about the available states in the database.
 */
function workbench_moderation_states_features_export_options() {
  $states = db_select('workbench_moderation_states', 'states')
    ->fields('states', array(
    'name',
    'name',
  ))
    ->execute()
    ->fetchAllKeyed();
  return $states;
}

/**
 * Implements COMPONENT_features_export().
 *
 * Process the features export array for states.
 */
function workbench_moderation_states_features_export($data, &$export, $module_name) {
  $export['dependencies']['workbench_moderation'] = 'workbench_moderation';
  foreach ($data as $component) {
    $export['features']['workbench_moderation_states'][$component] = $component;
  }
  return array();
}

/**
 * Implements COMPONENT_features_export_render().
 *
 * Render workbench moderation states as code.
 */
function workbench_moderation_states_features_export_render($module_name, $data) {
  $items = array();
  foreach ($data as $state) {
    $items[$state] = workbench_moderation_state_load($state);
  }
  $code = "  \$items = " . features_var_export($items, '  ') . ";\n";
  $code .= '  return $items;';
  return array(
    'workbench_moderation_export_states' => $code,
  );
}

/**
 * Implements COMPONENT_features_revert().
 */
function workbench_moderation_states_features_revert($module) {
  workbench_moderation_states_features_rebuild($module);
}

/**
 * Implements COMPONENT_features_enable_feature().
 */
function workbench_moderation_states_features_enable_feature($module) {
  workbench_moderation_states_features_rebuild($module);
}

/**
 * Implements COMPONENT_features_rebuild().
 *
 * Store each exported transition in the database.
 */
function workbench_moderation_states_features_rebuild($module) {
  if ($defaults = features_get_default('workbench_moderation_states', $module)) {
    foreach ($defaults as $state) {
      workbench_moderation_state_save((object) $state);
    }
    drupal_static_reset('workbench_moderation_states');
  }
}

/**
 * Implements COMPONENT_features_export_options().
 *
 * Inform features about the available transitions in the database.
 */
function workbench_moderation_transitions_features_export_options() {
  $options = array();
  foreach (workbench_moderation_transitions() as $transition) {
    $options[$transition->from_name . ':' . $transition->to_name] = $transition->from_name . ' -> ' . $transition->to_name;
  }
  return $options;
}

/**
 * Implements COMPONENT_features_export().
 *
 * Process the features export array for transitions.
 */
function workbench_moderation_transitions_features_export($data, &$export, $module_name) {
  $export['dependencies']['workbench_moderation'] = 'workbench_moderation';
  foreach ($data as $component) {
    $export['features']['workbench_moderation_transitions'][$component] = $component;
  }
  return array();
}

/**
 * Implements COMPONENT_features_export_render().
 *
 * Render workbench moderation transitions as code.
 */
function workbench_moderation_transitions_features_export_render($module_name, $data) {
  $items = array();
  foreach ($data as $transition) {
    list($from_name, $to_name) = explode(':', $transition);
    $item = db_select('workbench_moderation_transitions', 't')
      ->fields('t', array(
      'from_name',
      'to_name',
      'name',
    ))
      ->condition('from_name', $from_name)
      ->condition('to_name', $to_name)
      ->execute()
      ->fetchObject();
    if (!empty($item)) {
      $items[$item->from_name . ':' . $item->to_name] = $item;
    }
  }
  $code = "  \$items = " . features_var_export($items, '  ') . ";\n";
  $code .= '  return $items;';
  return array(
    'workbench_moderation_export_transitions' => $code,
  );
}

/**
 * Implements COMPONENT_features_revert().
 */
function workbench_moderation_transitions_features_revert($module) {
  workbench_moderation_transitions_features_rebuild($module);
}

/**
 * Implements COMPONENT_features_enable_feature().
 */
function workbench_moderation_transitions_features_enable_feature($module) {
  workbench_moderation_transitions_features_rebuild($module);
}

/**
 * Implements COMPONENT_features_rebuild().
 *
 * Store each exported transition in the database.
 */
function workbench_moderation_transitions_features_rebuild($module) {
  if ($defaults = features_get_default('workbench_moderation_transitions', $module)) {
    foreach ($defaults as $machine_name => $transition) {
      workbench_moderation_transition_save((object) $transition);
    }
    drupal_static_reset('workbench_moderation_transitions');
  }
}

Functions

Namesort descending Description
workbench_moderation_states_features_enable_feature Implements COMPONENT_features_enable_feature().
workbench_moderation_states_features_export Implements COMPONENT_features_export().
workbench_moderation_states_features_export_options Implements COMPONENT_features_export_options().
workbench_moderation_states_features_export_render Implements COMPONENT_features_export_render().
workbench_moderation_states_features_rebuild Implements COMPONENT_features_rebuild().
workbench_moderation_states_features_revert Implements COMPONENT_features_revert().
workbench_moderation_transitions_features_enable_feature Implements COMPONENT_features_enable_feature().
workbench_moderation_transitions_features_export Implements COMPONENT_features_export().
workbench_moderation_transitions_features_export_options Implements COMPONENT_features_export_options().
workbench_moderation_transitions_features_export_render Implements COMPONENT_features_export_render().
workbench_moderation_transitions_features_rebuild Implements COMPONENT_features_rebuild().
workbench_moderation_transitions_features_revert Implements COMPONENT_features_revert().