SP:Composant:Module

De Hegyd Doc.

(Différences entre les versions)
(Autres éléments associés)
(pages pour administrer le module)
Ligne 59 : Ligne 59 :
==== pages pour administrer le module ====
==== pages pour administrer le module ====
-
Ces pages permettront a l'utilisateur d'administrer le module.
+
Ces pages permettront a l'utilisateur d'administrer le module. Les '''templates/controleurs''' correspondant se trouvent dans '''templates/editeur/{moduleCleanedName}/''' et  '''controleurs/editeur/{moduleCleanedName}/'''. Elles seront appelable via l'url '''http://domaine-du-site.fr/editeur/{moduleCleanedName}/nom_page.html''', et pourront contenir des paramètres utilisables dans leur controleur et template associé.
-
 
+
-
Les '''templates/controleurs''' correspondant se trouvent dans '''templates/editeur/{moduleCleanedName}/''' et  '''controleurs/editeur/{moduleCleanedName}/'''.
+
-
Elles seront appelable via l'url '''http://domaine-du-site.fr/editeur/{moduleCleanedName}/nom_page.html''', et pourront contenir des paramètres utilisables dans leur controleur et template associé.
+
==Activation / Désactivation ==
==Activation / Désactivation ==

Version du 16 juillet 2010 à 13:38

Sommaire

Les modules

Un module permet d'étendre les fonctionnalités primaire de l'éditeur, en ajoutant par exemple un système de gestion d'actualités, ou un support e-commerce.

Implémentation

base de données

Le module est enregistré dans la table module, ses champs:

  • moduleId: identifiant
  • modeleName: nom du module
  • modeuleCleanedName: nom du module sans caractères spéciaux. Servira pour nommer les répertoires associés.
  • siteOptions: s'il est rélié avec une option lié au packages.

Il est lié à un site par le bias d'une table de jointure jModule_SiteClient, ses champs:

  • moduleId
  • siteClientId
  • status: indique s'il est activé pour le client ou non.


Une autre table permet de définir les pages qui devront être associées au module modulePages, ses champs:

  • modulePageId: identifiant
  • moduleId: identifiant du module
  • modulePageName: nom de la page
  • urlPattern: expression réulière permettant de reconnaitre la page à partir d'une url


Le module pourra également avoir ses propres tables. Elle devront toutes être préfixées par {moduleCleanedName}.

Classes

La classe Module contient les méthodes génériques de gestion des modules:

  • activate() / desactivate()

Chaque module dispose ensuite de sa propre classe, nommée {moduleCleanedName}, qui comprends se propres méthodes. Ces méthodes pourront être utilisées dans les templates et controleurs des blocObjects associé au module ainsi que dans les pages d'administration permettant d'éditeur le module. Exemple: méthode getNewsList(), AddNews(),deleteNews()... pour un module actualités.

D'autres classes peuvent être associées au module pour le compléter. Elle devront se trouver dans le répertoire lib/model/EasySite/modules/{moduleCLeanedName}/ dans un fichier {moduleCleandName}_ClassName.php et se nommer {moduleCleandName}_ClassName (sans cette syntaxe, elle ne pourront pas être chargé via lautoload de l'application).

Autres éléments associés

pages & contenu

Définis via l'interface d'édition des modules.

type(s) de blocObject

Cf. (méthodologie pour créer des types de blocObject). Ces types de blocObject ne seront alors disponible a l'ajout seulement si le module est activé pour le client.

propriétés de styles

Cf. ( l'aide pour ajouter des nouvelles propriétés).

pages pour administrer le module

Ces pages permettront a l'utilisateur d'administrer le module. Les templates/controleurs correspondant se trouvent dans templates/editeur/{moduleCleanedName}/ et controleurs/editeur/{moduleCleanedName}/. Elles seront appelable via l'url http://domaine-du-site.fr/editeur/{moduleCleanedName}/nom_page.html, et pourront contenir des paramètres utilisables dans leur controleur et template associé.

Activation / Désactivation