Gestionnaire de page¶
Elgg offre des outils pour gérer vos pages plugin via un gestionnaire de page, permettant des URLs personnalisées comme http://votresite/votre_plugin/section
. Pour ajouter un gestionnaire de page à un plugin, une fonction de gestionnaire doit être enregistrée dans le fichier start.php
du plugin avec elgg_register_page_handler()
:
elgg_register_page_handler('your_plugin', 'your_plugin_page_handler');
Le gestionnaire de page du plugin reçoit deux paramètres :
un tableau contenant les sections de l’URL découpées par “/”. Avec ces informations, le gestionnaire sera en mesure d’appliquer toute la logique nécessaire, par exemple le chargement de la vue appropriée et le retour de son contenu.
le gestionnaire, c’est le gestionnaire qui est actuellement utilisé (dans notre exemple
votre_plugin
). Si vous n’enregistrez pas plusieurs gestionnaires de pages pour la même fonction, vous n’en aurez jamais besoin.
Flux de code¶
Les pages dans les plugins doivent être rendues via des gestionnaires de page (et non pas à l’aide de Elgg\Application
). En général, le rendu est fait par des vues avec des noms commençant par resources/
. Le flux du programme est quelque chose comme ceci :
Un utilisateur demande
/plugin_name/section/entity
Elgg vérifie si
plugin_name
est enregistré dans un gestionnaire de page et appelle cette fonction, en passantarray('section', 'entity')
comme premier argumentLa fonction gestionnaire de page détermine quelle vue de ressource affichera la page.
Le gestionnaire utilise
elgg_view_resource()
pour rendre la page, en transmettant également toutes les informations pertinentes à la vue via l’argument$vars
.La vue de ressource combine de nombreuses vues distinctes, appelle des fonctions de mise en forme comme
elgg_view_layout()
etelgg_view_page()
, puis génère la sortie finaleL’utilisateur voit une page entièrement rendue
Il n’y a pas de syntaxe appliquée sur les URLs, mais les normes de codage d’Elgg suggèrent un certain format.