context_rules.rules.inc in Context Rules 6
Same filename and directory in other branches
Provides rules integrations for the Context module
File
context_rules.rules.incView source
<?php
// $Id$
/**
* @file
* Provides rules integrations for the Context module
*/
/**
* Implementation of hook_rules_condition_info().
*/
function context_rules_rules_condition_info() {
return array(
'rules_condition_context_rules_context_isset' => array(
'label' => t('Is a context set'),
'arguments' => array(),
'help' => t('Evaluates to TRUE, if a given Context is set.'),
'module' => 'Context Rules',
),
);
}
/**
* determines if a given Context is currently set
*/
function rules_condition_context_rules_context_isset($settings) {
if (!empty($settings['context'])) {
//all other hooks should get got but theme level ones will be missed otherwise
module_invoke_all('context_page_condition');
//module_invoke_all('context_page_reaction');
return context_isset('context', $settings['context']);
}
return FALSE;
}
/**
* Implementation of hook_rules_action_info().
* @ingroup rules
*/
function context_rules_rules_action_info() {
return array(
'rules_action_context_rules_set_context' => array(
'label' => t('Set a context module context'),
'arguments' => array(),
'module' => 'Context Rules',
),
'rules_action_context_rules_unset_context' => array(
'label' => t('Unset a context module context'),
'arguments' => array(),
'module' => 'Context Rules',
),
);
}
/**
* Set a context via rules action
*
* @param $context
* An object containing the context data
* @param $value
* An object containing the context data
* @return
* An array of the newly set context
*
* TODO: Offer option to force or respect context conditions
*/
function rules_action_context_rules_set_context($settings) {
if ($context = context_load($settings['context'])) {
if (context_set('context', $context->name, $context)) {
return TRUE;
}
}
}
/**
* Unset a context via rules action
*
* @param $context
* An object containing the context data
* @param $value
* An object containing the context data
* @return boolean
* TRUE if the context was successfully unset or FALSE otherwise.
*/
function rules_action_context_rules_unset_context($settings) {
if ($context = context_load($settings['context'])) {
if (context_set('context', $context->name, FALSE)) {
return TRUE;
}
}
}
/**
* Implementation of hook_rules_event_info().
*/
function context_rules_rules_event_info() {
$items = array();
$contexts = context_enabled_contexts();
foreach ($contexts as $name => $context) {
$items['context_active_' . $name] = array(
'module' => 'Context',
'label' => t('Context "@context-name" is active', array(
'@context-name' => $context->name,
)),
'arguments' => rules_events_global_user_argument(),
);
}
return $items;
}
Functions
Name![]() |
Description |
---|---|
context_rules_rules_action_info | Implementation of hook_rules_action_info(). |
context_rules_rules_condition_info | Implementation of hook_rules_condition_info(). |
context_rules_rules_event_info | Implementation of hook_rules_event_info(). |
rules_action_context_rules_set_context | Set a context via rules action |
rules_action_context_rules_unset_context | Unset a context via rules action |
rules_condition_context_rules_context_isset | determines if a given Context is currently set |