Subversion Repositories Applications.papyrus

Compare Revisions

Problem with comparison.

Ignore whitespace Rev HEAD → Rev 375

/trunk/api/text/wiki_papyrus/Render/Xhtml/Plan.php
New file
0,0 → 1,92
<?php
 
class Text_Wiki_Render_Xhtml_Plan extends Text_Wiki_Render {
/**
*
* Renders a token into text matching the requested format.
*
* @access public
*
* @param array $options The "options" portion of the token (second
* element).
*
* @return string The text rendered from the token options.
*
*/
function token($options)
{
// Initialisation des variables
$bdd =& $GLOBALS['_GEN_commun']['pear_db'];
$sortie = '';
$sites = $options['site'];
// Récupération de l'affichage ou pas des raccourcis
if (isset($options['permalien'])) {
$permalien = $options['permalien'];
}
$tab_site = array_map('trim', explode(',', $sites));
foreach ($tab_site as $cle => $site) {
if (count($tab_site) > 1) {
$aso_site = GEN_lireInfoSitePrincipalCodeAlpha($bdd, $site, DB_FETCHMODE_ASSOC);
if (!empty($aso_site['gs_titre'])) {
$titre = $aso_site['gs_titre'];
} else {
$titre = $aso_site['gs_nom'];
}
$sortie .= '<h2>'.htmlentities($titre).'</h2>'."\n";
}
$sortie .= '<ul class="plan_site_'.$site.'" >'."\n";
$aso_menus = GEN_retournerTableauMenusSiteCodeAlpha($bdd, $site);
$sortie .= $this->parserTableauMenus($aso_menus, $permalien);
$sortie .= '</ul>'."\n";
}
return $sortie;
}
function parserTableauMenus($aso_menus, $permalien)
{
$sortie = '';
// Création de l'url
foreach ($aso_menus as $menu_id => $menu_valeur) {
if ( $menu_valeur['gm_date_fin_validite'] == ''
|| $menu_valeur['gm_date_fin_validite'] == '0000-00-00 00:00:00'
|| strtotime($menu_valeur['gm_date_fin_validite']) > time()) {
$sortie .= '<li>';
// Création de l'url
$une_url =& new Pap_URL('http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
$une_url->setId($menu_id);
// Construction de l'attribut title
$title = '';
if (!empty($menu_valeur['gm_titre'])) {
$title = ' title="'.htmlentities($menu_valeur['gm_titre']).'"';
} elseif (!empty($menu_valeur['gm_titre_alternatif'])) {
$title = ' title="'.htmlentities($menu_valeur['gm_titre_alternatif']).'"';
}
// Construction du lien
$sortie .= '<a href="'.$une_url->getURL().'"'.$title.'>'.htmlentities($menu_valeur['gm_nom']).'</a>';
// Nous affichons ou pas le permalien
if ($permalien) {
$une_url->setPermalien(true);
$sortie .= ' <span class="plan_permalien">'.'('.$une_url->getURL().')'.'</span>';
$une_url->setPermalien(false);
}
// Nous ajoutons les sous-menus s'il y en a.
$retour = $this->parserTableauMenus($menu_valeur['sous_menus'], $permalien);
if ($retour != '') {
$sortie .= "\n".'<ul>'."\n".$retour."\n".'</ul>'."\n";
}
$sortie .= '</li>'."\n";
}
}
return $sortie;
}
}
?>