- 1
[Opened] [Débutant] Template général et front controller
Posted by maxonz on 12/26/2012 01:35
Bonjour à tous, je débute sous Jelix, je suis tombé ici un peu par hasard à la recherche d'un framework simple, complet et gérant plusieurs sites differents. Jelix semble répondre à tous ces besoins et en plus, cocorico, c'est français (donc doc en français aussi :) ).
Ayant déja bossé sous Symfony et Code Igniter, les concepts de MVC, modules, applications etc... me parlent. Cependant, il y a quelque chose de fondamental que je n'arrive pas à comprendre: comment faire les choses "générales", par exemple contrôler l'authentification à chaque chargement de controlleur, avoir un template général dans lequel on vient inclure le menu et la page courante... Voila, comment faire?
Merci de votre aide Maxime
[Opened] [Débutant] Template général et front controller
Posted by foxmask on 12/26/2012 02:44
bonjour,
pour la partie de controle à chaque accès d'une méthode du contrôleur il s'agit de Coordinateur
pour le decoupage de sa page en morceaux pour le menu et le reste on utilise des zones ou un simple
{include 'template_menu'}( comme le montre la doc ici ) dans le template general etc...
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] [Débutant] Template général et front controller
Posted by laurentj on 12/26/2012 10:50
Bonjour
contrôler l'authentification à chaque chargement de controlleur
Je rajouterai : il y a un module d'authentification fourni, et son plugin pour le coordinateur, qui verifie l'authentification. Et il y a aussi un module pour la gestion des droits, avec idem son plugin pour le coordinateur pour vérifier les droit à chaque action
avoir un template général dans lequel on vient inclure le menu et la page courante.
Le morceau de la page courante est généré par l'action d'un contrôleur. le reste est généré par l'objet réponse que tu utilises dans ton action.
Dans un contrôleur donc, tu récupère un objet réponse, tu lui donne ton template spécifique à la page, et l'objet réponse l'inclus automatiquement dans le template général, ainsi que les autres zones de contenu communes.
[Opened] [Débutant] Template général et front controller
Posted by maxonz on 12/26/2012 22:13
Merci beaucoup pour vos réponses ! :) Je ne me suis pour l'instant essayé qu'au coordinateur, et déjà je rencontre des difficultés... Comme indiqué dans la doc, j'ai commencé par créer un plugin pour le coordinateur nommé "hello_plug.coord.ini.php" et situé dans "Jelix/leo/plugins/coord" (Le repertoire ou est situé Jelix s'appelle...(attention, c'est très original !)...Jelix et mon application s'appelle "leo".
Le plugin hello_plug.coord.ini.php est constitué de ceci:
<?php class HelloPlug implements jICoordPlugin { public function __construct($config){} public function beforeAction($params){ echo('Hello world plugin'); exit(); } public function beforeOutput(){} public function afterProcess (){} } ?>
J'ai ensuite voulu déclarer ça dans Jelix/leo/var/config/defaultconfig.ini.php en ajoutant la ligne suivante (dernière ligne):
[coordplugins] ;name = file_ini_name or 1 foo = hello_plug.coord.ini.php
Je n'ai touché à rien d'autre dans ce defaultconfig.ini.php ;)
Et j'obtiens l'erreur suivante:
Error 500. A technical error has occured. Sorry for this trouble.
Error in the main configuration. A plugin doesn't exist
Donc après une bonne heure de lecture et relecture de la doc et de bidouilles plus ou moins douteuses, j'en appelle à votre aide ! :)
[Opened] [Débutant] Template général et front controller
Posted by foxmask on 12/27/2012 19:01
bonsoir,
le message
Error in the main configuration. A plugin doesn't exist
signifie que jelix ne trouve pas le plugin, parce qu'il n'est pas là où il l'attend.
par convention, tout d'abord il faudrait que le plugin coord soit dans son propre dossier
Jelix/leo/plugins/coord/hello ( comme indiqué dans la doc)
Ensuite il devrait s'appeler
helloCoordPlugin
Enfin, un plugin coord ne peut pas effectuer un echo + exit ; comme le dit la doc le beforeAction doit faire ceci :
La méthode beforeAction() reçoit les paramètres de plugins déclarés dans le contrôleur. Elle peut renvoyer null si tout est ok ou alors un sélecteur d'action, jSelectorAct, si il faut exécuter une autre action que celle prévue.
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] [Débutant] Template général et front controller
Posted by laurentj on 01/02/2013 10:44
foo = hello_plug.coord.ini.php
- jelix tente de chercher un plugin nommé "foo". Or le tient s'appelle hello.
Ensuite, hello_plug.coord.ini.php n'est pas le plugin, mais doit être le fichier de configuration du plugin. Si ton plugin en a besoin.. Bref, ce serait plutôt plugins/coord/hello/hello.coord.php.
Je pense qu'il faudrait que tu relises la doc sur la création d'un plugin sur cette partie là
- 1