You are here

service_links.theme.inc in Service links 6.2

Same filename and directory in other branches
  1. 7.2 service_links.theme.inc

Theme functions used by Service Links.

File

service_links.theme.inc
View source
<?php

/**
 * @file
 * Theme functions used by Service Links.
 */

/**
 * Build a single link following the style rules.
 */
function theme_service_links_build_link($text, $url = array(), $image = NULL, $nodelink = FALSE, $style, $attributes = array()) {
  if ($nodelink) {
    $query = isset($url[1]) ? $url[1] : NULL;
    switch ($style) {
      case SERVICE_LINKS_STYLE_TEXT:
        $link = array(
          'title' => $text,
          'href' => $url[0],
          'query' => $query,
          'attributes' => $attributes,
        );
        break;
      case SERVICE_LINKS_STYLE_IMAGE:
        $alt_text = t('!name logo', array(
          '!name' => $text,
        ));
        $link = array(
          'title' => theme('image', service_links_expand_path($image), $alt_text),
          'href' => $url[0],
          'query' => $query,
          'attributes' => $attributes,
          'html' => TRUE,
        );
        break;
      case SERVICE_LINKS_STYLE_IMAGE_AND_TEXT:
        $alt_text = t('!name logo', array(
          '!name' => $text,
        ));
        $link = array(
          'title' => theme('image', service_links_expand_path($image), $alt_text) . ' ' . $text,
          'href' => $url[0],
          'query' => $query,
          'attributes' => $attributes,
          'html' => TRUE,
        );
        break;
      case SERVICE_LINKS_STYLE_EMPTY:
        $link = array(
          'title' => '<span style="display:none;">' . $text . '</span>',
          'href' => $url[0],
          'query' => $query,
          'attributes' => $attributes,
          'html' => TRUE,
        );
        break;
      default:
        $link = theme($style, $text, $url, $image, $nodelink, $attributes);
    }
  }
  else {
    $attributes = array(
      'attributes' => $attributes,
      'query' => isset($url[1]) ? $url[1] : NULL,
    );
    switch ($style) {
      case SERVICE_LINKS_STYLE_TEXT:
        $link = l($text, $url[0], $attributes);
        break;
      case SERVICE_LINKS_STYLE_IMAGE:
        $attributes['html'] = TRUE;
        $alt_text = t('!name logo', array(
          '!name' => $text,
        ));
        $link = l(theme('image', service_links_expand_path($image), $alt_text), $url[0], $attributes);
        break;
      case SERVICE_LINKS_STYLE_IMAGE_AND_TEXT:
        $attributes['html'] = TRUE;
        $alt_text = t('!name logo', array(
          '!name' => $text,
        ));
        $link = l(theme('image', service_links_expand_path($image), $alt_text) . ' ' . $text, $url[0], $attributes);
        break;
      case SERVICE_LINKS_STYLE_EMPTY:
        $attributes['html'] = TRUE;
        $link = l('<span style="display:none;">' . $text . '</span>', $url[0], $attributes);
        break;
      case SERVICE_LINKS_STYLE_FISHEYE:
        $attributes['attributes']['class'] = isset($attributes['attributes']['class']) ? $attributes['attributes']['class'] . ' fisheyeItem' : 'fisheyeItem';
        $attributes['html'] = TRUE;
        $link = l(theme('image', service_links_expand_path($image, 'fisheye', 'icons'), $text, NULL, NULL, FALSE) . '<span>' . $text . '</span>', $url[0], $attributes);
        break;
      default:
        $link = theme($style, $text, $url, $image, $nodelink, $attributes);
    }
  }
  return $link;
}

/**
 * Format the items shown in the node.
 */
function theme_service_links_node_format($links, $label = NULL) {
  if (isset($label) && !empty($label)) {
    return '<div class="service-links"><div class="service-label">' . t('@label', array(
      '@label' => $label,
    )) . ' </div>' . theme('links', $links) . '</div>';
  }
  else {
    return '<div class="service-links">' . theme('links', $links) . '</div>';
  }
}

/**
 * Format the items shown in one of the provided block.
 */
function theme_service_links_block_format($items, $style = SERVICE_LINKS_STYLE_IMAGE_AND_TEXT) {
  if (empty($items)) {
    return;
  }
  switch ($style) {
    case SERVICE_LINKS_STYLE_IMAGE:
      $output = implode(' ', $items);
      break;
    default:
      $output = theme('item_list', array_values($items));
      break;
  }
  return '<div class="service-links">' . $output . '</div>';
}

/**
 * Format the items shown in the Fisheye block.
 */
function theme_service_links_fisheye_format($items) {
  drupal_add_js(service_links_expand_path('interface.js', 'javascript'));
  drupal_add_js(service_links_expand_path('service_links_fisheye.js', 'javascript'));
  drupal_add_css(service_links_expand_path('service_links_fisheye.css', 'css'));
  return "<div class=\"fisheye\"><div class=\"fisheyeContainer\">\r\n" . implode("\r\n", $items) . "\r\n</div></div>";
}

Functions

Namesort descending Description
theme_service_links_block_format Format the items shown in one of the provided block.
theme_service_links_build_link Build a single link following the style rules.
theme_service_links_fisheye_format Format the items shown in the Fisheye block.
theme_service_links_node_format Format the items shown in the node.