You are here

function _clean_markup_blocks_block_configure_submit in Clean Markup 7.2

Same name and namespace in other branches
  1. 7.3 modules/clean_markup_blocks/clean_markup_blocks.module \_clean_markup_blocks_block_configure_submit()
  2. 7 modules/clean_markup_blocks/clean_markup_blocks.module \_clean_markup_blocks_block_configure_submit()

Form submit handler for block_admin_configure() and block_add_block_form().

This allows us to save our custom options.

1 string reference to '_clean_markup_blocks_block_configure_submit'
clean_markup_blocks_form_alter in modules/clean_markup_blocks/clean_markup_blocks.module
Implements hook_form_alter().

File

modules/clean_markup_blocks/clean_markup_blocks.module, line 160
Provides clean block markup.

Code

function _clean_markup_blocks_block_configure_submit($form, &$form_state) {
  if (user_access('administer clean markup block settings')) {

    // Load defaults.
    $defaults = variable_get('clean_markup_blocks-defaults');
    $valid_wrapper_elements = _clean_markup_get_html_wrapper_elements(TRUE);

    // Get settings for this block.
    $variable_name = _clean_markup_blocks_generate_prefix($form_state['values']['module'], $form_state['values']['delta']);
    $new_block_settings = variable_get($variable_name, $defaults);

    // Match user input with valid wrapper element keys, otherwise user may be
    // trying to XSS.
    $new_block_settings['block_wrapper'] = array_key_exists($form_state['values']['block_wrapper'], $valid_wrapper_elements) ? $form_state['values']['block_wrapper'] : $defaults['block_wrapper'];
    $new_block_settings['title_wrapper'] = array_key_exists($form_state['values']['title_wrapper'], $valid_wrapper_elements) ? $form_state['values']['title_wrapper'] : $defaults['title_wrapper'];
    $new_block_settings['content_wrapper'] = array_key_exists($form_state['values']['content_wrapper'], $valid_wrapper_elements) ? $form_state['values']['content_wrapper'] : $defaults['content_wrapper'];

    // @ATTENTION: We assume that check_plain will be run before this value is
    // output; we're not running it here.
    $new_block_settings['additional_block_classes'] = $form_state['values']['additional_block_classes'];

    // @ATTENTION: This value will not be run through check_plain when output.
    $new_block_settings['additional_block_attributes'] = $form_state['values']['additional_block_attributes'];

    // Drupal 7 takes care of ensuring checkboxes that are in the form but were
    // submitted as FALSE show up in $form_state['values'] as FALSE even though
    // they weren't in the POST data. :D.
    $new_block_settings['enable_inner_div'] = (bool) $form_state['values']['enable_inner_div'];
    $new_block_settings['title_hide'] = (bool) $form_state['values']['title_hide'];
    $new_block_settings['block_html_id_as_class'] = (bool) $form_state['values']['block_html_id_as_class'];
    variable_set($variable_name, $new_block_settings);
  }
}