{{ :logo-apl.png?nolink |}} ===== Moodle Shop : Structure ===== ===== General structure of handlers ===== ====Structure introduction==== Les gestionnaires de production sont responsables des actions qui sont exécutées lorsqu'un produit est acheté sur la boutique Moodle. Il déroule un script d'action qui peut être prédéfini (gestionnaires standard) ou au contraire très spécifique à un context d'usage donné (gestionnaires spécifiques). Un gestionnaire se caractérise par : * Un script de pré-paiement * Un script de post-paiement * Des paramètres internes * Des paramètres externes * Des actions de postproduction si le produit a un cycle de vie ultérieurement à l'achat. ====Les scripts==== === Le script de pré-paiement === Ce script est exécuté avant le paiement, que celui-ci soit immédiat ou différé. === Le script de post-paiement === Ce script n'est exécuté QU'une fois que le paiement a été validé. ====Les paramètres==== Ils correspondent aux réglages à effectuer pour appeler les gestionnaires adéquats. === Les paramètres internes === Les paramètres internes sont mis en place par l'exploitant pour apporter des données prédéfinies ou choisir des options de comportement du gestionnaire. Les valeurs de ces paramètres doivent être déterminées au moment de la programmation de l'entrée de catalogue par l'exploitant. === Les paramètres externes === Les paramètres externes sont des paramètres qui sont demandés au client lorsqu'il commande le produit. Il sont définis comme un ensemble de description d'éléments de formulaire. Les valeurs de ces paramètres sont entrées par les clients pendant la phase d'achat. La boutique présentera un microformulaire par unité de produit achetée, afin que chaque unité puisse recevoir sa configuration. Certains gestionnaires nécessitent de récolter des données du client. La définition de ce formulaire utilise une syntaxe JSON pour définir les informations attendues et les élements de formulaire à utiliser dans la boutique. **La description adopte la structure suivante :** {{ :local:shop:structure:structure-requete.png?nolink |}} **L'expression résultante est :** [{"field":"the_field_name","label":"some visible name","type":"textfield","desc":"some desc","attrs":{"size":80}}, {"field":"description_sample","label":"Description (sample)","type":"textarea","desc":"Short Description (sample)"}, {"field":"template_sample","label":"Model (sample)","type":"select","desc":"Course template (sample)", "options":{"MOD1":"Model1","MOD2":"Model2"}}] Vous pouvez utiliser un service en ligne comme http://www.objgen.com/json pour vous faciliter le formatage de la structure. ====Handlers ==== Ce sont les organes qui 'occupent de la réalisation des produits. === Les gestionnaires standard === Les gestionnaires standard sont des plugins déjà écrits qui sont livrés en standard avec la boutique ou peuvent être installés par la suite. Les gestionnaires standard peuvent être associés à tous les produits du catalogue. Les plugins de gestionnaires standard résident dans un répertoire dont le nom doit commencer par 'std_' (exemple : std_enrolonecourse). === Les gestionnaires d'extension === Les intégrateurs peuvent ajouter et développer de nouveaux plugins de gestionnaires disponibles comme les gestionnaires standard pour tous les produits de la boutique. Ces gesionnaires doivent résider dans des répertoires commençant par 'ext_'. === Les gestionnaires spécifiques === Les gestionnaires spécifiques sont des gestionnaires associés à un et un seul produit par son nom. Il n'apparaissent pas dans la liste des gestionnaires disponibles, mais une option "Spécifique" dans le choix de gestionnaire permet d'activer ce gestionnaire particulier s'il est installé. === Les actions de postproduction === Certains gestionnaires constituent des produits qui peuvent être altérés ou modifiés par leur période de validité. Exemple : Un produit de type "Siège non attribué" doit pouvoir être ultérieurement attribué à un apprenant parfois bien après la date d'achat. Similairement, certains produits renouvelables peuvent présenter une possibilité de renouvellement. Des produits extensibles pourraient proposer une fonction d'extension etc. Les actions de postproduction sont implémentées par un jeu de fonctions dédiées : * La fonction qui donne les "départs d'action" dans la description de détail de l'instance de produit * Les fonctions qui exécutent les traitements. ---------- [[:local:shop:structure|Back to the Moodle Shop structure summary]] - [[:local:shop|back to Local Shop componant ]] - [[:start|back tocatalogue]]