1.20.x block.class.inc Block::form(&$form, &$form_state)

Build the settings form for editing this block.

File

modules/layout/includes/block.class.inc, line 223
A class that wraps around a block to store settings information.

Class

Block
@file A class that wraps around a block to store settings information.

Code

function form(&$form, &$form_state) {
  /* @var Layout $layout */
  $layout = $form_state['layout'];
  $contexts = $layout->getContexts();

  $block_info = $this->getBlockInfo();
  $current_context_settings = isset($this->settings['contexts']) ? $this->settings['contexts'] : array();

  $form['contexts'] = layout_contexts_form_element($contexts, $current_context_settings, $block_info);

  $form['title_display']['#tree'] = FALSE;
  $form['title_display']['title_display'] = array(
    '#type' => 'select',
    '#title' => t('Block title type'),
    '#options' => array(
      LAYOUT_TITLE_DEFAULT => t('Default'),
      LAYOUT_TITLE_CUSTOM => t('Custom'),
      LAYOUT_TITLE_NONE => t('None'),
    ),
    '#default_value' => $this->settings['title_display'],
  );
  $form['title_display']['title'] = array(
    '#type' => 'textfield',
    '#default_value' => $this->settings['title'],
    '#title' => t('Custom title'),
    '#states' => array(
      'visible' => array(
        'form.layout-block-configure-form :input[name="title_display"]' => array('value' => LAYOUT_TITLE_CUSTOM),
      ),
    ),
    '#maxlength' => 255,
  );
  $actions_weight = $form['actions']['#weight'];
  $form['admin_label'] = array(
    '#type' => 'fieldset',
    '#title' => t('Admin label'),
    '#tree' => FALSE,
    '#collapsed' => empty($this->settings['admin_label']),
    '#collapsible' => TRUE,
    '#weight' => $actions_weight - 1,
    '#access' => $this->module != 'block',
  );
  $form['admin_label']['admin_label'] = array(
    '#type' => 'textfield',
    '#default_value' => isset($this->settings['admin_label']) ? $this->settings['admin_label'] : '',
    '#title' => t('Admin label'),
    '#description' => t('Used to identify the block on layout pages.'),
    '#maxlength' => 255,
  );
  $form['admin_label']['admin_description'] = array(
    '#type' => 'textfield',
    '#title' => t('Admin description'),
    '#default_value' => isset($this->settings['admin_description']) ? $this->settings['admin_description'] : '',
    '#maxlength' => 128,
    '#description' => t('This text is used only in administrative interfaces. It will not be shown to site visitors.<br />Allowed HTML tags: @tags', array('@tags' => _filter_xss_display_allowed_tags())),
  );
}