You are here

function accordion_block_config_settings in Accordion Blocks 7.2

Same name and namespace in other branches
  1. 7.3 accordion_blocks.module \accordion_block_config_settings()

Implements menu callback for the admin settings form for accordion_block

1 string reference to 'accordion_block_config_settings'
accordion_blocks_menu in ./accordion_blocks.module
Implements hook_menu()

File

./accordion_blocks.module, line 198

Code

function accordion_block_config_settings($form, &$form_state, $formtype, $accordion_block = NULL) {
  $default_values = $accordion_block;
  $form = array();
  if ($formtype == 'edit') {
    $form['id'] = array(
      '#type' => 'value',
      '#value' => isset($accordion_block['id']) ? $accordion_block['id'] : 0,
    );
  }
  $form['accordion_block_title'] = array(
    '#type' => 'textfield',
    '#title' => t('Title'),
    '#default_value' => $default_values['title'],
    '#description' => t('Title of the accordion block.'),
    '#required' => TRUE,
  );
  $data = unserialize($default_values['content']);
  $form['accordion_block_content'] = array(
    '#type' => 'fieldset',
    '#title' => t('Accordion Block Content'),
    '#prefix' => '<div id="accordion_block_wrapper">',
    '#suffix' => '</div>',
  );
  $blocks = accordion_block_get_all_blocks();
  if (empty($form_state['accordion_blocks'])) {
    $form_state['accordion_blocks'] = count($data);
  }
  for ($block_count = 0; $block_count < $form_state['accordion_blocks']; $block_count++) {
    $form['accordion_block_content']['type']["block_" . $block_count] = array(
      '#type' => 'select',
      '#title' => t('Block content'),
      '#default_value' => $data["block_" . $block_count],
      '#description' => t('Add type of accordion block content.'),
      '#options' => $blocks,
    );
  }
  $form['accordion_block_content']['add_name'] = array(
    '#type' => 'submit',
    '#value' => t('Add one more'),
    '#submit' => array(
      'accordion_block_add_more_blocks',
    ),
    '#ajax' => array(
      'callback' => 'accordion_block_add_more_blocks_callback',
      'wrapper' => 'accordion_block_wrapper',
    ),
  );
  if ($form_state['accordion_blocks'] > 1) {
    $form['accordion_block_content']['remove_name'] = array(
      '#type' => 'submit',
      '#value' => t('Remove one'),
      '#submit' => array(
        'accordion_block_add_more_remove_one',
      ),
      '#ajax' => array(
        'callback' => 'accordion_block_add_more_blocks_callback',
        'wrapper' => 'accordion_block_wrapper',
      ),
    );
  }
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Accordion Block Submit'),
  );
  $form['#validate'][] = 'accordion_block_validate';
  return $form;
}