You are here

function clean_markup_panels_clean_element_region_settings_form in Clean Markup 7.2

Same name and namespace in other branches
  1. 7.3 modules/clean_markup_panels/plugins/styles/clean/clean_element.inc \clean_markup_panels_clean_element_region_settings_form()

Form constructor for the region settings form.

You see this when you click on the gear in the top-left of a region, click "Change" under "Style" and choose "Clean panel markup"; or when you click "Display settings" on the panel itself, click "Change" under "Style" and choose "Clean panel markup".

1 string reference to 'clean_markup_panels_clean_element_region_settings_form'
clean_element.inc in modules/clean_markup_panels/plugins/styles/clean/clean_element.inc
Clean markup panels clean element panels style.

File

modules/clean_markup_panels/plugins/styles/clean/clean_element.inc, line 310
Clean markup panels clean element panels style.

Code

function clean_markup_panels_clean_element_region_settings_form($style_settings) {
  $settings = array();
  $form = array();

  // Set defaults.
  if (array_key_exists('clean_markup', $style_settings) && !empty($style_settings['clean_markup'])) {
    $settings = $style_settings['clean_markup'];
  }
  $settings += array(
    'region_wrapper' => 'div',
    'enable_inner_div' => FALSE,
    'additional_region_classes' => implode(' ', array(
      '',
    )),
    'additional_region_attributes' => '',
    'pane_separators' => FALSE,
  );
  $optional_wrapper_elements = _clean_markup_get_html_wrapper_elements(TRUE);

  // Show the config form to the user if they're allowed to modfiy it.
  if (user_access('administer clean markup panel region settings')) {
    $form['clean_markup'] = array(
      '#type' => 'fieldset',
      '#title' => t('Clean markup options'),
    );
    $form['clean_markup']['region_wrapper'] = array(
      '#type' => 'select',
      '#title' => t('Region wrapper markup'),
      '#description' => t('Choose the HTML element to wrap the region.'),
      '#default_value' => $settings['region_wrapper'],
      '#options' => $optional_wrapper_elements,
    );
    $form['clean_markup']['additional_region_classes'] = array(
      '#type' => 'textfield',
      '#title' => t('Additional region classes'),
      '#description' => t('Additional classes to set on the region wrapper.'),
      '#default_value' => $settings['additional_region_classes'],
      '#states' => array(
        'invisible' => array(
          ':input[name="settings[clean_markup][region_wrapper]"]' => array(
            'value' => CLEAN_MARKUP_NO_ELEMENT,
          ),
        ),
      ),
    );
    $form['clean_markup']['additional_region_attributes'] = array(
      '#type' => 'textfield',
      '#title' => t('Additional attributes'),
      '#description' => t('Additional attributes to set on the region wrapper (i.e. <code>role="navigation"</code>). Text entered here will not be sanitized.') . '<br />' . t('While this is a powerful and flexible feature if used by a trusted user with HTML experience, it is a security risk in the hands of a malicious or inexperienced user.'),
      '#default_value' => $settings['additional_region_attributes'],
      '#states' => array(
        'invisible' => array(
          ':input[name="settings[clean_markup][region_wrapper]"]' => array(
            'value' => CLEAN_MARKUP_NO_ELEMENT,
          ),
        ),
      ),
    );
    if (module_exists('token')) {
      $form['clean_markup']['token_help'] = array(
        '#title' => t('Replacement patterns'),
        '#type' => 'fieldset',
        '#collapsible' => TRUE,
        '#collapsed' => TRUE,
        '#description' => t('Prefer raw-text replacements for text to avoid problems with HTML entities!'),
        '#states' => array(
          'invisible' => array(
            ':input[name="settings[clean_markup][region_wrapper]"]' => array(
              'value' => CLEAN_MARKUP_NO_ELEMENT,
            ),
          ),
        ),
      );
      $form['clean_markup']['token_help']['help'] = array(
        '#value' => theme('token_tree', array(
          'global',
        ), TRUE, TRUE),
      );
      $form['clean_markup']['token_help']['help']['tokens'] = array(
        '#theme' => 'token_tree',
        '#token_types' => array(
          'global',
        ),
        '#global_types' => TRUE,
        '#click_insert' => TRUE,
      );
    }
    $form['clean_markup']['enable_inner_div'] = array(
      '#type' => 'checkbox',
      '#title' => t('Enable inner div'),
      '#description' => t('Specify if you want an inner div element inside the main region wrapper.'),
      '#default_value' => $settings['enable_inner_div'],
      '#states' => array(
        'invisible' => array(
          ':input[name="settings[clean_markup][region_wrapper]"]' => array(
            'value' => CLEAN_MARKUP_NO_ELEMENT,
          ),
        ),
      ),
    );
    $form['clean_markup']['pane_separators'] = array(
      '#type' => 'checkbox',
      '#title' => t('Add separators between panes'),
      '#description' => t('Place separator divs between panes.'),
      '#default_value' => $settings['pane_separators'],
    );
  }
  else {
    drupal_set_message(t('You do not have permission to modify these clean markup settings.'), 'warning');
    $form['clean_markup']['region_wrapper'] = array(
      '#type' => 'value',
      '#value' => $settings['region_wrapper'],
    );
    $form['clean_markup']['additional_region_classes'] = array(
      '#type' => 'value',
      '#value' => $settings['additional_region_classes'],
    );
    $form['clean_markup']['additional_region_attributes'] = array(
      '#type' => 'value',
      '#value' => $settings['additional_region_attributes'],
    );
    $form['clean_markup']['enable_inner_div'] = array(
      '#type' => 'value',
      '#value' => $settings['enable_inner_div'],
    );
    $form['clean_markup']['pane_separators'] = array(
      '#type' => 'value',
      '#value' => $settings['pane_separators'],
    );
  }
  return $form;
}