You are here

function panels_argument_load_contexts in Panels 6.2

Same name and namespace in other branches
  1. 5.2 includes/plugins.inc \panels_argument_load_contexts()

Load the contexts for a given panel.

Parameters

$arguments: The array of argument definitions

&$contexts: The array of existing contexts.

$args: The arguments to load

Return value

FALSE if an argument wants to 404.

File

includes/plugins.inc, line 817
plugins.inc

Code

function panels_argument_load_contexts($arguments, &$contexts, $args) {
  foreach ($arguments as $argument) {

    // pull the argument off the list.
    $arg = array_shift($args);
    $id = panels_context_id($argument, 'argument');

    // For % arguments embedded in the URL, our context is already loaded.
    // There is no need to go and load it again.
    if (empty($contexts[$id])) {
      if ($context = panels_argument_get_context($argument, $arg)) {
        $contexts[$id] = $context;
      }
    }
    else {
      $context = $contexts[$id];
    }
    if ((empty($context) || empty($context->data)) && $argument['default'] == '404') {
      return FALSE;
    }
  }
  return TRUE;
}