';
foreach ($attributes as $name => $value) {
$nameraw = $name;
$name = $t->getTranslator()->getAttributeTranslation($parentStr . $nameraw);
if (preg_match('/^child_/', $nameraw)) {
$parentName = preg_replace('/^child_/', '', $nameraw);
foreach($value AS $child) {
$str .= '' . present_attributes($t, $child, $parentName) . ' |
';
}
} else {
if (sizeof($value) > 1) {
$str .= '';
if ($nameraw !== $name)
$str .= htmlspecialchars($name).' ';
$str .= ''.htmlspecialchars($nameraw).'';
$str .= ' | ';
foreach ($value AS $listitem) {
if ($nameraw === 'jpegPhoto') {
$str .= ' . ') ';
} else {
$str .= '- ' . present_assoc($listitem) . '
';
}
}
$str .= ' |
';
} elseif(isset($value[0])) {
$str .= '';
if ($nameraw !== $name)
$str .= htmlspecialchars($name).' ';
$str .= ''.htmlspecialchars($nameraw).'';
$str .= ' | ';
if ($nameraw === 'jpegPhoto') {
$str .= ' . ') |
';
} elseif (is_a($value[0], 'DOMNodeList')) {
// try to see if we have a NameID here
$n = $value[0]->length;
for ($idx = 0; $idx < $n; $idx++) {
$elem = $value[0]->item($idx);
/* @var DOMElement $elem */
if (!($elem->localName === 'NameID' && $elem->namespaceURI === \SAML2\Constants::NS_SAML)) {
continue;
}
$nameID = new \SAML2\XML\saml\NameID($elem);
$eptid = array(
'NameID' => array($nameID->value),
);
if (!empty($nameID->Format)) {
$eptid['Format'] = array($nameID->Format);
}
if (!empty($nameID->NameQualifier)) {
$eptid['NameQualifier'] = array($nameID->NameQualifier);
}
if (!empty($nameID->SPNameQualifier)) {
$eptid['SPNameQualifier'] = array($nameID->SPNameQualifier);
}
$str .= '';
$str .= present_assoc($eptid);
break; // we only support one NameID here
}
$str .= ' | ';
} else {
$str .= '' . htmlspecialchars($value[0]) . ' | ';
}
}
}
$str .= "\n";
}
$str .= '
';
return $str;
}