====== Étapes lors de la création d'une application Jelix ======
La création d'une nouvelle application Jelix comprend une série d'étapes qui d'une application à l'autre se ressemblent. Que se soit pour un tutoriel, une application web ou même un site web.
Le but de cet article est de présenter cette démarche commune. Chaque étape décrit l'essentiel le plus succinctement possible. Également les étapes ne sont pas dans un ordre chronologique.
===== Pré-requis =====
Nous prendrons pour acquis que vous connaissez un peu Jelix, c'est-à-dire que vous avez lu le [[fr:tutoriels:minitutoriel|Mini tutoriel]] et le [[fr:tutoriels:jelixnews|Tutoriel principal]]. Et que ces deux tutoriaux, vous ont permis de connaître et d'expérimenter les fonctionnalités de base de Jelix.
===== Créer une application et un module par défaut =====
* Nom de l'application : myapp
* Nom du module principal : myapp
En ligne de commandes vous tapez :
php jelix.php --myapp createapp
Cela vous créer une application qui a pour nom myapp et un module de même nom dans myapp/modules/myapp.
Vérifiez que vous avez un répertoire au nom de l'application dans le répertoire //jelix/temp///. Et si vous êtes sous linux, vous devez donner le droit en écriture à l'utilisateur exécutant apache, sur les répertoires suivant :
temp/myapp/
myapp/var/config/
myapp/var/log/
===== Créer une application et un module spécifique =====
Si vous ne voulez pas du module par défaut pendant la création de l'application, il faut faire :
php jelix.php --myapp createapp -nodefaultmodule
Et ensuite, pour créer un module avec le nom //main//, faire
php jelix.php --myapp createmodule main
Vous avez alors un module myapp/modules/main.
Vous devez aussi modifier les propriétés **startModule** et **startAction** dans le fichier //var/config/index/config.ini.php// pour indiquer l'action qui sera executé par défaut quand l'url est vide. Par exemple :
startModule = "main"
startAction = "default:index"
Vérifiez que vous avez un répertoire au nom de l'application dans le répertoire //jelix/temp///. Et si vous êtes sous linux, vous devez donner le droit en écriture à l'utilisateur exécutant apache, sur les répertoires suivant :
temp/myapp/
myapp/var/config/
myapp/var/log/
===== Indiquer le basePath =====
Si vous voyez que Jelix vous génère des urls "bizarres", qui ne correspondent pas à rien, en particulier si vous installez votre application dans un sous répertoire de votre site (c'est à dire que le index.php de jelix n'est pas à la racine de votre site), vous devez renseigner le basePath. Il s'agit d'une propriété du fichier //defaultconfig.ini.php// qui indique le chemin de base dans l'url, pour aller jusqu'au fichier index.php, ou plutôt jusqu'au répertoire de votre application.
Par exemple, si devez taper monsite.com/jelix/myapp/www/index.php pour appeler l'application, vous devez mettre ///jelix/myapp/www/// dans //basePath//.
Si vous avez plusieurs points d'entrée répartis dans différents sous répertoire comme monsite.com/foo/index.php, monsite.com/foo/bar/index2.php, le basePath est la partie du chemin commun à tout les points d'entrée, donc ici ///foo///.
Consultez le fichier de configuration pour avoir plus de détails.
===== Affecter une BD à votre application =====
Cette étape comporte quelques tâches qui ne sont pas gérées par Jelix, et que vous devrez faire au moyen d'outils comme phpMyAdmin pour MySql.
- Créer une base de données
- Créer une ou plusieurs tables dans la BD. Pour certains modules ou applications disponibles, il peut y avoir un répertoire install/ qui contient des scripts SQL pour créer des tables et ajouter des données. C'est le cas pour l’application **testapp** ou dans les tutoriaux.
- Ajouter les données dans la table.
Ensuite, vous devrez configurer le fichier //dbprofils.ini.php// pour indiquer à jelix les informations d'accés à la base de donnée (driver, login, mot de passe etc..). Voir [[http://docs.jelix.org/fr/manuel-1.0/bd|la documentation sur jDb]].
Pour quelques utilsateurs de Windows, il se peut que vous ayez des problèmes de caractères accentués.
* Vous pouvez mettre à **on** la propriété **force_encoding** dans le profil de connexion.
* Mais attention en activant cette propriété Jelix réalise une requête supplémentaire à chaque connexion. Pour plus de détail et __une solution__ consulter [[http://jelix.org/forums/read.php?5,1059|la discussion suivante]].
===== Créer un DAO =====
* Pour l'application : myapp
* Pour le module : forum
* Pour le nom du DAO à créer : user
* Pour la table : members
Dans la console tapez :
php jelix.php --myapp createdao forum user members
Le fichier DAO sera créé dans : //jelix/myapp/modules/forum/daos/user.dao.xml//.
===== Créer un formulaire =====
* Pour l'application : chat
* Pour le module : users
* Pour le nom du DAO sur lequel reposera le formulaire : user
* Pour le formulaire à créer: member
Dans la console tapez :
php jelix.php --chat createform users member user
Cela créera le fichier //jelix/chat/modules/users/forms/member.form.xml//.
Voici un exemple du contenu du fichier qui sera généré par jForms.
On déclare ici trois champs de saisie simples, faisant référence aux valeurs dont les noms sont respectivement "pk", "nom", "prenom". Ces noms doivent correspondent aux propriétés d'un DAO quand on veut utiliser un formulaire conjointement avec un DAO, comme c'est le cas dans ce tutoriel.
Notez aussi les libellés associés aux champs de saisies, qui seront affichés lors de la génération du formulaire HTML correspondant.
Si vous voulez activer dans le formulaire les fonctionnalités (coté client) d'aide et de validation de données, vous devez :
* copier les fichiers ///jelix/lib/jelix-www/js/jforms.js// et ///jelix/lib/jelix-www/design/jform.css// dans le répertoire //www/// de votre application.
* ou vous pouvez [[http://jelix.org/articles/manuel/installation/application#si-vous-pouvez-specifier-le-document-root|créer un alias]] dans la configuration de votre serveur apache.
* sinon vous pouvez [[http://jelix.org/articles/manuel/installation/application#vous-ne-pouvez-pas-specifier-le-document-root|modifier la structure hiéarchique]] de Jelix framework.
===== Créer une zone =====
* Pour l'application : myapp
* Pour le module : blog
* Pour la zone : menu
* Pour le template : sommaire
Dans la console tapez :
php jelix.php --myapp createzone blog menu sommaire
Le fichier zone sera créé dans : ///jelix/myapp/modules/blog/zones///\\
Le fichier template sera créé dans : ///jelix/myapp/modules/blog/templates///
===== La suite... =====
La suite dépend de vos besoins. Consulter dans la documentation de Jelix les autres tutoriaux, le manuel, la référence api ainsi que le forum.
----
* [[fr:tutoriels:|Retour au sommaire des tutoriels]]