You are here

function views_bulk_operations_ruleset_action_info in Views Bulk Operations (VBO) 6

Same name and namespace in other branches
  1. 6.3 ruleset.action.inc \views_bulk_operations_ruleset_action_info()

File

actions/ruleset.action.inc, line 3

Code

function views_bulk_operations_ruleset_action_info() {
  if (!module_exists('rules')) {
    return array();
  }
  $actions = array();
  foreach (rules_get_configured_items('rule_sets') as $ruleset_key => $ruleset) {
    if (count($ruleset['arguments']) == 1) {

      // One argument: typed action
      $arg = key($ruleset['arguments']);
      $actions["views_bulk_operations_ruleset_action_{$ruleset_key}"] = array(
        'type' => $ruleset['arguments'][$arg]['type'],
        'parameters' => array(
          'ruleset' => $ruleset_key,
        ),
        'description' => $ruleset['label'],
        'configurable' => FALSE,
        'rules_ignore' => TRUE,
        'callback' => 'views_bulk_operations_ruleset_action_one',
      );
    }
    else {
      if (!count($ruleset['arguments'])) {

        // No argument: system action
        $actions["views_bulk_operations_ruleset_action_{$ruleset_key}"] = array(
          'type' => 'system',
          'parameters' => array(
            'ruleset' => $ruleset_key,
          ),
          'description' => $ruleset['label'],
          'configurable' => FALSE,
          'rules_ignore' => TRUE,
          'callback' => 'views_bulk_operations_ruleset_action_zero',
        );
      }
      else {

        // General case
        $actions["views_bulk_operations_ruleset_action_{$ruleset_key}"] = array(
          'type' => 'system',
          'parameters' => array(
            'ruleset' => $ruleset_key,
          ),
          'description' => $ruleset['label'],
          'configurable' => TRUE,
          'rules_ignore' => TRUE,
          'callback' => "views_bulk_operations_ruleset_action",
          'form properties' => array(
            '#arguments',
          ),
        );
      }
    }
  }
  return $actions;
}