Bonjour,
Nous avons implémenté un custom menu horizontal automatisé qui reprend toute l'arborescence des catégories et des cours.
Comme les libellés sont parfois longs, le lien dans le menu affiche le $course->shortname.
Voici un extrait du code :
<code>
class theme_enfa_core_renderer extends core_renderer
{
/**
* render_custom_menu
* Construit le custom_menu avec l'arborescence de tous les cours
* @param custom_menu $menu : Le menu personnalisé à construire
* @return string : Le code HTML du menu ?
*/
protected function render_custom_menu(custom_menu $menu)
{
global $CFG;
require_once($CFG->dirroot.'/course/lib.php');
$url_home = "http://univert.enfa.fr";
// Ajoute l'icône maison pour accéder à /my au custom_menu en récupérant le code HTML dans theme_enfa.php
/* PL - 2012-04-23 : renommage courses en my pour cohérence */
// Original => $branch = $menu->add(get_string('courses', 'theme_enfa'), null, null, 10000); changé pour ajouter l'url de la homepage "my moodle"
$branch = $menu->add(get_string('my', 'theme_enfa'), new moodle_url('/my'), null, 10000);
// récupère l'arborescence des cours
$categorytree = get_course_category_tree();
foreach ($categorytree as $category)
{
$branch = $menu->add($category->name, new moodle_url('/course/category.php', array('id' => $category->id)));
if (!empty($category->categories))
{
foreach ($category->categories as $subcategory)
{
$this->add_category_to_custommenu($branch, $subcategory);
}
}
if (!empty($category->courses))
{
foreach ($category->courses as $course)
{
//$branch->add($course->shortname, new moodle_url('/course/view.php', array('id' => $course->id)), $course->shortname);
$branch->add($course->shortname, new moodle_url('/course/view.php', array('id' => $course->id)), $course->name);
}
}
} // Fin foreach ($categorytree as $category)
return parent::render_custom_menu($menu);
} // Fin protected function render_custom_menu(custom_menu $menu)
</code>
La partie qui m'intéresse est :
$branch->add($course->shortname, new moodle_url('/course/view.php', array('id' => $course->id)), $course->name);
Elle fait appel à la fonction lib/outputcomponents.php/ class custom_menu_item / public function add dont le troisième paramètre $title semble s'appliquer à l'infobulle qui apparaît quand on passe la souris sur l'option de menu conduisant à un cours.
Comme vous pouvez le voir dans l'extrait de code, ce paramètre était à l'origine shortname et j'ai essayé de la passer à name mais le résultat reste identique.
Concrètement, j'ai par exemple un cours dont le nom complet est "1213S7UE1.1 - Exploitation agricole et évolution des logiques d'action en agriculture" et dont le nom abrégé est "1213S7UE1.1-A.Terrieux". Je souhaite que dans le menu s'affiche le nom abrégé et que le nom complet apparaisse au passage de la souris sur cette option de menu.
Quel est le paramètre pour afficher le nom complet dans l'infobulle ?