public function getMetadata($name = null, $language = null)
{
$convert = function ($metaData) {
if (in_array($metaData["type"], ["asset", "document", "object"]) && is_numeric($metaData["data"])) {
return Element\Service::getElementById($metaData["type"], $metaData["data"]);
}
return $metaData["data"];
};
if ($name) {
if ($language === null) {
if (\Zend_Registry::isRegistered("Zend_Locale")) {
$language = (string) \Zend_Registry::get("Zend_Locale");
}
}
$data = null;
foreach ($this->metadata as $md) {
if ($md["name"] == $name) {
if ($language == $md["language"]) {
return $convert($md);
}
if (empty($md["language"])) {
$data = $md;
}
}
}
if ($data) {
return $convert($data);
}
return null;
}
$metaData = $this->metadata;
if (is_array($metaData)) {
foreach ($metaData as &$md) {
$md = (array) $md;
$md["data"] = $convert($md);
}
}
return $metaData;
}