static function get($xmlText) { $tag = new eZMetaTag(); $tag->decodeXML($xmlText); return $tag; }
static function extractPattern($name, &$oObjectDataMap, $sizeLimit = false) { preg_match_all("/\\{[^\\{]+\\}/", $name, $dynamics); foreach ($dynamics[0] as $dynamic) { $patternAttribute = substr($dynamic, 1, strlen($dynamic) - 2); if ($delimiterPosition = strpos($patternAttribute, ".")) { list($relatedObject, $relatedAttribute) = explode('.', $patternAttribute); $relations = $oObjectDataMap[$relatedObject]->value(); $relatedNames = array(); foreach ($relations['relation_list'] as $relation) { $relatedObject = eZContentObject::fetch($relation['contentobject_id']); switch ($relatedAttribute) { case 'name': $relatedNames[] =& $relatedObject->name(); break; default: $relatedDataMap =& $relatedObject->dataMap(); if (is_object($relatedDataMap[$relatedAttribute]) && $relatedDataMap[$relatedAttribute]->hasContent()) { $relatedNames[] = eZMetaTag::getTextValueOfAttribute($relatedDataMap[$relatedAttribute]); } break; } } $dynamicValue = implode(', ', $relatedNames); } elseif (is_object($oObjectDataMap[$patternAttribute]) && $oObjectDataMap[$patternAttribute]->hasContent()) { $dynamicValue = eZMetaTag::getTextValueOfAttribute($oObjectDataMap[$patternAttribute]); } else { $siteIni = eZINI::instance(); $siteMetaData = $siteIni->variable('SiteSettings', 'MetaDataArray'); // Special Cases with reserved keywords switch ($dynamic) { case 'SiteMetaName': $dynamicValue = $siteMetaData['title']; break; case 'SiteMetaDescription': $dynamicValue = $siteMetaData['description']; break; case 'SiteMetaKeywords': $dynamicValue = $siteMetaData['keywords']; break; default: // Attribute display is disabled to avoid subversious display when attribute doesn't exist $dynamicValue = ''; break; } } if ($sizeLimit && count($dynamicValue) > $sizeLimit) { $dynamicValue = substr($dynamicValue, 0, $sizeLimit); $pos = strrpos($dynamicValue, " "); if ($pos > 0) { $dynamicValue = substr($dynamicValue, 0, $pos); } unset($pos); } $name = str_replace($dynamic, $dynamicValue, $name); } return $name; }
function title($data_instance, $name = null) { $tag = eZMetaTag::get($data_instance->attribute('data_text')); return $tag->getName(); }