You are here

function clean_markup_blocks_preprocess_block 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_preprocess_block()
  2. 7 modules/clean_markup_blocks/clean_markup_blocks.module \clean_markup_blocks_preprocess_block()

Implements MODULE_preprocess_HOOK().

File

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

Code

function clean_markup_blocks_preprocess_block(&$vars) {

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

  // Get settings for this block.
  $variable_name = _clean_markup_blocks_generate_prefix($vars['block']->module, $vars['block']->delta);
  $current_block_settings = variable_get($variable_name, $defaults);

  // Copy simple settings into variables.
  $vars['block_wrapper'] = $current_block_settings['block_wrapper'];
  $vars['inner_div'] = $current_block_settings['enable_inner_div'];
  if (module_exists('token')) {
    $vars['additional_attributes'] = token_replace($current_block_settings['additional_block_attributes'], array(
      'global',
    ));
  }
  else {
    $vars['additional_attributes'] = $current_block_settings['additional_block_attributes'];
  }

  // Pad additional_attributes.
  if (!empty($vars['additional_attributes'])) {
    $vars['additional_attributes'] = str_pad($vars['additional_attributes'], strlen($vars['additional_attributes']) + 2, ' ', STR_PAD_BOTH);
  }

  // Convert the additional block classes into an array, then merge into the
  // existing classes array. Note the use of check_plain to prevent XSS.
  $vars['classes_array'] = array_merge($vars['classes_array'], explode(' ', check_plain($current_block_settings['additional_block_classes'])));

  // Only output a title if one is set.
  if ($vars['block']->subject) {
    $vars['title'] = array(
      '#prefix' => $vars['title_prefix'],
      '#suffix' => $vars['title_suffix'],
      '#type' => 'html_tag',
      '#tag' => $current_block_settings['title_wrapper'],
      '#attributes' => isset($vars['title_attributes']) ? $vars['title_attributes'] : array(),
      '#value' => $vars['block']->subject,
    );
    $vars['title']['#attributes']['class'] = array(
      'title',
      'block-title',
    );
    if ($current_block_settings['title_hide']) {
      $vars['title']['#attributes']['class'][] = 'element-invisible';
    }
  }
  else {
    $vars['title'] = '';
  }

  // Only wrap the content if the user wants a wrapper.
  if ($current_block_settings['content_wrapper'] !== CLEAN_MARKUP_NO_ELEMENT) {
    $vars['content'] = array(
      '#type' => 'html_tag',
      '#tag' => $current_block_settings['content_wrapper'],
      '#attributes' => array(
        'class' => array(
          'content',
        ),
      ),
      '#value' => $vars['content'],
    );
    $vars['content']['#attributes'] += $vars['content_attributes_array'];
  }

  // Output the block HTML ID as a class if requested.
  if ($current_block_settings['block_html_id_as_class']) {
    $vars['classes_array'][] = $vars['block_html_id'];
  }
}