- ^ Fondamentaux
- Principes de fonctionnement
- Développement d'un module
- Les réponses: générer du contenu
- Définir une réponse générale personnalisée
- Faire une redirection
- Services web
- Effectuer des traitements en ligne de commande
- Définir des traitements communs à plusieurs actions
- Créer une interface d'administration
Chapitre: Créer une interface d'administration
« Définir des traitements communs à plusieurs actions | ^ Fondamentaux |
− Table des matières
La commande initadmin ¶
La commande initadmin
permet d'ajouter facilement une interface d'administration à votre application. Elle active le module master_admin, et peut configurer automatiquement l'authentification (jAuth) et/ou le système de droit (jAcl2).
- *Important** : pour des raisons de sécurité, de facilité d'utilisation du framework etc, il est fortement recommandé de créer une application spécifique pour une interface d'administration.
Pour créer une interface d'administration, vous devez d'abord configurer jDb. Exécutez ensuite :
php jelix.php --myapp initadmin index
- "myapp" est le nom de votre application
- "index" est le nom du point d'entrée (sans l'extension
.php
), dédiée à l'interface d'administration.
Si vous tenez absolument à créer cette interface dans une application existante utilisant déjà index.php, indiquez un autre point d'entrée, "admin" par exemple, ou un autre nom. La commande crée le point d'entrée s'il n'existe pas déjà. La configuration du point d'entrée sera modifiée afin d'avoir une interface totalement fonctionnelle. Par exemple, deux nouvelles réponses sont ajoutées dans le répertoire myapp/responses/
. Vous pouvez ainsi personnaliser l'interface générale.
Notez qu'avant d'exécuter cette commande, vous devez avoir configuré correctement l'accès à la base de donnée dans le fichier dbprofils.ini.php
, car les tables pour jAuth et jAcl2 seront créés. Si vous préférez configurer jAuth et/ou jAcl2 par vous même, indiquez les options -noauthdb
et -noacl2db
à la commande.
Après avoir créé l'interface (et configuré jAuth et jAcl2 si vous avez choisi de le faire vous-même), vous pouvez démarrer l'application en appelant le point d'entrée créé.
Vous verrez alors un écran demandant votre login et mot de passe (affiché par le module jauth). Par défaut, un utilisateur "admin" avec le mot de passe "admin" est créé. Tapez ces informations, et vous pourrez alors entrer dans l'interface. Voir plus de détails sur la page du module master_admin.
- *Rappelez-vous : vous ne pouvez pas utiliser les contrôleurs d'un module sur deux points d'entrée en même temps.** Aussi, si vous utilisez déjà le contrôleur et les zones de jAuth dans votre application, pour autre chose que l'interface d'admin, vous allez avoir des problèmes d'Url, et donc des comportements bizarres, comme par exemple le formulaire de login de l'admin qui est soumis sur le point d'entrée du site web au lieu de l'admin. Si vous voulez utiliser les contrôleurs et formulaires de jauth sur deux points d'entrées, il vous faut séparer l'application en deux.
Interface d'administration et moteur d'url significatives ¶
A cause de certaines contraintes (hébergement notamment) ou de certains besoins, vous voudriez peut-être utiliser la même configuration que le reste de l'application, et donc peut-être utiliser le moteur d'urls significatives si celui ci est activé dans votre application (ce qui n'est pas le cas par défaut).
Dans ce cas, il faudra effectuer quelques modifications dans votre fichier urls.xml
. En effet sans cela, votre interface d'administration sera inaccessible puisque les urls ne seront pas connues.
Tout d'abord il faut ajouter le nouveau point d'entrée pour l'admin :
<classicentrypoint name="admin">
<url pathinfo="" module="master_admin" action="default:index" />
</classicentrypoint>
L'administration utilise le système d'authentification de jelix jAuth. Il faut donc définir pour votre point d'entrée, les urls permettant l'affichage du formulaire de connexion, celle de la validation de ce formulaire et celle de déconnexion. Pour cela, inclure le fichier urls.xml
fourni avec le module jauth.
<classicentrypoint name="admin">
<url pathinfo="" module="master_admin" action="default:index" />
<url pathinfo="/login/" module="jauth" include="urls.xml" />
</classicentrypoint>
Si vous n'avez pas désactivé l'authentification via jAuthDb et la gestion des droits via jAcl2Db, lors de l'appel à la commande initadmin, il faut aussi définir les urls pour les modules respectifs, jauthdb_admin et jacl2db_admin. Il faut alors inclure leurs fichiers urls.xml
.
<classicentrypoint name="admin">
<url pathinfo="" module="master_admin" action="default:index" />
<url pathinfo="/login/" module="jauth" include="urls.xml" />
<url pathinfo="/acl/" module="jacl2db_admin" include="urls.xml"/>
<url pathinfo="/auth/" module="jauthdb_admin" include="urls.xml"/>
</classicentrypoint>
Votre interface d'administration est alors opérationnelle.