Format page : Guide technique

Capacités

Capacités du format page

Ecouteurs d'événements

Création de module : réordonne et consolide le plan de sections

Destruction de module : réordonne et consolide le plan de sections

Destruction de cours : nettoye les tables complémentaires du format page

Compléments sur la mise en oeuvre

Le format page est un format très puissant qui demande un peu de technique d'intégration.

Depuis sa version d'origine pour Moodle 2.3, un gros effort a été fait pour se débarrasser au plus possible de patchs dans le noyau de Moodle. Ce travail d'architecture est actuellement terminé. le format page, pour un foncitonnement normal, doit néanmoins être précédé d'une mise en place rigoureuse de certaines surcharge superficielles sur le fonctionnement standard de Moodle. L'intégralité de ces surcharges :

Soit concernent le theme, qui est l'un des endroits traditionnellement customisés des Moodle

Soit concerne des customscripts de remplacement de certains points d'entrée standard de Moodle.

Les mises en places indispensables

Le remplacement de la vue de cours

Moodle prévoit que le gestionnaire de blocs soit basé sur un design pattern de “Fabrique”. Ce pattern permet d'éviter à l'exécution, que la classe invoquée soit gravée dans le marbre. Elle peut être changée par un minimum de modifications du code.

Malheureusement, un petit défaut d'architecture ne permet pas de définir par simple configuration le gestionnaire de blocs, lors de l'entrée dans un cours. Ce choix s'effectue au début de la vue du cours, code faisant partie du noyau. Heureusement, ce script étant un “point d'entrée” de Moodle, il peut être facilement détourné.

La distribution du format page propose dans un répertoire __customscripts un ensemble de contournements pour la version courante de Moodle. la mise en place est simple et consiste à :

Créer un répertoire customscripts à la racine d'installation de Moodle.

Editer le fichier config.php pour activer les customscripts ($CFG→customscripts = ><moodleroot>/customscripts)

copier le contenu du répertoire _customscripts dans le répertoire susnommé

===

Les mises en place facultatives

Ces mises en place n'empêchent pas le fonctionnement correct du format page, mais peuvent ajouter une plus grande cohérence de navigation dans certains cas d'usage.

Navigation paginée dans les surcharges de page par des activités

Lorsqu'une page est entièrement surchargée par une activité, la séquence de lecture du cours est arrêtée sur l'activité pour jouer celle-ci à travers ses différents écrans. Le contexte d'affichage est sorti du cours pour aller dans celui de l'activité, qui se déroule le plus souvent avec des dispositions “standard” de Moodle (et donc sans tenir compte de cette situation particulière). Certaines activités éditées par Edunao prévoient déjà en natif la prise en charge de l'intégration au format page, en invoquant la navigation de ce format en bas de l'écran.

Pour les autres qui ne le prévoient pas, il est nécessaire de rajouter quelques contournements par des customscripts, afin d'injecter cette navigation en bas de page.

ATTENTION, toutes les activités ne sont pas architecturées pour admettre un contournement facile. Les plus adéquates sont celles qui font un appel explicite à :

echo $OUTPUT->footer();

dans la vue à surcharger (une vue d'entrée commence toujours par l'appel à “config.php”).

A ce moment, vous pouvez copier cette vue dans un répertoire isomorphe dans les customscripts, et ajouter juste avant l'appel au footer la séquence de navigation du format page suivante :

if ($course->format == 'page'){
require_once $CFG->dirroot.'/course/format/page/xlib.php';
page_print_page_format_navigation($cm, true);
}

Comme pour toutes les surcharges par customscript n'oubliez pas de terminer votre page par

die;

après avoir appelé le footer, pour éviter de rejouer la vue originale.

Revenir à l'index du composant Format Page