Update page 'Architecture de module'
parent
21fa8877be
commit
cd4a04c173
81
Architecture de module.md
Normal file
81
Architecture de module.md
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
Hiérarchie des dossiers
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Dans le dossier “modules”, chaque module a cette hiérarchie :
|
||||||
|
|
||||||
|
- *nom du module*
|
||||||
|
- *Nom du module*.php
|
||||||
|
- ajax
|
||||||
|
- css
|
||||||
|
- *nom du module*.css
|
||||||
|
- db
|
||||||
|
- *nom du module*.xml (facultatif)
|
||||||
|
- images
|
||||||
|
- includes
|
||||||
|
- js
|
||||||
|
- *nom du module*.js
|
||||||
|
|
||||||
|
Explications des dossiers
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Chaque module importé en fichier .zip devra impérativement suivre cette nomenclature.
|
||||||
|
Le *Nom du module*.php à la base du dossier du module est la classe dudit module et devra étendre *module.php* (la classe présente à la racine du projet)
|
||||||
|
La classe Module étendu oblige à avoir la nomenclature de dossier donné (ou au moins, leurs bases). Ainsi, même s’ils ne sont pas utilisés, le *nom du module*.css et *nom du module*.js devront être obligatoirement créés, ceci afin d’éviter les erreurs d’affichage.
|
||||||
|
|
||||||
|
### En détail
|
||||||
|
|
||||||
|
- *Nom du module*.php
|
||||||
|
- La classe du module qui étend la classe “module”. Gère la génération du module, l’activation et désactivation, et diverses options de paramètres liées à chaque module.
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
|
||||||
|
- ajax
|
||||||
|
- Ce dossier peut ne rien contenir. Mettre ici les fichiers PHP contenant les scripts “ajax”
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
|
||||||
|
- css
|
||||||
|
- Ce dossier doit contenir tous les CSS.
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
|
||||||
|
- db
|
||||||
|
- Ce dossier doit contenir tous les fichiers .xml qui s’occupe de la persistance de chaque module si besoin est.
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
|
||||||
|
- images
|
||||||
|
- Ce dossier doit contenir tous les fichiers images. (sic) Il est possible d’utiliser les images de bases du projet présentes dans le dossier *images* de la racine du projet.
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
|
||||||
|
- includes
|
||||||
|
- Ce dossier doit contenir tous les fichiers PHP joints au module. (ex: les classes externes, les includes, etc)
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
|
||||||
|
- js
|
||||||
|
- Ce dossier doit contenir tous les scripts JS. Ce projet utilise, de base, jQuery 1.4.2, jQuery UI 1.8.4 et jQuery Fancybox 1.3.1
|
||||||
|
|
||||||
|
Les fonctions utiles :
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
### La classe Module
|
||||||
|
|
||||||
|
Votre module devant impérativement étendre la classe *Module* (elle ne fonctionnera pas dans le cas contraire), elle dispose de fonction déjà prédéfinie et fortes utiles :
|
||||||
|
|
||||||
|
- `public function updateConfig($updated)` : En utilisant cette fonction sur un de vos modules en ayant `$updated` en tant qu’array de paramètre de votre module, ce dernier aura les valeurs de ses paramètres modifiées directement dans la configuration principale **si ils existent préalablement**. Par exemple, `$module->updateConfig(array('visibility'=>'false'));` désactivera votre module ! Vous pouvez, bien sûr, grâce à l’array, changer plusieurs paramètres d’un seul coup.
|
||||||
|
- `public function getParam($param)` : Vous permet de récupérer un paramètre.
|
||||||
|
|
||||||
|
### La classe principale AccueilModule
|
||||||
|
|
||||||
|
Elle initialise un peu tout : Elle récupère tous les modules présents dans le fichier de configuration, elle permet d’afficher les modules activés, d’ajouter un module et de gérer le script de configuration.
|
||||||
|
|
||||||
|
- `public static function getModule($module)` : Si vous souhaitez récupérer un objet de votre module, utilisez cette méthode statique.
|
||||||
|
|
||||||
|
### Le javascript
|
||||||
|
|
||||||
|
De base, plusieurs fonctions sont réutilisables et utile :
|
||||||
|
|
||||||
|
- @make\_draggable($(’\#idDe
|
||||||
|
|
Loading…
Reference in New Issue
Block a user