Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [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

Reply #1 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

Reply #2 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.

Voir comment définir une réponse générale personnalisée

  [Opened] [Débutant] Template général et front controller

Reply #3 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

Reply #4 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

Reply #5 Posted by laurentj on 01/02/2013 10:44

foo = hello_plug.coord.ini.php

  1. 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à

 
Page
  1. [Débutant] Template général et front controller