class context_condition_user in Context 7.3
Same name and namespace in other branches
- 6.3 plugins/context_condition_user.inc \context_condition_user
- 6 plugins/context_condition_user.inc \context_condition_user
Expose current user role as a context condition.
Hierarchy
- class \context_condition
- class \context_condition_user
Expanded class hierarchy of context_condition_user
2 string references to 'context_condition_user'
- _context_context_plugins in ./
context.plugins.inc - Context plugins.
- _context_context_registry in ./
context.plugins.inc - Context registry.
File
- plugins/
context_condition_user.inc, line 6
View source
class context_condition_user extends context_condition {
function condition_values() {
$values = array();
foreach (user_roles() as $rid => $role_name) {
if ($rid == DRUPAL_ANONYMOUS_RID) {
$values['anonymous user'] = check_plain($role_name);
}
elseif ($rid == DRUPAL_AUTHENTICATED_RID) {
$values['authenticated user'] = check_plain($role_name);
}
else {
$values[$role_name] = check_plain($role_name);
}
}
return $values;
}
function options_form($context) {
$defaults = $this
->fetch_from_context($context, 'options');
return array(
'negate_role' => array(
'#title' => t('Make role a negative condition'),
'#type' => 'checkbox',
'#description' => t("Checking this box will make this condition fire if the user's role is NOT one of the role's checked"),
'#default_value' => isset($defaults['negate_role']) ? $defaults['negate_role'] : 0,
),
);
}
function execute($account) {
$all_roles = user_roles();
$users_roles = $account->roles;
foreach ($all_roles as $rid => $role) {
foreach ($this
->get_contexts($role) as $context) {
$options = $this
->fetch_from_context($context, 'options');
if (empty($options['negate_role'])) {
if (in_array($role, $users_roles)) {
$this
->condition_met($context, $role);
}
}
else {
$negate_flag = TRUE;
foreach ($this
->fetch_from_context($context, 'values') as $nid => $negated_role) {
if (!in_array($negated_role, $users_roles)) {
$negate_flag &= TRUE;
}
else {
$negate_flag &= FALSE;
}
}
if ($negate_flag) {
$this
->condition_met($context, $role);
}
}
}
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
context_condition:: |
property | |||
context_condition:: |
property | |||
context_condition:: |
property | |||
context_condition:: |
property | |||
context_condition:: |
function | Condition form. | 3 | |
context_condition:: |
function | Condition form submit handler. | 2 | |
context_condition:: |
function | Marks a context as having met this particular condition. | ||
context_condition:: |
function | Check whether this condition is used by any contexts. Can be used to prevent expensive condition checks from being triggered when no contexts use this condition. | ||
context_condition:: |
function | Context editor form for conditions. | 2 | |
context_condition:: |
function | Context editor form submit handler. | ||
context_condition:: |
function | Retrieve options from the context provided. | ||
context_condition:: |
function | Retrieve all contexts with the condition value provided. | 2 | |
context_condition:: |
function | Options form submit handler. | ||
context_condition:: |
function | Settings form. Provide variable settings for your condition. | ||
context_condition:: |
function | Clone our references when we're being cloned. | ||
context_condition:: |
function | Constructor. Do not override. | ||
context_condition_user:: |
function |
Condition values. Overrides context_condition:: |
||
context_condition_user:: |
function | |||
context_condition_user:: |
function |
Options form. Provide additional options for your condition. Overrides context_condition:: |