Objectif : correction du BUG (lien erroné) lorsque le site hébergeur fait une redirection du port 80.

Cette erreur se produit lorsque l'utilisateur clique sur l'onglet "message" de la bannière (id="userBannerLeft" d'après Firebug)

Comme pour le CMS Drupal, les développeurs de "Claroline" ont découpé l'application en un système de template (à partir de v 1.9) et de classe d'affichage (les vues).

La plupart des classes de vues de la plateforme  se trouvant dans claroline/inc/lib/display  et les templates dans claroline/inc/templates, c'est  là qu'il faut aller chercher le code responsable de l'affichage. Pour la banière, il s'agit du template banner.tpl.php qui est instancié par la classe de vue claroline/inc/lib/display/banner.lib.php.

J'ai reproduit ci-dessous la portion de code du template banner.tpl.php où figure id="userBannerLeft". L'analyse de cet extrait montre que les éléments qui forment le menu (<ul> <li>) sont stockés dans la variable le tableau $userToolListLeft.

<!-- User Banner -->
<div id="userBanner">
    <div id="userBannerLeft">
        <ul class="menu">
            <?php foreach($this->userToolListLeft as $menuItem) : ?>
            <li><span><?php echo $menuItem; ?></span></li>
            <?php endforeach; ?>
            <?php include_dock('userBannerLeft', true); ?>
        </ul>

Le tableau $userToolListLeft se trouve instancié dans la partie de code reproduite ci-dessous extraite du fichier claroline/inc/lib/display/banner.lib.php.  J'ai remarqué l'absence d'un "/" de fin pour le lien '<a href="'. get_path('clarolineRepositoryWeb')  . 'messaging" target="_top">'   . get_lang('My messages').'</a>. L'ajout de ce "/" corrige le bug.

 private function _prepareUserBanner()
    {
        if( claro_is_user_authenticated() )
        {
            $userToolUrlListLeft    = array();
            $userToolUrlListRight   = array();
            
            if (get_conf('display_former_homepage'))
            {
                
            }
            
            $userToolUrlListLeft[]  = '<a href="'
                . get_path('clarolineRepositoryWeb')
                . 'desktop/index.php" target="_top">'
                . get_lang('My desktop').'</a>'
                ;
            
            $userToolUrlListLeft[]  = '<a href="'
                . get_path('clarolineRepositoryWeb')
                . 'messaging" target="_top">'
                . get_lang('My messages').'</a>'
                ;

J'ai profité de l'occasion pour ajouter un  lien vers le site du lycée

 $userToolUrlListLeft[]  = '<a href="http://www.lycee-jean-lurcat.net" target="_blank">'
                . 'le site du lyc&eacutee; </a>'
                ;