You are here

function _service_links_get_tags in Service links 7.2

Same name and namespace in other branches
  1. 6.2 service_links.module \_service_links_get_tags()

Fill an array with tags and the content to substitute.

3 calls to _service_links_get_tags()
panel_service_links_render in plugins/content_types/service_links.inc
Helper function to render the output of the pane.
service_links_render in ./service_links.module
Function that render all the selected services.
service_links_render_some in ./service_links.module
This function render only the services requested by their id.

File

./service_links.module, line 676
Adds social network links to the content.

Code

function _service_links_get_tags($node, &$settings) {
  if (!empty($node)) {
    $title = _service_links_get_node_title($node, $settings);
    $path = _service_links_get_node_path($node);
    $url = url("{$path}", array(
      'absolute' => TRUE,
      'query' => service_links_get_query($settings['text_to_append']),
    ));
    $query = drupal_get_path_alias("node/{$node->nid}");
    $body = field_get_items('node', $node, 'body');
    $teaser = $body ? strip_tags(text_summary($body[0]['value'])) : '';
    $nid = $node->nid;
  }
  elseif (isset($settings['data'])) {
    $title = isset($settings['data']['title']) ? $settings['data']['title'] : '';
    $url = isset($settings['data']['url']) ? $settings['data']['url'] : '';
    $query = isset($settings['data']['query']) ? $settings['data']['query'] : '';
    $teaser = isset($settings['data']['teaser']) ? $settings['data']['teaser'] : '';
    $nid = isset($settings['data']['node_id']) ? $settings['data']['node_id'] : NULL;
  }
  else {
    $title = drupal_get_title();
    $url = _service_links_get_page_url(NULL, $settings);

    // The query shouldn't follow the front_page alias but point the original page.
    $query = drupal_get_normal_path($_GET['q']);
    $teaser = '';
    $nid = NULL;
  }
  $source = variable_get('site_name', 'Drupal');
  $long_url = $url;
  $front_page = url('<front>', array(
    'absolute' => TRUE,
  ));
  if (variable_get('clean_url', 0) == 0 && strpos($front_page, '?q=') === FALSE) {
    $front_page .= '?q=';
  }
  else {

    // Ensure a trailing slash on multilingual sites with clean url on.
    $front_page = preg_replace('/([0-9a-z-_]+)$/i', '\\1/', $front_page);
  }
  switch ($settings['short_links_use']) {
    case SERVICE_LINKS_SHORT_URL_USE_NEVER:
      $short_url = $url;
      break;
    case SERVICE_LINKS_SHORT_URL_USE_WHEN_REQUESTED:
      $short_url = service_links_short_url($url, $nid);
      break;
    case SERVICE_LINKS_SHORT_URL_USE_ALWAYS:
      $short_url = service_links_short_url($url, $nid);
      $url = $short_url;
      break;
  }
  $settings['tag'] = array(
    'raw-encoded-title' => '<raw-encoded-title>',
    'raw-encoded-url' => '<raw-encoded-url>',
    'raw-encoded-teaser' => '<raw-encoded-teaser>',
    'raw-encoded-short-url' => '<raw-encoded-short-url>',
    'raw-encoded-long-url' => '<raw-encoded-long-url>',
    'raw-encoded-query' => '<raw-encoded-query>',
    'raw-encoded-source' => '<raw-encoded-source>',
    'encoded-title' => '<encoded-title>',
    'encoded-url' => '<encoded-url>',
    'encoded-teaser' => '<encoded-teaser>',
    'encoded-short-url' => '<encoded-short-url>',
    'encoded-long-url' => '<encoded-long-url>',
    'encoded-query' => '<encoded-query>',
    'encoded-source' => '<encoded-source>',
    'teaser' => '<teaser>',
    'short-url' => '<short-url>',
    'long-url' => '<long-url>',
    'source' => '<source>',
    'node-id' => '<node-id>',
    'query' => '<query>',
    'url' => '<url>',
    'title' => '<title>',
    'front-page' => '<front-page>',
  );
  $settings['subst'] = array(
    //'raw-encoded-title' => rawurlencode($title),
    'raw-encoded-title' => $title,
    //'raw-encoded-url' => rawurlencode($url),
    'raw-encoded-url' => $url,
    //'raw-encoded-teaser' => rawurlencode($teaser),
    'raw-encoded-teaser' => $teaser,
    //'raw-encoded-short-url' => rawurlencode($short_url),
    'raw-encoded-short-url' => $short_url,
    //'raw-encoded-long-url' => rawurlencode($long_url),
    'raw-encoded-long-url' => $long_url,
    //'raw-encoded-query' => rawurlencode($query),
    'raw-encoded-query' => $query,
    //'raw-encoded-source' => rawurlencode($source),
    'raw-encoded-source' => $source,
    //'encoded-title' => urlencode($title),
    'encoded-title' => $title,
    //'encoded-url' => urlencode($url),
    'encoded-url' => $url,
    //'encoded-teaser' => urlencode($teaser),
    'encoded-teaser' => $teaser,
    //'encoded-short-url' => urlencode($short_url),
    'encoded-short-url' => $short_url,
    //'encoded-long-url' => urlencode($long_url),
    'encoded-long-url' => $long_url,
    //'encoded-query' => urlencode($query),
    'encoded-query' => $query,
    //'encoded-source' => urlencode($source),
    'encoded-source' => $source,
    //Not needed
    'teaser' => $teaser,
    'short-url' => $short_url,
    'long-url' => $long_url,
    'source' => $source,
    'node-id' => $nid,
    'query' => $query,
    'url' => $url,
    'title' => $title,
    'front-page' => $front_page,
  );

  // Invoke an alter hook to let other modules modify these values if needed.
  drupal_alter('service_links_node_settings', $settings, $node);
}