You are here

function _nodewords_tag_value in Nodewords: D6 Meta Tags 6.3

Same name and namespace in other branches
  1. 6.2 nodewords.module \_nodewords_tag_value()
2 calls to _nodewords_tag_value()
nodewords_preprocess_page in ./nodewords.module
Implements hook_preprocess_page().
nodewords_tags_edit_fields in ./nodewords.module
Return the form used to set the meta tags values.

File

./nodewords.module, line 1090
Implement an version that other modules can use to add meta tags.

Code

function _nodewords_tag_value($tag, $value, $options = array()) {
  static $default = NULL;
  $options += _nodewords_get_default_metatags_type();
  $id = $options['id'];
  $sid = $options['sid'];
  $type = $options['type'];
  if (!isset($default[$type][$id][$sid])) {
    $default_values = array();
    nodewords_load_all_includes('nodewords.hooks.inc');
    drupal_alter('metatags_default_values', $default_values, $options + array(
      'phase' => 'pre_load',
    ));
    if (!empty($default_values)) {
      $default[$type][$id][$sid] = $default_values;
    }
    else {
      $default[$type][$id][$sid] = nodewords_load_tags();
      drupal_alter('metatags_default_values', $default[$type][$id][$sid], $options + array(
        'phase' => 'post_load',
      ));
    }
  }
  if ($type == NODEWORDS_TYPE_DEFAULT) {
    $value = isset($default[$type][$id][$sid][$tag]) ? $default[$type][$id][$sid][$tag] : array();
  }
  else {
    $tags_info = nodewords_get_possible_tags();
    $variable = empty($options['admin']) ? 'nodewords_ui_use_default_value_' . $tag : 'nodewords_admin_use_default_value_' . $tag;
    switch (variable_get($variable, 'empty')) {
      case 'empty':
        $bool = isset($tags_info[$tag]['callback']) && function_exists($function = $tags_info[$tag]['callback'] . '_is_empty');
        if ($bool && $function($value)) {
          $value = isset($default[$type][$id][$sid][$tag]) ? $default[$type][$id][$sid][$tag] : array();
        }
        elseif (!$bool && empty($value['value'])) {
          $value = isset($default[$type][$id][$sid][$tag]) ? $default[$type][$id][$sid][$tag] : array();
        }
        break;
      case 'always':
        $value = isset($default[$type][$id][$sid][$tag]) ? $default[$type][$id][$sid][$tag] : array();
        break;
    }
  }
  return $value;
}