Les modules de type products, sont a priori les plus courant ; il sont la base de l’évolution du moteur et permettent d’intégrer de manière simple des fonctionnalités au produits.
Ils sont composés de class contenu dans le dossier modules/products/
Ils se structurent autour de 2 class l’une pour le back, l’autre pour le front.
Il sont dans la gamme des modules ACA les plus complexes, compte tenu que leurs activation est dépendantes de plusieurs paramètres.
Règle d’activation
Une fois activer dans la gestion des modules, les modules produits peuvent ne pas être visible dans le core. Un paramètre complète celui de l’activation et intervient sur le type auquel ce module est dédié.
C.a.d. , qu’il est possible de définir à la conception d’un module, qu’il ne s’adresse qu’au module de type produit logiciel/virtuel par exemple. Dans ce cas lors de l’édition d’un produit physique ce module sera désactivé.
héritage et dépendance
Les modules produits sont structuré autour d’un ou plusieurs interface, en fonction de leur spécificité. Les interfaces du back ne sont pas accessible dans le front. Par contre ceux du front sont accessible dans les 2 core.
L’interface minimum et celui de InterfaceModule
exemple de declaration
implements InterfaceModule{
....
}
Le constructeur
Le constructeur ce doit de contenir les définitions suivante :
$this->code = __CLASS__;
$this->title = __('Description xxx ');
$this->description = __('Description xxxx');
$this->sort_order = (defined('MODULE_ACAPRO_xx_SORT_ORDER'))?MODULE_ACAPRO_xx_SORT_ORDER : 0;
$this->enabled = true;
$this->flag_type_virtual = 0;
...
}
Si le flag_type_virtual est omis, alors il sera considérer comme 1.
Les types de produit sont définis dans la table des statues.
- 1 :: produits physique
- 2 et plus :: produits virtuel
Les méthodes utilisé
Les méthodes appelé dans les modules sont de 2 types, les méthodes obligatoires, et les méthodes optionnelles
Méthodes obligatoires
- load_db_values
- display_edit
- check
- install
- remove
- keys
Méthodes optionnelles
- insert_table_products_description
- update_table_products_description
- after_update
- load_post_values
- check_action
- duplicate_product
- ...