<?php
$faventry = NULL;
foreach( $this->data['idplist'] AS $tab => $slist) {
if (!empty($this->data['preferredidp']) && array_key_exists($this->data['preferredidp'], $slist))
$faventry = $slist[$this->data['preferredidp']];
}
if(!array_key_exists('header', $this->data)) {
$this->data['header'] = 'selectidp';
}
$this->data['header'] = $this->t($this->data['header']);
$this->data['jquery'] = array('version' => '1.6', 'core' => TRUE, 'ui' => TRUE, 'css' => TRUE);
$this->data['head'] = '<link rel="stylesheet" media="screen" type="text/css" href="' . SimpleSAML_Module::getModuleUrl('discopower/style.css') . '" />';
$this->data['head'] .= '<script type="text/javascript" src="' . SimpleSAML_Module::getModuleUrl('discopower/js/jquery.livesearch.js') . '"></script>';
$this->data['head'] .= '<script type="text/javascript" src="' . SimpleSAML_Module::getModuleUrl('discopower/js/' . $this->data['score'] . '.js') . '"></script>';
$this->data['head'] .= '<script type="text/javascript">
$(document).ready(function() {
$("#discotabs").tabs({ selected: ' . $this->data['defaulttab'] . ' }); ';
$i = 0;
foreach ($this->data['idplist'] AS $tab => $slist) {
$this->data['head'] .= "\n" . '$("#query_' . $tab . '").liveUpdate("#list_' . $tab . '")' .
(($i++ == 0) && (empty($faventry)) ? '.focus()' : '') .
';';
}
$this->data['head'] .= '
});
</script>';
if (!empty($faventry)) $this->data['autofocus'] = 'favouritesubmit';
$this->includeAtTemplateBase('includes/header.php');
// foreach ($this->data['idplist'] AS $slist) {
// foreach ($slist AS $idpentry) {
// if (isset($idpentry['name']))
// $this->includeInlineTranslation('idpname_' . $idpentry['entityid'], $idpentry['name']);
// if (isset($idpentry['description']))
// $this->includeInlineTranslation('idpdesc_' . $idpentry['entityid'], $idpentry['description']);
// }
// }
//
function showEntry($t, $metadata, $favourite = FALSE) {
$basequerystring = '?' .
'entityID=' . urlencode($t->data['entityID']) . '&' .
'return=' . urlencode($t->data['return']) . '&' .
'returnIDParam=' . urlencode($t->data['returnIDParam']) . '&idpentityid=';
$extra = ($favourite ? ' favourite' : '');
$html = '<a class="metaentry' . $extra . '" href="' . $basequerystring . urlencode($metadata['entityid']) . '">';
$html .= '' . htmlspecialchars(getTranslatedName($t, $metadata)) . '';
#print_r($metadata['scopes']);
// if (!empty($idpentry['description'])) {
// $html .= ' <p>' . htmlspecialchars($t->t('idpdesc_' . $metadata['entityid'])) . '<br />';
// }
if(array_key_exists('icon', $metadata) && $metadata['icon'] !== NULL) {
$iconUrl = SimpleSAML_Utilities::resolveURL($metadata['icon']);
$html .= '<img alt="Icon for identity provider" class="entryicon" src="' . htmlspecialchars($iconUrl) . '" />';
}
// $html .= '<input id="preferredidp" type="submit" name="idp_' .
// htmlspecialchars($metadata['entityid']) . '" value="' .
// $t->t('select') . '" /></p>';
$html .= '</a>';
return $html;
}
?>
<?php
function getTranslatedName($t, $metadata) {
# if (is_null($metadata)) throw new Exception();
if (isset($metadata['UIInfo']['DisplayName'])) {
$displayName = $metadata['UIInfo']['DisplayName'];
assert('is_array($displayName)'); // Should always be an array of language code -> translation.
if (!empty($displayName)) {
return $t->getTranslation($displayName);
}
}
if (array_key_exists('name', $metadata)) {
if (is_array($metadata['name'])) {
return $t->getTranslation($metadata['name']);
} else {
return $metadata['name'];
}
}
return $metadata['entityid'];
}
if (!empty($faventry)) {
echo('<div class="favourite">');
echo($this->t('previous_auth'));
echo(' <strong>' . htmlspecialchars(getTranslatedName($this, $faventry)) . '</strong>');
echo('
<form id="idpselectform" method="get" action="' . $this->data['urlpattern'] . '">
<input type="hidden" name="entityID" value="' . htmlspecialchars($this->data['entityID']) . '" />
<input type="hidden" name="return" value="' . htmlspecialchars($this->data['return']) . '" />
<input type="hidden" name="returnIDParam" value="' . htmlspecialchars($this->data['returnIDParam']) . '" />
<input type="hidden" name="idpentityid" value="' . htmlspecialchars($faventry['entityid']) . '" />
<input type="submit" name="formsubmit" id="favouritesubmit" value="' . $this->t('login_at') . ' ' . htmlspecialchars(getTranslatedName($this, $faventry)) . '" />
</form>');
echo('</div>');
}
?>
<div id="discotabs">
<ul class="tabset_tabs">
<?php
$tabs = array_keys( $this->data['idplist']);
foreach ($tabs AS $tab) {
if(!empty($this->data['idplist'][$tab])) {
echo '<li><a href="#' . $tab . '"><span>' . $this->t('{discopower:tabs:' . $tab . '}') . '</span></a></li> ';
}
}
?>
</ul>
<?php
foreach( $this->data['idplist'] AS $tab => $slist) {
echo '<div id="' . $tab . '">';
if (!empty($slist)) {
// echo 'Favourite :: ' . $this->data['preferredidp'];
// echo '<pre>';
// print_r($slist); exit;
echo(' <div class="inlinesearch">');
echo(' <p>Incremental search...</p>');
echo(' <form id="idpselectform" action="?" method="get"><input class="inlinesearchf" type="text" value="" name="query_' . $tab . '" id="query_' . $tab . '" /></form>');
echo(' </div>');
echo(' <div class="metalist" id="list_' . $tab . '">');
if (!empty($this->data['preferredidp']) && array_key_exists($this->data['preferredidp'], $slist)) {
$idpentry = $slist[$this->data['preferredidp']];
echo (showEntry($this, $idpentry, TRUE));
}
foreach ($slist AS $idpentry) {
if ($idpentry['entityid'] != $this->data['preferredidp']) {
echo (showEntry($this, $idpentry));
}
}
echo(' </div>');
}
echo '</div>';
}
?>
</div>
<?php $this->includeAtTemplateBase('includes/footer.php'); ?>
|