You are here

function _quicktabs_form in Quick Tabs 7.2

Same name and namespace in other branches
  1. 5 quicktabs.module \_quicktabs_form()
  2. 6.3 includes/admin.inc \_quicktabs_form()
  3. 6 quicktabs.module \_quicktabs_form()
  4. 6.2 includes/admin.inc \_quicktabs_form()
  5. 7.3 quicktabs.admin.inc \_quicktabs_form()
1 call to _quicktabs_form()
quicktabs_form in includes/admin.inc
Build the quicktab creation and edit form.

File

includes/admin.inc, line 318
Provides the Quick Tabs' administrative interface.

Code

function _quicktabs_form(array $tab) {
  $form['#tree'] = TRUE;
  $delta = $tab['delta'];
  $form['weight'] = array(
    '#type' => 'weight',
    '#default_value' => isset($tab['weight']) ? $tab['weight'] : $delta - 100,
    '#delta' => 100,
  );
  $form['title'] = array(
    '#type' => 'textfield',
    '#size' => '10',
    '#default_value' => isset($tab['title']) ? $tab['title'] : '',
  );
  if (module_exists('block')) {
    $tabtypes['block'] = t('Block');
    $form['block']['bid'] = array(
      '#type' => 'select',
      '#options' => quicktabs_get_blocks(),
      '#default_value' => isset($tab['bid']) ? $tab['bid'] : '',
      '#title' => t('Select a block'),
    );
    $form['block']['hide_title'] = array(
      '#type' => 'checkbox',
      '#title' => t('Hide the title of this block'),
      '#default_value' => isset($tab['hide_title']) ? $tab['hide_title'] : 1,
    );
  }
  if (module_exists('views')) {
    $views = quicktabs_get_views();
    $views_keys = array_keys($views);
    $tabtypes['view'] = t('View!translate_as_list_of_content', array(
      '!translate_as_list_of_content' => '',
    ));
    $selected_view = isset($tab['vid']) ? $tab['vid'] : (isset($views_keys[0]) ? $views_keys[0] : '');
    $form['view']['vid'] = array(
      '#type' => 'select',
      '#options' => $views,
      '#default_value' => $selected_view,
      '#title' => t('Select a view'),
      '#ajax' => array(
        'callback' => 'quicktabs_ajax_callback',
        'wrapper' => 'quicktab-tabs',
        'method' => 'replace',
        'effect' => 'fade',
      ),
    );
    $form['view']['display'] = array(
      '#type' => 'select',
      '#title' => 'display',
      '#options' => _quicktabs_get_views_displays($selected_view),
      '#default_value' => isset($tab['display']) ? $tab['display'] : '',
    );
    $form['view']['args'] = array(
      '#type' => 'textfield',
      '#title' => 'arguments',
      '#size' => '40',
      '#required' => FALSE,
      '#default_value' => isset($tab['args']) ? $tab['args'] : '',
      '#description' => t('Additional arguments to send to the view as if they were part of the URL in the form of arg1/arg2/arg3. You may use %0, %1, ..., %N to grab arguments from the URL.'),
    );
  }
  $tabtypes['node'] = t('Node');
  $form['node']['nid'] = array(
    '#type' => 'textfield',
    '#title' => t('Node'),
    '#description' => t('The node ID of the node.'),
    '#maxlength' => 10,
    '#size' => 20,
    '#default_value' => isset($tab['nid']) ? $tab['nid'] : '',
  );
  $form['node']['teaser'] = array(
    '#type' => 'checkbox',
    '#title' => t('Teaser view'),
    '#default_value' => isset($tab['teaser']) ? $tab['teaser'] : 0,
  );
  $form['node']['hide_title'] = array(
    '#type' => 'checkbox',
    '#title' => t('Hide the title of this node'),
    '#default_value' => isset($tab['hide_title']) ? $tab['hide_title'] : 1,
  );
  $tabtypes['qtabs'] = t('QTab');
  $form['qtabs']['machine_name'] = array(
    '#type' => 'textfield',
    '#title' => t('Quicktab'),
    '#description' => t('The quicktab machine name.') . ' ' . t('Different styles may not work when putting an ajax quicktab inside ajax quicktab.'),
    '#maxlength' => 10,
    '#size' => 20,
    '#default_value' => isset($tab['machine_name']) ? $tab['machine_name'] : '',
  );
  $form['type'] = array(
    '#type' => 'radios',
    '#options' => $tabtypes,
    '#default_value' => isset($tab['type']) ? $tab['type'] : key($tabtypes),
  );
  $form['remove'] = array(
    '#type' => 'submit',
    '#prefix' => '<div>',
    '#suffix' => '<label for="edit-remove">' . t('Delete') . '</label></div>',
    '#value' => 'remove_' . $delta,
    '#attributes' => array(
      'class' => array(
        'delete-tab',
      ),
      'title' => t('Click here to delete this tab.'),
    ),
    '#submit' => array(
      'qt_remove_tab_submit',
    ),
    '#ajax' => array(
      'callback' => 'quicktabs_ajax_callback',
      'wrapper' => 'quicktab-tabs',
      'method' => 'replace',
      'effect' => 'fade',
    ),
    '#limit_validation_errors' => array(),
  );
  return $form;
}