1.20.x layout.admin.inc layout_title_settings_form($form, &$form_state, Layout $layout)

Form callback; Configure layout title type.

Related topics

File

modules/layout/layout.admin.inc, line 1229
Admin page callbacks for the Layout module.

Code

function layout_title_settings_form($form, &$form_state, Layout $layout) {
  form_load_include($form_state, 'inc', 'layout', 'layout.admin');

  $form_state['layout'] = $layout;
  $form_state['menu_item'] = NULL;

  $form['title_display']['#tree'] = FALSE;
  $form['title_display']['title_display'] = array(
    '#type' => 'radios',
    '#default_value' => $layout->settings['title_display'],
    '#options' => array(
      LAYOUT_TITLE_DEFAULT => t('Default page title'),
      LAYOUT_TITLE_CUSTOM => t('Custom page title'),
      LAYOUT_TITLE_BLOCK => t('Copy from block'),
      LAYOUT_TITLE_NONE => t('No title'),
    ),
  );

  $form['title_display']['title_display'][LAYOUT_TITLE_DEFAULT]['#description'] = t('The page title will pull from a default source. For example: on the user account page, a username may be used.');
  $form['title_display']['title_display'][LAYOUT_TITLE_CUSTOM]['#description'] = t('Provide a custom page title for this layout.');
  $form['title_display']['title_display'][LAYOUT_TITLE_BLOCK]['#description'] = t('Copy the page title from a block for this layout.');
  $form['title_display']['title_display'][LAYOUT_TITLE_NONE]['#description'] = t('Hide the page title for this layout.');

  $form['title_display']['title'] = array(
    '#type' => 'textfield',
    '#default_value' => $layout->settings['title'],
    '#title' => t('Custom page title'),
    '#description' => t('If left blank, a default title may be used.'),
    '#states' => array(
      'visible' => array(
        ':input[name="title_display"]' => array('value' => LAYOUT_TITLE_CUSTOM),
      ),
    ),
    '#maxlength' => 255,
  );

  $all_blocks = layout_get_block_info();
  $block_options = array();
  foreach ($layout->content as $uuid => $block) {
    $title = $all_blocks[$block->module][$block->delta]['info'];
    if (!empty($title) && $title !== 'Custom block' && !is_a($block, 'PageComponents')) {
      $block_options[$uuid] = $title;
    }
  }
  asort($block_options);

  $form['title_display']['title_block'] = array(
    '#type' => 'select',
    '#default_value' => $layout->settings['title_block'],
    '#title' => t('Block to copy'),
    '#description' => t('The page title will be taken from this block\'s title.'),
    '#states' => array(
      'visible' => array(
        ':input[name="title_display"]' => array('value' => LAYOUT_TITLE_BLOCK),
      ),
    ),
    '#options' => $block_options,
  );

  $form['actions'] = array('#type' => 'actions');
  $form['actions']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save configuration'),
    '#attributes' => array('class' => array('layout-title-button')),
    '#submit' => array(
      'layout_title_settings_form_submit',
    ),
    '#save_in_progress' => TRUE,
    '#ajax' => array(
      'callback' => 'layout_ajax_form_save_title_dialog',
    ),
  );

  return $form;
}