Changeset 107204 in spip-zone


Ignore:
Timestamp:
Oct 29, 2017, 4:28:34 PM (22 months ago)
Author:
eric@…
Message:

Ajout d'une fonction de service pour compléter la description de chaque type de noisette lors de leur chargement. Simplifie la fonction de service de stockage et améliore les performances.

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

Legend:

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

    r106533 r107204  
    133133                                        $description['contexte'] = serialize($description['contexte']);
    134134                                        $description['parametres'] = serialize($description['parametres']);
     135                                        // Complément spécifique au plugin utilisateur si nécessaire
     136                                        $description = ncore_type_noisette_completer($plugin, $description, $stockage);
    135137
    136138                                        if (!$md5_stocke or $recharger) {
  • _plugins_/n-core/trunk/ncore/ncore.php

    r107099 r107204  
    2727 * @package SPIP\NCORE\SERVICE\TYPE_NOISETTE
    2828 *
     29 * @uses ncore_chercher_service()
    2930 * @uses cache_lire()
    3031 * @uses cache_ecrire()
     
    113114
    114115/**
     116 * Complète la description d'un type de noisette issue de la lecture de son fichier YAML.
     117 *
     118 * Le plugin N-Core ne complète pas les types de noisette.
     119 *
     120 * @package SPIP\NCORE\SERVICE\TYPE_NOISETTE
     121 *
     122 * @uses ncore_chercher_service()
     123 *
     124 * @param string $plugin
     125 *        Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier ou
     126 *        un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
     127 * @param array  $description
     128 *        Description du type de noisette issue de la lecture du fichier YAML. Suivant le plugin utilisateur elle
     129 *        nécessite d'être compléter avant son stockage.
     130 * @param string $stockage
     131 *        Identifiant du service de stockage à utiliser si précisé. Dans ce cas, ni celui du plugin ni celui de N-Core
     132 *        ne seront utilisés. En général, cet identifiant est le préfixe du plugin fournissant le stockage.
     133 *
     134 * @return array
     135 *        Description du type de noisette éventuellement compléter par le plugin utilisateur.
     136 */
     137function ncore_type_noisette_completer($plugin, $description, $stockage = '') {
     138
     139        $description_complete = $description;
     140
     141        // On cherche le service de stockage à utiliser selon la logique suivante :
     142        // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
     143        // - sinon, on utilise la fonction du plugin appelant si elle existe;
     144        // - et sinon, on utilise la fonction de N-Core.
     145        include_spip('inc/ncore_utils');
     146        if ($completer = ncore_chercher_service($plugin, 'type_noisette_completer', $stockage)) {
     147                // On passe le plugin appelant à la fonction car cela permet ainsi de mutualiser les services de stockage.
     148                $description_complete = $completer($plugin, $description);
     149        }
     150
     151        return $description_complete;
     152}
     153
     154/**
    115155 * Renvoie la description brute d'un type de noisette sans traitement typo ni désérialisation des champs de type
    116156 * tableau sérialisé.
     
    120160 * @package SPIP\NCORE\SERVICE\TYPE_NOISETTE
    121161 *
     162 * @uses ncore_chercher_service()
    122163 * @uses cache_lire()
    123164 *
     
    167208 * @package SPIP\NCORE\SERVICE\TYPE_NOISETTE
    168209 *
     210 * @uses ncore_chercher_service()
    169211 * @uses cache_lire()
    170212 *
     
    610652 * car N-Core ne fournit pas de calcul par défaut.
    611653 *
    612  * @package SPIP\NCORE\SERVICE\NOISETTE
     654 * @package SPIP\NCORE\SERVICE\CONTENEUR
    613655 *
    614656 * @uses ncore_chercher_service()
Note: See TracChangeset for help on using the changeset viewer.