====== Mini Tutoriel pour Jelix 1.0.2 et inférieur ====== Ce tutoriel a pour but de vous montrer succinctement comment on réalise une application. Ce tutoriel concerne Jelix 1.0.2 et les versions précedentes. ===== Téléchargement et installation ===== Pour commencer, [[fr:telechargement:stable|téléchargez l'édition "Developer" de Jelix]]. Jelix nécessite au moins PHP 5.2. Décompressez ensuite l'archive obtenue avec des logiciels comme winzip, unzip ou tar. Par exemple, avec tar : tar xvzf jelix-1.0-dev.tar.gz Vous obtenez un répertoire jelix-1.0/lib/ dans lequel vous avez plusieurs répertoires contenant toutes les bibliothèques utilisées par jelix, ainsi que les fichiers propres à jelix dans jelix-1.0/lib/jelix/. Pour ce tutoriel, déplacez le répertoire jelix-1.0 dans le répertoire de votre site web, de manière à ce qu'il soit accessible par une URL du genre http://localhost/jelix-1.0/. (vous pouvez renommer //jelix-1.0// comme vous le souhaitez). Il est possible de télécharger le code de ce tutoriel aux formats [[http://download.jelix.org/forge/tutors/base_jelix-1.0/hello.zip|zip]] ou [[http://download.jelix.org/forge/tutors/base_jelix-1.0/hello.tar.gz|gzip]]. ===== Scripts de Jelix ===== L'édition //Developer// de Jelix est fournie avec un script //jelix.php//, qui permet de créer et modifier facilement les fichiers d'une application. Ce script est situé dans //jelix-1.0/lib/jelix-scripts///. Il faut invoquer //jelix.php// avec la version ligne de commande de PHP, depuis une console sous Linux ou l'invite de commandes sous Windows. Pour commencer, stockez le nom de l'application dans la variable d'environnement //JELIX_APP_NAME// : export JELIX_APP_NAME=hello #sous linux set JELIX_APP_NAME=hello #sous windows puis allez dans le répertoire des scripts : cd lib/jelix-scripts/ #sous linux cd lib\jelix-scripts\ #sous windows il sera alors possible de lancer la commande comme suit : php jelix.php nom_commande [options] [paramètres] ===== Création d'une application ===== Créons l'arborescence de l'application au moyen de la commande //createapp// : php jelix.php createapp Vous obtenez alors un répertoire //hello/// situé au même niveau que le répertoire //lib/// (d'après le nom stocké dans la variable d'environnement). Son contenu est le suivant : hello/ modules/ les modules propres à votre application plugins/ les plugins propres à votre application var/ config/ les fichiers de configuration de votre application log/ les éventuels fichiers journaux themes/ les différents thèmes possibles dans votre application overloads/ contiendra les différents fichiers que vous aurez redéfinis, issus de modules tiers. www/ la racine du site ===== Création d'un module ===== Un module "hello" est automatiquement créé dans le répertoire //modules/// lorsque l'on utilise //createapp//. Un module représente une partie de votre application. Il en faut au moins un dans une application. Voici le répertoire créé automatiquement : hello/modules/ hello/ le répertoire du module module.xml fichier décrivant l'identité du module controllers/ les classes de traitement des actions default.classic.php un controleur par défaut classes/ vos classes métiers et services daos/ les fichiers de mappings relationnel-objet locales/ fichiers de langues (fichiers "properties") en_EN/ fr_FR/ templates/ templates du module zones/ objets traitant des zones spécifiques dans une page Si vous voulez créer d'autres modules, vous pouvez utiliser la commande //createmodule// : php jelix.php createmodule hello2 ===== Implémentation d'une action ===== Implémentons l'action par défaut. Une action est un traitement affecté à une URL précise de votre application. Ouvrez le fichier //hello/modules/hello/controllers/default.classic.php//, il contient : class defaultCtrl extends jController { function index () { $rep = $this->getResponse('html'); return $rep; } } Nous récupérons ici un objet jResponseHtml identifié par le type //"html"//, et nous le retournons pour que son contenu soit renvoyé au navigateur. ==== Objet réponse ==== L'objet [[http://docs.jelix.org/fr/manuel-1.0/responsehtml|jResponseHtml]] s'occupe de générer une réponse en HTML (donc une page en HTML). Il génère automatiquement la partie du HTML, à partir de certaines de ses propriétés. Définissons le titre de la page : $rep->title = 'Hello World !'; Par défaut, jResponseHtml utilise un template pour générer le corps de la page (le contenu de ). Vous devez donc indiquer quel template vous voulez utiliser. Le nom du fichier template doit être placé dans la propriété bodyTpl. Ici, il s'agit du fichier hello.tpl. $rep->bodyTpl = 'hello'; On ne met pas la partie ".tpl" car le contenu de la chaîne est en fait un //sélecteur// Jelix. Un sélecteur est un raccourci pour désigner une ressource d'un module. Notez que vous pouvez réaliser vos propres objets réponse (dérivant éventuellement de la classe jResponseHtml), et de ce fait, y mettre tous les traitements de préparation communs à plusieurs ou toutes vos actions, choses que vous n'aurez pas alors à dupliquer dans chaque action (comme le nom du template, l'inclusion de [[http://docs.jelix.org/fr/manuel-1.0/zones|zones]] communes etc..). ==== Le template ==== Créez le fichier //hello.tpl// dans le répertoire //templates// du module. Et mettez-y ce contenu :

Hello {$nom} !

Bienvenue dans Jelix !

"{$nom}" est une variable de template : elle sera remplacée par la valeur que vous donnerez, comme dans cet exemple : $rep->body->assign('nom','Moi'); La propriété body de l'objet jResponseHtml est un objet //jTpl//, le moteur de template fourni dans Jelix. ==== En résumé ==== Le code du contrôleur doit maintenant ressembler à ceci : class defaultCtrl extends jController { function index () { $rep = $this->getResponse('html'); $rep->title = 'Hello World !'; $rep->bodyTpl = 'hello'; $rep->body->assign('nom','Moi'); return $rep; } } ===== Premier affichage ===== Nous sommes maintenant prêts à afficher notre page. Votre application est accessible normalement via l'URL http://localhost/jelix-1.0/hello/www/. Pour lancer l'application, tapez l'URL suivante dans votre navigateur : http://localhost/jelix-1.0/hello/www/index.php?module=hello&action=default:index Vous verrez alors s'afficher votre page HTML avec le message de bienvenue. Bien sûr, à l'avenir, vous pourrez configurer votre application et votre serveur de manière à avoir des URLs plus simple. En particulier, vous pouvez configurer le serveur de manière à spécifier le "DocumentRoot" du site sur le répertoire //jelix-1.0/hello/www// (et donc éviter d'avoir à taper le chemin //jelix-1.0/hello/www//). Et puis sachez que Jelix peut prendre en charge les URLs significatives pour éviter tout ces paramètres disgracieux. Note : * Pour ceux qui testent avec Jelix 1.0 beta3.1 ou inférieur, il faut taper //default_index// et non //default:index// dans l'URL. Si vous voulez faire de cette action la page par défaut, éditez le fichier //hello/var/config/index/config.ini.php// et modifiez les paramètres //startModule// et //startAction// : startModule="hello" startAction="default:index" Vous pouvez alors taper simplement dans le navigateur : http://localhost/jelix-1.0/hello/www/index.php ===== Récupération de paramètres ===== Maintenant, il serait intéressant de pouvoir indiquer en paramètre de l'URL le nom que l'on affiche dans le template. Par exemple pouvoir indiquer "Robert" : http://localhost/jelix-1.0/hello/www/index.php?nom=Robert Remplaçons alors dans le contrôleur cette ligne : $rep->body->assign('nom','Moi'); par ceci : $nom = $this->param('nom'); $rep->body->assign('nom', $nom); Et tapez l'URL précédente dans votre navigateur. vous devriez voir afficher : Hello Robert ! Bienvenue dans Jelix ! ===== Conclusion ===== Ce mini tutoriel vous a fait découvrir les premiers concepts de base de Jelix. Vous pouvez continuer à découvrir les possibilités du framework en lisant le [[fr:tutoriels:jelixnews|tutoriel principal]]. ----- * Retourner à [[:fr:presentation|la présentation]] * Aller à la [[fr:documentation:|documentation]] * Continuez de découvrir Jelix avec le [[fr:tutoriels:jelixnews|tutoriel principal]]