diff --git a/panels_mini/panels_mini.module b/panels_mini/panels_mini.module index f701893..fd58e5f 100644 --- a/panels_mini/panels_mini.module +++ b/panels_mini/panels_mini.module @@ -161,14 +161,25 @@ function panels_mini_block_list_alter(&$blocks) { if (!empty($panel_mini->requiredcontexts)) { if (!$current_page || empty($current_page['contexts'])) { - unset($blocks[$key]); - continue; + foreach ($panel_mini->requiredcontexts as $context) { + if (empty($context['optional'])) { + unset($blocks[$key]); + continue; + } + } } else { $required = array(); foreach ($panel_mini->requiredcontexts as $context) { $info = ctools_get_context($context['name']); - $required[] = new ctools_context_required($context['identifier'], $info['context name']); + + // Check if the required context is actually required. + if (!empty($context['optional'])) { + $required[] = new ctools_context_optional($context['identifier'], $info['context name']); + } + else { + $required[] = new ctools_context_required($context['identifier'], $info['context name']); + } } if (!ctools_context_match_requirements($current_page['contexts'], $required)) { unset($blocks[$key]);