rules_admin.install in Rules 6
Rules Admin UI - Installation file.
File
rules_admin/rules_admin.installView source
<?php
/**
* @file Rules Admin UI - Installation file.
*/
/**
* Implementation of hook_install().
*
* We just add some example rules and rule sets here. They aren't added as default rules,
* so users can delete them.
*/
function rules_admin_install() {
// Make sure the rules module is loaded. Important when both modules are installed at
// the same time.
drupal_load('module', 'rules');
_rules_admin_install_example_rules();
_rules_admin_install_example_rule_sets();
rules_clear_cache();
}
function _rules_admin_install_example_rules() {
$rule = array(
'#type' => 'rule',
'#set' => 'event_node_view',
'#label' => t('Example rule: When viewing an unpublished page, publish it.'),
'#status' => 'custom',
'#categories' => array(
'example',
),
'#active' => 0,
);
$condition1 = rules_use_condition('rules_condition_content_is_published', array(
'#settings' => array(
'#argument map' => array(
'node' => 'node',
),
),
'#negate' => 1,
), t('Viewed content is published'));
$condition2 = rules_use_condition('rules_condition_content_is_type', array(
'#settings' => array(
'#argument map' => array(
'node' => 'node',
),
'type' => array(
'page',
),
),
), t('Viewed content is Page'));
$action1 = rules_use_action('rules_core_node_publish_action', array(
'#settings' => array(
'#argument map' => array(
'node' => 'node',
),
'auto_save' => TRUE,
),
), t('Publish viewed content'));
$rule += array(
'#conditions' => array(
$condition1,
$condition2,
),
'#actions' => array(
$action1,
),
);
rules_item_save('rules', 'rules_example_1', $rule);
}
function _rules_admin_install_example_rule_sets() {
$set = array(
'label' => t('Example: Empty rule set working with content'),
'arguments' => array(
'node' => array(
'type' => 'node',
'label' => 'Content',
),
),
'categories' => array(
'example',
),
'status' => 'custom',
);
rules_item_save('rule_sets', 'rules_set_1', $set);
}
/**
* Update 6001
* Example rules are now added by hook_install() instead of using default rules.
*
* If the default rules have been altered, mark them as custom now. Else the examples
* would be gone, so we add them now.
*/
function rules_admin_update_6001() {
$rules = rules_get_configured_items('rules');
if (isset($rules['rules_default_rule_1']['#status']) && $rules['rules_default_rule_1']['#status'] == 'altered') {
$rules['rules_default_rule_1']['#status'] = 'custom';
rules_item_delete('rules', 'rules_default_rule_1');
rules_item_save('rules', 'rules_example_1', $rules['rules_default_rule_1']);
}
elseif (!isset($rules['rules_example_1'])) {
_rules_admin_install_example_rules();
}
$sets = rules_get_configured_items('rule_sets');
if (isset($sets['rules_set_1']) && $sets['rules_set_1']['status'] == 'altered') {
$sets['rules_set_1']['status'] = 'custom';
rules_item_save('rule_sets', 'rules_set_1', $sets['rules_set_1']);
}
elseif (!isset($sets['rules_set_1'])) {
_rules_admin_install_example_rule_sets();
}
rules_clear_cache();
return array();
}
/**
* Update 6002: Rebuild the menu cache and the theme registry.
*/
function rules_admin_update_6002() {
menu_rebuild();
drupal_rebuild_theme_registry();
return array();
}
Functions
Name | Description |
---|---|
rules_admin_install | Implementation of hook_install(). |
rules_admin_update_6001 | Update 6001 Example rules are now added by hook_install() instead of using default rules. |
rules_admin_update_6002 | Update 6002: Rebuild the menu cache and the theme registry. |
_rules_admin_install_example_rules | |
_rules_admin_install_example_rule_sets |