context_reaction_disable_context.inc in Context Disable Context 7.3
File
plugins/context_reaction_disable_context.inc
View source
<?php
class context_reaction_disable_context extends context_reaction {
function options_form($context) {
$defaults = $this
->fetch_from_context($context);
$values = context_context_list();
if (isset($values[$context->name])) {
unset($values[$context->name]);
}
ksort($values);
$form = array();
$form['disabled'] = array(
'#title' => t('Contexts to disable'),
'#decription' => t('Select the contexts that should be disabled'),
'#type' => 'checkboxes',
'#multiple' => TRUE,
'#options' => $values,
'#default_value' => isset($defaults['disabled']) ? $defaults['disabled'] : array(),
);
return $form;
}
function options_form_submit($values) {
$values['disabled'] = array_filter($values['disabled']);
return $values;
}
function execute() {
$contexts = $this
->get_contexts();
$processed = array();
foreach ($contexts as $context) {
$values = $this
->fetch_from_context($context);
foreach ($values['disabled'] as $disable) {
if (context_isset('context', $disable) && !in_array($disable, $processed)) {
context_set('context', $disable, FALSE);
}
}
$processed[] = $context->name;
}
}
}