You are here

function block_titlelink_preprocess_block in Block Title Link 7

Same name and namespace in other branches
  1. 8 block_titlelink.module \block_titlelink_preprocess_block()
  2. 6.2 block_titlelink.module \block_titlelink_preprocess_block()
  3. 6 block_titlelink.module \block_titlelink_preprocess_block()

Implements hook_preprocess_block().

File

./block_titlelink.module, line 124
module for adding a link to a block title

Code

function block_titlelink_preprocess_block(&$vars) {
  global $user;
  $data = _block_titlelink_get_data($vars['block']);
  if ($data) {
    $vars['block']->title_link = isset($data['url']) ? trim($data['url']) : NULL;
    $vars['block']->title_link_title = isset($data['title']) ? check_plain($data['title']) : NULL;
    $vars['block']->title_link_target = isset($data['target']) ? $data['target'] : NULL;

    // Add Tokens
    if (function_exists('token_replace')) {
      $token_params = array(
        'user' => $user,
      );
      $vars['block']->title_link = token_replace($vars['block']->title_link, $token_params);
      $vars['block']->title_link_title = token_replace($vars['block']->title_link_title, $token_params);
    }

    // PHP Eval
    if (module_exists('php')) {
      $vars['block']->title_link = php_eval($vars['block']->title_link);
    }
    $display = isset($data['display']) ? $data['display'] : TRUE;
    if (!empty($vars['block']->title_link) && $display) {
      $attributes = array(
        'attributes' => array(
          'class' => array(
            'block-title-link',
          ),
        ),
        'html' => TRUE,
      );
      if (!empty($vars['block']->title_link_title)) {
        $attributes['attributes']['title'] = $vars['block']->title_link_title;
      }
      if (!empty($vars['block']->title_link_target)) {
        $attributes['attributes']['target'] = $vars['block']->title_link_target;
      }

      // Allow Drupal to parse the URL and provide us with a keyed array
      // that we can hand off to l()
      $parsed_url = drupal_parse_url($vars['block']->title_link);

      // Add in the query string if one exists.
      if (!empty($parsed_url['query'])) {
        $attributes['query'] = $parsed_url['query'];
      }

      // Build the fragment onto the end if it is present.
      if (!empty($parsed_url['fragment'])) {
        $attributes['fragment'] = $parsed_url['fragment'];
      }
      $vars['block']->subject = l(t($vars['block']->subject), $parsed_url['path'], $attributes);
    }
  }
}