47 lines
1.3 KiB
PHP
47 lines
1.3 KiB
PHP
<?php
|
|
|
|
class context_reaction_region extends context_reaction {
|
|
|
|
function editor_form($context) {
|
|
}
|
|
|
|
function options_form($context) {
|
|
$values = $this->fetch_from_context($context);
|
|
$form = array();
|
|
foreach (list_themes() as $theme) {
|
|
if ($theme->status) {
|
|
$regions = system_region_list($theme->name);
|
|
$default = isset($values[$theme->name]) ? $values[$theme->name]['disable'] : array();
|
|
|
|
$form[$theme->name] = array(
|
|
'#type' => 'fieldset',
|
|
'#title' => "Disable Regions in {$theme->name} Theme",
|
|
'#collapsible' => TRUE,
|
|
'#collapsed' => !array_reduce($default, create_function('$a, $b', 'return $a || $b;')),
|
|
);
|
|
$form[$theme->name]['disable'] = array(
|
|
'#type' => 'checkboxes',
|
|
'#title' => t("Disable the following"),
|
|
'#options' => $regions,
|
|
'#default_value' => $default,
|
|
);
|
|
}
|
|
}
|
|
return $form;
|
|
}
|
|
|
|
function execute(&$page) {
|
|
global $theme;
|
|
foreach ($this->get_contexts() as $k => $v) {
|
|
if (isset($v->reactions[$this->plugin][$theme])) {
|
|
$regions = $v->reactions[$this->plugin][$theme]['disable'];
|
|
foreach ($regions as $region => $disable) {
|
|
if ($disable && isset($page[$region])) {
|
|
unset($page[$region]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|