Update page 'Architecture de module'

Shikiryu 2016-11-17 12:56:05 +01:00
parent 21fa8877be
commit cd4a04c173

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 sils 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 daffichage.
### En détail
- *Nom du module*.php
- La classe du module qui étend la classe “module”. Gère la génération du module, lactivation 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 soccupe de la persistance de chaque module si besoin est.
<!-- -->
- images
- Ce dossier doit contenir tous les fichiers images. (sic) Il est possible dutiliser 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 quarray 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 à larray, changer plusieurs paramètres dun 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 dafficher les modules activés, dajouter 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