function metatag_token_generate_array in Metatag 7
Generate an array of meta tags for a given entity.
1 call to metatag_token_generate_array()
- metatag_tokens in ./
metatag.tokens.inc - Implements hook_tokens().
File
- ./
metatag.tokens.inc, line 209 - Custom tokens for Metatag.
Code
function metatag_token_generate_array($entity, $entity_type, $bundle) {
if (metatag_entity_supports_metatags($entity_type, $bundle)) {
$token_type = token_get_entity_mapping('entity', $entity_type);
$instance = metatag_get_entity_metatags_instance($entity, $entity_type, $bundle);
$options = array();
$options['token data'][$token_type] = $entity;
$options['entity'] = $entity;
$metatags = array();
if (!empty($entity->metatags)) {
$language = metatag_entity_get_language($entity_type, $entity);
if (!empty($entity->metatags[$language])) {
$metatags = $entity->metatags[$language];
}
}
$metatags += metatag_config_load_with_defaults($instance);
// Process it for entity metatag replacement to avoid infinite recursion.
$metatags = _metatag_token_process_metatag($metatags, $token_type);
$result = array();
foreach ($metatags as $metatag => $data) {
if ($metatag_instance = metatag_get_instance($metatag, $data)) {
$result[$metatag] = $metatag_instance
->getValue($options);
}
}
return $result;
}
return NULL;
}