og_subgroups_context_condition_has_parent.inc in Subgroups for Organic groups 6
File
modules/og_subgroups_context/plugins/og_subgroups_context_condition_has_parent.inc
View source
<?php
define('OG_SUBGROUPS_CONTEXT_NO_PARENT', 0);
define('OG_SUBGROUPS_CONTEXT_HAS_PARENT', 1);
class og_subgroups_context_condition_has_parent extends context_condition {
function condition_form($context) {
$default = $this
->fetch_from_context($context, 'values');
if ($default) {
$default = array_shift($default);
}
return array(
'og_subgroups_context_has_parent' => array(
'#title' => $this->title,
'#type' => 'radios',
'#options' => array(
OG_SUBGROUPS_CONTEXT_NO_PARENT => t('Does not have a parent'),
OG_SUBGROUPS_CONTEXT_HAS_PARENT => t('Has a parent'),
),
'#description' => $this->description,
'#default_value' => $default ? $default : OG_SUBGROUPS_CONTEXT_NO_PARENT,
),
);
}
function condition_form_submit($values) {
return drupal_map_assoc($values);
}
function execute() {
if ($this
->condition_used()) {
if ($group = og_subgroups_context_current_group()) {
foreach ($this
->get_contexts($value) as $context) {
og_subgroups_include('tree');
$setting = array_shift($context->conditions['og_subgroups_context_condition_has_parent']['values']);
switch ($setting) {
case OG_SUBGROUPS_CONTEXT_NO_PARENT:
if (!og_subgroups_get_group_parent($group)) {
$this
->condition_met($context, $value);
}
break;
case OG_SUBGROUPS_CONTEXT_HAS_PARENT:
if (og_subgroups_get_group_parent($group)) {
$this
->condition_met($context, $value);
}
break;
}
}
}
}
}
}