You are here

function contentanalysis_parse_context_node_load in Content Analysis 8

Same name and namespace in other branches
  1. 6 contentanalysis.module \contentanalysis_parse_context_node_load()
  2. 7 contentanalysis.module \contentanalysis_parse_context_node_load()

Normalizes context data inputed from the node_load function

Parameters

$context: Initialized context formatted array

Return value

A normalized context array

1 call to contentanalysis_parse_context_node_load()
contentanalysis_parse_context in ./contentanalysis.module
Inspects context to select a normalizing context parser

File

./contentanalysis.module, line 752

Code

function contentanalysis_parse_context_node_load($context, &$analysis) {
  if (isset($context['node']) && is_object($context['node'])) {
    $node = $context['node'];
  }
  elseif ($context['nid']) {
    $node = node_load($context['nid']);
    if (!$node) {
      $msg = t('Nid @nid is invalid.', array(
        '@nid' => $context['nid'],
      ));
      $analysis['messages'][] = contentanalysis_format_message($msg, 'error');
      return $context;
    }
    $context['node'] = $node;
  }
  else {
    $msg = t('A valid node/nid was not submitted.');
    $analysis['messages'][] = contentanalysis_format_message($msg, 'error');
    return $context;
  }
  $context['node_type'] = $node->type;
  $context['title'] = !is_null($context['title']) ? $context['title'] : $node->title;
  if (is_null($context['page_title'])) {
    $context_title = $context['title'];
    $context_page_title = $context['title'];
    if (module_exists('page_title')) {
      $page_title_pattern = variable_get('page_title_type_' . (isset($node->type) ? $node->type : ''), '');
      if (empty($page_title_pattern)) {
        $page_title_pattern = variable_get('page_title_default', '[current-page:page-title] | [site:name]');
      }

      //$page_title_pattern = str_replace('[page-title]', (($context_page_title && (!is_null($context_page_title)))?$context_page_title:$context_title), $page_title_pattern);

      //$page_title_pattern = str_replace('[title]', check_plain($context_title), $page_title_pattern);

      //$page_title_pattern = str_replace('[title-raw]', $context_title, $page_title_pattern);
      $types = array();
      if (isset($node)) {
        $types['node'] = $node;
      }
      $types['page_title'] = NULL;
      $context['page_title'] = token_replace($page_title_pattern, $types);
    }
  }
  else {
    $context['page_title'] = $context['title'] ? $context['title'] : $node->title;
  }
  $context['node_body'] = $context['body'];
  $node_view = node_view($context['node']);
  if (isset($node_view['body'][0]['#markup'])) {
    $context['body'] = $node_view['body'][0]['#markup'];
  }

  // prepend node title
  if (variable_get('contentanalysis_node_parse_nodetitle_prepend', CONTENTANALYSIS_NODE_PARSE_NODETITLE_PREPEND_DEFAULT)) {
    $h = $context['title'];
    $p = variable_get('contentanalysis_node_parse_nodetitle_tags', CONTENTANALYSIS_NODE_PARSE_NODETITLE_TAGS_DEFAULT);
    if (strpos($p, '[node:title]') !== FALSE) {
      $h = str_replace('[node:title]', $h, $p);
    }
    $context['body'] = $h . "\n" . $context['body'];
  }
  if (is_null($context['body_notags'])) {
    $context['body_notags'] = strip_tags($context['body']);
  }

  // get metatag context
  if (isset($node->metatags['keywords']['value'])) {
    $context['meta_keywords'] = $node->metatags['keywords']['value'];
  }
  if (isset($node->metatags['description']['value'])) {
    $context['meta_description'] = $node->metatags['description']['value'];
  }
  $context = contentanalysis_parse_context_metatags($context);
  if (is_null($context['path'])) {
    $path = 'node/' . $context['nid'];
    $path_alias = drupal_get_path_alias($path);
    $context['path'] = $path_alias ? $path_alias : $path;
  }
  if (is_null($context['url'])) {
    $url = 'http';
    if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") {
      $url .= "s";
    }
    $url .= "://";
    if ($_SERVER["SERVER_PORT"] != "80") {
      $url .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"];
    }
    else {
      $url .= $_SERVER["SERVER_NAME"];
    }
    $url .= base_path();
    $url .= $context['path'];
    $context['url'] = $url;
  }
  return $context;
}