1) { $str = ''; return $str; } else { return htmlspecialchars($attr[0]); } } function present_assoc($attr) { if (is_array($attr)) { $str = '
'; foreach ($attr AS $key => $value) { $str .= "\n" . '
' . htmlspecialchars($key) . '
' . present_list($value) . '
'; } $str .= '
'; return $str; } else { return htmlspecialchars($attr); } } function present_attributes(SimpleSAML_XHTML_Template $t, $attributes, $nameParent) { $alternate = array('odd', 'even'); $i = 0; $parentStr = (strlen($nameParent) > 0)? strtolower($nameParent) . '_': ''; $str = (strlen($nameParent) > 0)? '': '
'; 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 .= ''; } } else { if (sizeof($value) > 1) { $str .= ''; } elseif(isset($value[0])) { $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 .= ''; } else { $str .= ''; } } } $str .= "\n"; } $str .= '
' . present_attributes($t, $child, $parentName) . '
'; if ($nameraw !== $name) $str .= htmlspecialchars($name).'
'; $str .= ''.htmlspecialchars($nameraw).''; $str .= '
    '; foreach ($value AS $listitem) { if ($nameraw === 'jpegPhoto') { $str .= '
  • '; } else { $str .= '
  • ' . present_assoc($listitem) . '
  • '; } } $str .= '
'; if ($nameraw !== $name) $str .= htmlspecialchars($name).'
'; $str .= ''.htmlspecialchars($nameraw).''; $str .= '
'; $str .= present_assoc($eptid); break; // we only support one NameID here } $str .= '
' . htmlspecialchars($value[0]) . '
'; return $str; }