You are here

function _panels_context_selector in Panels 5.2

Same name and namespace in other branches
  1. 6.2 includes/plugins.inc \_panels_context_selector()
1 call to _panels_context_selector()
panels_context_selector in includes/plugins.inc
Create a select box to choose possible contexts. This only creates a selector if there is actually a choice.

File

includes/plugins.inc, line 1010
plugins.inc

Code

function _panels_context_selector($contexts, $required, $default, $num = 0) {
  $filtered = panels_context_filter($contexts, $required);
  $count = count($filtered);
  $form = array();
  if ($count == 1) {
    $keys = array_keys($filtered);
    return array(
      '#type' => 'value',
      '#value' => $keys[0],
    );
  }
  if ($count > 1) {

    // If there's more than one to choose from, create a select widget.
    foreach ($filtered as $cid => $context) {
      $options[$cid] = $context
        ->get_identifier();
    }
    if (!empty($required->title)) {
      $title = $required->title;
    }
    else {
      $title = $num ? t('Context %count', array(
        '%count' => $num,
      )) : t('Context');
    }
    return array(
      '#type' => 'select',
      '#options' => $options,
      '#title' => $title,
      '#description' => t('Multiple contexts are valid for this pane; one must be chosen.'),
      '#default_value' => $default,
    );
  }
}