You are here

keywords.inc in Nodewords: D6 Meta Tags 5

Support file for KEYWORDS meta tag.

File

metatags/keywords.inc
View source
<?php

/**
 * @file
 * Support file for KEYWORDS meta tag.
 */
function nodewords_keywords_prepare($type, $ids, $value, $settings) {
  if ($type == 'node' && function_exists('taxonomy_node_get_terms') && count($ids) == 1) {
    if (node_access('view', node_load($ids[0]))) {
      foreach (taxonomy_node_get_terms($ids[0]) as $term) {
        if (in_array($term->vid, $settings['keywords_vids'])) {
          if ($settings['keywords_include_parents']) {
            foreach (taxonomy_get_parents_all($term->tid) as $parent) {
              $value .= ',' . $parent->name;
            }
          }
          else {
            $value .= ',' . $term->name;
          }
        }
      }
    }
  }
  $value .= ',' . $settings['global']['keywords'];
  $value = _nodewords_keywords_uniq($value);
  return $value;
}
function nodewords_keywords_form($type, $value, $settings) {
  return array(
    '#type' => 'textfield',
    '#title' => t('Keywords'),
    '#default_value' => $value,
    '#size' => 60,
    '#maxlength' => $settings['max_size'],
    '#description' => t('Enter a comma separated list of keywords for this page. Avoid duplication of words as this will lower your search engine ranking.'),
  );
}

/*
 * Uniq a string which is a seperated list to items, preserving
 * the order in which they appeared.
 */
function _nodewords_keywords_uniq($text, $max_items = 0, $seperator = ',') {
  if (empty($text)) {
    return $text;
  }
  $items = array_map('trim', explode($seperator, $text));
  $uniq_values = array();
  $uniq_lowers = array();
  foreach ($items as $item) {
    $lower = strtolower($item);
    if (!in_array($lower, $uniq_lowers) && $lower != '') {
      $uniq_values[] = $item;
      $uniq_lowers[] = $lower;
    }
  }
  if ($max_items > 0) {
    $uniq_values = array_slice($uniq_values, 0, $max_items);
  }
  return implode($seperator, $uniq_values);
}

Functions

Namesort descending Description
nodewords_keywords_form
nodewords_keywords_prepare @file Support file for KEYWORDS meta tag.
_nodewords_keywords_uniq