8    if (is_array($attr) && count($attr) > 1) {
 
   10        foreach ($attr as $value) {
 
   11            $str .= 
'<li>'.htmlspecialchars($attr).
'</li>';
 
   16        return htmlspecialchars($attr[0]);
 
   22    if (is_array($attr)) {
 
   24        foreach ($attr as 
$key => $value) {
 
   25            $str .= 
"\n".
'<dt>'.htmlspecialchars(
$key).
'</dt><dd>'.
present_list($value).
'</dd>';
 
   30        return htmlspecialchars($attr);
 
   37        'NameID' => array($nameID->value),
 
   39    if (!empty($nameID->Format)) {
 
   40        $eptid[
$t->t(
'{status:subject_format}')] = array($nameID->Format);
 
   42    if (!empty($nameID->NameQualifier)) {
 
   43        $eptid[
'NameQualifier'] = array($nameID->NameQualifier);
 
   45    if (!empty($nameID->SPNameQualifier)) {
 
   46        $eptid[
'SPNameQualifier'] = array($nameID->SPNameQualifier);
 
   48    if (!empty($nameID->SPProvidedID)) {
 
   49        $eptid[
'SPProvidedID'] = array($nameID->SPProvidedID);
 
   51    return '<td class="attrvalue">'.present_assoc($eptid);
 
   56    $alternate = array(
'odd', 
'even');
 
   59    $parentStr = (strlen($nameParent) > 0) ? strtolower($nameParent).
'_' : 
'';
 
   60    $str = (strlen($nameParent) > 0) ? 
'<table class="attributes" summary="attribute overview">' :
 
   61        '<table id="table_with_attributes"  class="attributes" summary="attribute overview">';
 
   65        $trans = 
$t->getTranslator();
 
   66        $name = $trans->getAttributeTranslation($parentStr.$nameraw);
 
   68        if (preg_match(
'/^child_/', $nameraw)) {
 
   69            $parentName = preg_replace(
'/^child_/', 
'', $nameraw);
 
   70            foreach ($value as $child) {
 
   71                $str .= 
'<tr class="odd"><td colspan="2" style="padding: 2em">'.
 
   72                    present_attributes(
$t, $child, $parentName).
'</td></tr>';
 
   75            if (
sizeof($value) > 1) {
 
   76                $str .= 
'<tr class="'.$alternate[(
$i++ % 2)].
'"><td class="attrname">';
 
   78                if ($nameraw !== 
$name) {
 
   79                    $str .= htmlspecialchars(
$name).
'<br/>';
 
   81                $str .= 
'<tt>'.htmlspecialchars($nameraw).
'</tt>';
 
   82                $str .= 
'</td><td class="attrvalue"><ul>';
 
   83                foreach ($value as $listitem) {
 
   84                    if ($nameraw === 
'jpegPhoto') {
 
   85                        $str .= 
'<li><img src="data:image/jpeg;base64,'.htmlspecialchars($listitem).
'" /></li>';
 
   87                        $str .= 
'<li>'.present_assoc($listitem).
'</li>';
 
   90                $str .= 
'</ul></td></tr>';
 
   91            } elseif (isset($value[0])) {
 
   92                $str .= 
'<tr class="'.$alternate[(
$i++ % 2)].
'"><td class="attrname">';
 
   93                if ($nameraw !== 
$name) {
 
   94                    $str .= htmlspecialchars(
$name).
'<br/>';
 
   96                $str .= 
'<tt>'.htmlspecialchars($nameraw).
'</tt>';
 
   98                if ($nameraw === 
'jpegPhoto') {
 
   99                    $str .= 
'<td class="attrvalue"><img src="data:image/jpeg;base64,'.htmlspecialchars($value[0]).
 
  101                } elseif (is_a($value[0], 
'DOMNodeList')) {
 
  104                    $n = $value[0]->length;
 
  105                    for ($idx = 0; $idx < 
$n; $idx++) {
 
  106                        $elem = $value[0]->item($idx);
 
  108                        if (!($elem->localName === 
'NameID' && $elem->namespaceURI === \
SAML2\Constants::NS_SAML)) {
 
  114                    $str .= 
'</td></tr>';
 
  115                } elseif (is_a($value[0], 
'\SAML2\XML\saml\NameID')) {
 
  117                    $str .= 
'</td></tr>';
 
  119                    $str .= 
'<td class="attrvalue">'.htmlspecialchars($value[0]).
'</td></tr>';
 
present_eptid(\SimpleSAML\Locale\Translate $t, \SAML2\XML\saml\NameID $nameID)
present_list($attr)
Functions used to present a table of attributes and their values.
An exception for terminatinating execution or to throw for unit testing.
Attribute-related utility methods.