You are here

function ctools_edit_context_form_defaults in Chaos Tool Suite (ctools) 7

Form wrapper for the edit context form.

@todo: We should uncombine these.

2 string references to 'ctools_edit_context_form_defaults'
ctools_context_ajax_item_add in includes/context-admin.inc
Ajax entry point to add an context
ctools_context_ajax_item_edit in includes/context-admin.inc
Ajax entry point to edit an item

File

includes/context-admin.inc, line 683
includes/common-context.inc Provide API for adding contexts for modules that embed displays.

Code

function ctools_edit_context_form_defaults($form, &$form_state) {

  // Basic values required to orient ourselves
  $object = $form_state['object'];
  $plugin_definition = $form_state['plugin'];
  $type_info = $form_state['type info'];
  $contexts = $form_state['contexts'];
  $conf = $form_state['conf'];
  if ($type_info['key'] == 'arguments' && !isset($conf['default'])) {
    $conf['default'] = 'ignore';
    $conf['title'] = '';
  }
  $form['description'] = array(
    '#prefix' => '<div class="description">',
    '#suffix' => '</div>',
    '#markup' => check_plain($plugin_definition['description']),
  );
  if ($type_info['key'] == 'relationships') {
    $form['context'] = ctools_context_selector($contexts, $plugin_definition['required context'], isset($conf['context']) ? $conf['context'] : '');
  }
  if ($type_info['key'] == 'arguments') {
    $form['default'] = array(
      '#type' => 'select',
      '#title' => t('Default'),
      '#options' => array(
        'ignore' => t('Ignore it; content that requires this context will not be available.'),
        '404' => t('Display page not found or display nothing at all.'),
      ),
      '#default_value' => $conf['default'],
      '#description' => t('If the argument is missing or is not valid, select how this should behave.'),
    );
    $form['title'] = array(
      '#type' => 'textfield',
      '#title' => t('Title'),
      '#default_value' => $conf['title'],
      '#description' => t('Enter a title to use when this argument is present. You may use %KEYWORD substitution, where the keyword is specified below.'),
    );
  }
  $form['identifier'] = array(
    '#type' => 'textfield',
    '#title' => t('Identifier'),
    '#description' => t('Enter a name to identify this !type on administrative screens.', array(
      '!type' => t('context'),
    )),
    '#default_value' => $conf['identifier'],
  );
  $form['keyword'] = array(
    '#type' => 'textfield',
    '#title' => t('Keyword'),
    '#description' => t('Enter a keyword to use for substitution in titles.'),
    '#default_value' => $conf['keyword'],
  );
  if ($type_info['key'] == 'requiredcontexts') {
    $form['optional'] = array(
      '#type' => 'checkbox',
      '#title' => t('Context is optional'),
      '#default_value' => !empty($form_state['conf']['optional']),
      '#description' => t('This context need not be present for the component to function.'),
    );
  }
  $form['#submit'][] = 'ctools_edit_context_form_defaults_submit';
  return $form;
}