Changeset 113633 in spip-zone


Ignore:
Timestamp:
Jan 27, 2019, 12:14:05 PM (3 months ago)
Author:
eric@…
Message:

Suppression d'une TODO et revue quaoité des commentaires concernant les services

Location:
_plugins_/n-core/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/n-core/trunk/inc/ncore_type_noisette.php

    r113630 r113633  
    4040        $retour = true;
    4141
    42         // Initialiser le contexte de rechargement
    43         // TODO : voir si on ajoute un var_mode=recalcul_types_noisette ?
    44 
    45         // On charge l'API de stockge de N-Core.
     42        // On charge l'API de stockage de N-Core.
    4643        // Ce sont ces fonctions qui aiguillent ou pas vers une éventuelle fonction spécifique de stockage.
    4744        include_spip("ncore/ncore");
  • _plugins_/n-core/trunk/ncore/ncore.php

    r113630 r113633  
    11<?php
    22/**
    3  * Ce fichier contient les fonctions du service de stockage N-Core pour les types de noisettes et les noisettes.
     3 * Ce fichier contient les fonctions de service N-Core pour les types de noisettes, les conteneurs
     4 * et les noisettes.
    45 *
    56 * Chaque fonction, soit aiguille, si elle existe, vers une fonction "homonyme" propre au plugin appelant
    67 * ou à un autre service de stockage, soit déroule sa propre implémentation.
    78 * Ainsi, les plugins externes peuvent, si elle leur convient, utiliser l'implémentation proposée par N-Core
    8  * en codant un minimum de fonctions, à savoir, `conteneur_identifier` et `conteneur_verifier`.
     9 * en codant un minimum de fonctions.
    910 */
    1011if (!defined('_ECRIRE_INC_VERSION')) {
     
    5253function ncore_type_noisette_stocker($plugin, $types_noisette, $recharger, $stockage = '') {
    5354
    54         // On cherche le service de stockage à utiliser selon la logique suivante :
    55         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    56         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    57         // - et sinon, on utilise la fonction de N-Core.
     55        // Si le plugin utilisateur possède un stockage propre il doit proposer un service spécifique pour enregistrer
     56        // le type de noisette.
    5857        include_spip('inc/ncore_utils');
    5958        if ($stocker = ncore_chercher_service($plugin, 'type_noisette_stocker', $stockage)) {
     
    174173function ncore_type_noisette_traiter_typo($plugin, $description, $stockage = '') {
    175174
    176         // N-Core traite toujours les champs nom et description inclus dans les YAML.
     175        // N-Core traite toujours les champs nom et description provenant du fichier YAML. On les traite donc
     176        // systématiquement avant d'appeler le service éventuel du plugin appelant.
    177177        $description['nom'] = typo($description['nom']);
    178178        if ($description['description']) {
     
    216216function ncore_type_noisette_decrire($plugin, $type_noisette, $stockage = '') {
    217217
    218         // On cherche le service de stockage à utiliser selon la logique suivante :
    219         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    220         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    221         // - et sinon, on utilise la fonction de N-Core.
     218        // Si le plugin utilisateur possède un stockage propre il doit proposer un service spécifique pour récupérer
     219        // la description brute d'un type de noisette.
    222220        include_spip('inc/ncore_utils');
    223221        if ($decrire = ncore_chercher_service($plugin, 'type_noisette_decrire', $stockage)) {
     
    243241
    244242/**
    245  * Renvoie, pour l'ensemble des types de noisette, l'information brute demandée
    246  * ou toute la description si aucune information n'est explicitement demandée.
     243 * Renvoie, pour l'ensemble des types de noisette, l'information demandée
     244 * ou toute la description. Les données sont renvoyées brutes.
    247245 *
    248246 * @package SPIP\NCORE\TYPE_NOISETTE\SERVICE
     
    255253 *        un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
    256254 * @param string $information
    257  *        Identifiant d'un champ de la description d'un type de noisette ou `signature`.
     255 *        Identifiant d'un champ de la description d'un type de noisette y compris le champ `signature`.
    258256 *        Si l'argument est vide, la fonction renvoie les descriptions complètes et si l'argument est
    259257 *        un champ invalide la fonction renvoie un tableau vide.
     
    262260 *
    263261 * @return array
    264  *        Tableau de la forme `[noisette] = information ou description complète`.
     262 *        Tableau de la forme `[type_noisette] = information ou description complète` ou tableau vide.
    265263 */
    266264function ncore_type_noisette_lister($plugin, $information = '', $stockage = '') {
    267265
    268         // On cherche le service de stockage à utiliser selon la logique suivante :
    269         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    270         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    271         // - et sinon, on utilise la fonction de N-Core.
     266        // Si le plugin utilisateur possède un stockage propre il doit proposer un service spécifique pour récupérer
     267        // les données requises de tous les types de noisette disponibles.
    272268        include_spip('inc/ncore_utils');
    273269        if ($lister = ncore_chercher_service($plugin, 'type_noisette_lister', $stockage)) {
     
    276272        } else {
    277273                // Le plugin ne propose pas de fonction propre ou le stockage N-Core est explicitement demandé.
     274                // -- On lit le cache des sesxcriptions ou des signatures suivant la demande.
    278275                // -- Initialisation du tableau de sortie
    279276                $types_noisettes = array();
     
    316313function ncore_type_noisette_initialiser_ajax($plugin) {
    317314
    318         // On cherche le service de stockage à utiliser selon la logique suivante :
    319         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    320         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    321         // - et sinon, on utilise la fonction de N-Core.
     315        // Si le plugin utilisateur permet la configuration du défaut Ajax ou ne suit pas la configuration de N-Core, il
     316        // doit proposer un service pour fournir cette valeur.
    322317        include_spip('inc/ncore_utils');
    323318        if ($configurer = ncore_chercher_service($plugin, 'type_noisette_initialiser_ajax', '')) {
     
    354349function ncore_type_noisette_initialiser_inclusion($plugin) {
    355350
    356         // On cherche le service de stockage à utiliser selon la logique suivante :
    357         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    358         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    359         // - et sinon, on utilise la fonction de N-Core.
     351        // Si le plugin utilisateur permet la configuration du défaut d'inclusion ou ne suit pas la configuration de N-Core,
     352        // il doit proposer un service pour fournir cette valeur.
    360353        include_spip('inc/ncore_utils');
    361354        if ($configurer = ncore_chercher_service($plugin, 'type_noisette_initialiser_inclusion', '')) {
     
    376369 * Cette information est utilisée a minima au chargement des types de noisettes disponibles.
    377370 *
    378  * Le service N-Core considère que par défaut le dossier relatif des types de noisette est 'noisettes/'.
     371 * Le service N-Core considère que par défaut le dossier relatif des types de noisette est `noisettes/`.
    379372 *
    380373 * @package SPIP\NCORE\TYPE_NOISETTE\SERVICE
     
    391384function ncore_type_noisette_initialiser_dossier($plugin) {
    392385
    393         // On cherche le service de stockage à utiliser selon la logique suivante :
    394         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    395         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    396         // - et sinon, on utilise la fonction de N-Core.
     386        // Si le plugin utilisateur permet la configuration du dossier des types de noisette ou ne suit pas la configuration
     387        // de N-Core, il doit proposer un service pour fournir cette valeur.
    397388        include_spip('inc/ncore_utils');
    398389        if ($configurer = ncore_chercher_service($plugin, 'type_noisette_initialiser_dossier', '')) {
     
    438429function ncore_noisette_stocker($plugin, $description, $stockage = '') {
    439430
    440         // On cherche le service de stockage à utiliser selon la logique suivante :
    441         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    442         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    443         // - et sinon, on utilise la fonction de N-Core.
     431        // Si le plugin utilisateur possède un stockage propre il doit proposer un service spécifique pour stocker
     432        // les données d'une noisette.
    444433        include_spip('inc/ncore_utils');
    445434        if ($stocker = ncore_chercher_service($plugin, 'noisette_stocker', $stockage)) {
     
    525514function ncore_noisette_changer_conteneur($plugin, $description, $id_conteneur, $rang, $profondeur, $stockage = '') {
    526515
    527         // On cherche le service de stockage à utiliser selon la logique suivante :
    528         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    529         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    530         // - et sinon, on utilise la fonction de N-Core.
     516        // Si le plugin utilisateur possède un stockage propre il doit proposer un service spécifique pour effectuer
     517        // le changement de conteneur d'une noisette.
    531518        include_spip('inc/ncore_utils');
    532519        if ($changer = ncore_chercher_service($plugin, 'noisette_changer_conteneur', $stockage)) {
     
    561548
    562549/**
    563  * Complète la description d'une noisette avec des champs spécifiques au plugin utilisateur si besoin.
     550 * Complète la description d'une noisette avec des champs spécifiques au plugin utilisateur, si besoin.
    564551 *
    565552 * Le plugin N-Core ne complète pas les descriptions de noisette.
     
    583570function ncore_noisette_completer($plugin, $description, $stockage = '') {
    584571
    585         $description_complete = $description;
    586 
    587         // On cherche le service de stockage à utiliser selon la logique suivante :
    588         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    589         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    590         // - et sinon, on utilise la fonction de N-Core.
     572        // Si le plugin utilisateur complète la description avec des champs spécifiques il doit proposer un service
     573        // de complément propre.
    591574        include_spip('inc/ncore_utils');
    592575        if ($completer = ncore_chercher_service($plugin, 'noisette_completer', $stockage)) {
    593576                // On passe le plugin appelant à la fonction car cela permet ainsi de mutualiser les services de stockage.
    594                 $description_complete = $completer($plugin, $description);
    595         }
    596 
    597         return $description_complete;
     577                $description = $completer($plugin, $description);
     578        }
     579
     580        return $description;
    598581}
    599582
     
    605588 * Le plugin N-Core n'a aucun champ textuel à traiter dans la description de base d'une noisette.
    606589 *
    607  * @package SPIP\NCORE\TYPE_NOISETTE\SERVICE
     590 * @package SPIP\NCORE\NOISETTE\SERVICE
    608591 *
    609592 * @uses ncore_chercher_service()
     
    624607        // N-Core n'a aucun champ textuel à traiter dans la description de base d'une noisette.
    625608        // Si le plugin appelant complète la description du type de noisette avec des champs textuels il doit
    626         // proposer un service propre de traitement de ces champs.
     609        // proposer un service propre de traitement typo de ces champs.
    627610        include_spip('inc/ncore_utils');
    628611        if ($traiter_typo = ncore_chercher_service($plugin, 'noisette_traiter_typo', $stockage)) {
     
    657640function ncore_noisette_ranger($plugin, $description, $rang_destination, $stockage = '') {
    658641
    659         // On cherche le service de stockage à utiliser selon la logique suivante :
    660         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    661         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    662         // - et sinon, on utilise la fonction de N-Core.
     642        // Si le plugin utilisateur possède un stockage propre il doit proposer un service spécifique pour changer
     643        // la position d'une noisette au sein d'un conteneur.
    663644        include_spip('inc/ncore_utils');
    664645        if ($ranger = ncore_chercher_service($plugin, 'noisette_ranger', $stockage)) {
     
    719700function ncore_noisette_destocker($plugin, $description, $stockage = '') {
    720701
    721         // On cherche le service de stockage à utiliser selon la logique suivante :
    722         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    723         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    724         // - et sinon, on utilise la fonction de N-Core.
     702        // Si le plugin utilisateur possède un stockage propre il doit proposer un service spécifique pour supprimer
     703        // une noisette de son conteneur.
    725704        include_spip('inc/ncore_utils');
    726705        if ($destocker = ncore_chercher_service($plugin, 'noisette_destocker', $stockage)) {
     
    731710                // -- N-Core stocke les noisettes dans une meta propre au plugin appelant contenant un tableau au format
    732711                //    [id_conteneur][rang] = description
    733                 // -- $description est soit le tableau descriptif de la noisette, soit le conteneur, et dans ce cas, il faut
    734                 //    supprimer toutes les noisettes du conteneur.
    735712
    736713                // Initialisation de la sortie.
     
    759736 * Renvoie un champ ou toute la description des noisettes d'un conteneur ou de tous les conteneurs.
    760737 * Le tableau retourné est indexé soit par identifiant de noisette soit par identifiant du conteneur et rang
    761  * de noisette.
     738 * de noisette. Les données sont renvoyées brutes.
    762739 *
    763740 * @package SPIP\NCORE\NOISETTE\SERVICE
     
    783760 *
    784761 * @return array
    785  *        Tableau de la liste des informations demandées indexé par identifiant de noisette ou par rang.
     762 *        Tableau de la liste des informations demandées indexé par identifiant de noisette ou par rang. Les données
     763 *        sont renvoyées brutes.
    786764 */
    787765function ncore_noisette_lister($plugin, $conteneur = array(), $information = '', $cle = 'rang_noisette', $stockage = '') {
    788766
    789         // On cherche le service de stockage à utiliser selon la logique suivante :
    790         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    791         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    792         // - et sinon, on utilise la fonction de N-Core.
     767        // Si le plugin utilisateur possède un stockage propre il doit proposer un service spécifique pour récupérer
     768        // les données demandées d'une liste noisette.
    793769        include_spip('inc/ncore_utils');
    794770        if ($lister = ncore_chercher_service($plugin, 'noisette_lister', $stockage)) {
     
    860836function ncore_noisette_decrire($plugin, $noisette, $stockage = '') {
    861837
    862         // On cherche le service de stockage à utiliser selon la logique suivante :
    863         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    864         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    865         // - et sinon, on utilise la fonction de N-Core.
     838        // Si le plugin utilisateur possède un stockage propre il doit proposer un service spécifique pour récupérer
     839        // la description brute d'une noisette.
    866840        include_spip('inc/ncore_utils');
    867841        if ($decrire = ncore_chercher_service($plugin, 'noisette_decrire', $stockage)) {
     
    920894 * Cette information est utilisée si le champ `encapsulation` de la noisette vaut `defaut`.
    921895 *
    922  * Le service N-Core positionne cette valeur à `true`.
     896 * Le service N-Core encapsule toujours les noisettes.
    923897 *
    924898 * @package SPIP\NCORE\NOISETTE\SERVICE
     
    935909function ncore_noisette_initialiser_encapsulation($plugin) {
    936910
    937         // On cherche le service de stockage à utiliser selon la logique suivante :
    938         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    939         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    940         // - et sinon, on utilise la fonction de N-Core.
     911        // Si le plugin utilisateur permet la configuration du défaut d'encapsulaiton ou ne suit pas la configuration
     912        // de N-Core, il doit proposer un service pour fournir cette valeur.
    941913        include_spip('inc/ncore_utils');
    942914        if ($configurer = ncore_chercher_service($plugin, 'noisette_initialiser_encapsulation', '')) {
     
    10571029
    10581030/**
    1059  * Reconstruit le conteneur sous forme de tableau à partir de son identifiant unique (fonction inverse
     1031 * Reconstruit le conteneur sous forme de tableau canonique à partir de son identifiant unique (fonction inverse
    10601032 * de `ncore_conteneur_identifier`).
    1061  * N-Core ne fournit le conteneur que pour les noisettes conteneur.
     1033 * N-Core ne fournit le tableau que pour les noisettes conteneur.
    10621034 * Pour les autres conteneurs, c'est au plugin utilisateur de calculer le tableau.
    10631035 *
     
    10821054        // Il faut recomposer le tableau du conteneur à partir de son id.
    10831055        // N-Core ne propose pas de fonction par défaut pour les conteneurs spécifiques aux plugins utilisateur
    1084         // sauf pour les noisettes conteneur.
     1056        // mais uniquement pour les noisettes conteneur.
    10851057        // Il est donc indispensable que le plugin utilisateur propose toujours une fonction de calcul du tableau
    10861058        // pour les conteneurs hors noisette conteneur.
     
    11731145        }
    11741146
    1175         // On cherche le service de stockage à utiliser selon la logique suivante :
    1176         // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
    1177         // - sinon, on utilise la fonction du plugin appelant si elle existe;
    1178         // - et sinon, on utilise la fonction de N-Core.
     1147        // Si le plugin utilisateur possède un stockage propre il doit proposer un service spécifique pour supprimer
     1148        // les noisettes d'un conteneur.
    11791149        include_spip('inc/ncore_utils');
    11801150        if ($destocker = ncore_chercher_service($plugin, 'conteneur_destocker', $stockage)) {
Note: See TracChangeset for help on using the changeset viewer.