[ Index ]

PHP Cross Reference of Drupal 6 (gatewave)

title

Body

[close]

/sites/all/modules/rules/rules_admin/ -> rules_admin.install (source)

   1  <?php
   2  // $Id: rules_admin.install,v 1.1.2.4 2009/04/19 18:19:06 fago Exp $
   3  
   4  
   5  /**
   6   * @file Rules Admin UI - Installation file.
   7   */
   8  
   9  /**
  10   * Implementation of hook_install().
  11   *
  12   * We just add some example rules and rule sets here. They aren't added as default rules,
  13   * so users can delete them.
  14   */
  15  function rules_admin_install() {
  16    // Make sure the rules module is loaded. Important when both modules are installed at
  17    // the same time.
  18    drupal_load('module', 'rules');
  19  
  20    _rules_admin_install_example_rules();
  21    _rules_admin_install_example_rule_sets();
  22    rules_clear_cache();
  23  }
  24  
  25  function _rules_admin_install_example_rules() {
  26    $rule = array(
  27      '#type' => 'rule',
  28      '#set' => 'event_node_view',
  29      '#label' => t('Example rule: When viewing an unpublished page, publish it.'),
  30      '#status' => 'custom',
  31      '#categories' => array('example'),
  32      '#active' => 0,
  33    );
  34    $condition1 = rules_use_condition('rules_condition_content_is_published', array(
  35        '#settings' => array('#argument map' => array('node' => 'node')),
  36        '#negate' => 1,
  37      ), t('Viewed content is published'));
  38    $condition2 = rules_use_condition('rules_condition_content_is_type', array(
  39        '#settings' => array(
  40          '#argument map' => array('node' => 'node'),
  41          'type' => array('page'),
  42        ),
  43      ), t('Viewed content is Page'));
  44    $action1 = rules_use_action('rules_core_node_publish_action', array(
  45        '#settings' => array(
  46          '#argument map' => array('node' => 'node'),
  47          'auto_save' => TRUE,
  48        ),
  49      ), t('Publish viewed content'));
  50    $rule += array(
  51      '#conditions' => array($condition1, $condition2),
  52      '#actions' => array($action1),
  53    );
  54    rules_item_save('rules', 'rules_example_1', $rule);
  55  }
  56  
  57  function _rules_admin_install_example_rule_sets() {
  58    $set = array(
  59      'label' => t('Example: Empty rule set working with content'),
  60      'arguments' => array('node' => array('type' => 'node', 'label' => 'Content')),
  61      'categories' => array('example'),
  62      'status' => 'custom',
  63    );
  64    rules_item_save('rule_sets', 'rules_set_1', $set);
  65  }
  66  
  67  /**
  68   * Update 6001
  69   * Example rules are now added by hook_install() instead of using default rules.
  70   *
  71   * If the default rules have been altered, mark them as custom now. Else the examples
  72   * would be gone, so we add them now.
  73   */
  74  function rules_admin_update_6001() {
  75    $rules = rules_get_configured_items('rules');
  76    if (isset($rules['rules_default_rule_1']['#status']) && $rules['rules_default_rule_1']['#status'] == 'altered') {
  77      $rules['rules_default_rule_1']['#status'] = 'custom';
  78      rules_item_delete('rules', 'rules_default_rule_1');
  79      rules_item_save('rules', 'rules_example_1', $rules['rules_default_rule_1']);
  80    }
  81    elseif (!isset($rules['rules_example_1'])) {
  82      _rules_admin_install_example_rules();
  83    }
  84  
  85    $sets = rules_get_configured_items('rule_sets');
  86    if (isset($sets['rules_set_1']) && $sets['rules_set_1']['status'] == 'altered') {
  87      $sets['rules_set_1']['status'] = 'custom';
  88      rules_item_save('rule_sets', 'rules_set_1', $sets['rules_set_1']);
  89    }
  90    elseif (!isset($sets['rules_set_1'])) {
  91      _rules_admin_install_example_rule_sets();
  92    }
  93  
  94    rules_clear_cache();
  95    return array();
  96  }
  97  
  98  /**
  99   * Update 6002: Rebuild the menu cache and the theme registry.
 100   */
 101  function rules_admin_update_6002() {
 102    menu_rebuild();
 103    drupal_rebuild_theme_registry();
 104    return array();
 105  }
 106  


Generated: Thu Mar 24 11:18:33 2011 Cross-referenced by PHPXref 0.7