| [ Index ] |
PHP Cross Reference of Drupal 6 (gatewave) |
[Summary view] [Print] [Text view]
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
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Thu Mar 24 11:18:33 2011 | Cross-referenced by PHPXref 0.7 |