Changeset 113516 in spip-zone


Ignore:
Timestamp:
Jan 19, 2019, 8:05:38 PM (3 months ago)
Author:
eric@…
Message:

On crée un nouveau service permettant à un plugin de positionner le défaut d'inclusion à une valeur différente de celle de N-Core (voire de la configurer).
Le champ inclusion devient donc ternaire : defaut (par défaut), statique ou dynamique

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

Legend:

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

    r113513 r113516  
    9696                                'contexte'      => array(),
    9797                                'ajax'          => 'defaut',
    98                                 'inclusion'     => 'statique',
     98                                'inclusion'     => 'defaut',
    9999                                'parametres'    => array(),
    100100                                'plugin'        => $plugin,
  • _plugins_/n-core/trunk/ncore/ncore.php

    r113137 r113516  
    293293
    294294        return $defaut_ajax;
     295}
     296
     297/**
     298 * Renvoie la configuration par défaut de l'inclusion dynamique à appliquer pour la compilation des noisettes.
     299 * Cette information est utilisée si la description YAML d'un type noisette ne contient pas de tag inclusion
     300 * ou contient un tag inclusion à `defaut`.
     301 *
     302 * Le service N-Core considère que toute noisette est par défaut insérée en statique.
     303 *
     304 * @package SPIP\NCORE\TYPE_NOISETTE\SERVICE
     305 *
     306 * @uses ncore_chercher_service()
     307 *
     308 * @param string $plugin
     309 *        Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier ou
     310 *        un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
     311 *
     312 * @return bool
     313 *              `true` si par défaut une noisette est insérée en dynamique, `false` sinon.
     314 */
     315function ncore_type_noisette_initialiser_inclusion($plugin) {
     316
     317        // On cherche le service de stockage à utiliser selon la logique suivante :
     318        // - si le service de stockage est non vide on l'utilise en considérant que la fonction existe forcément;
     319        // - sinon, on utilise la fonction du plugin appelant si elle existe;
     320        // - et sinon, on utilise la fonction de N-Core.
     321        include_spip('inc/ncore_utils');
     322        if ($configurer = ncore_chercher_service($plugin, 'type_noisette_initialiser_inclusion', '')) {
     323                // On passe le plugin appelant à la fonction car cela permet ainsi de mutualiser les services de stockage.
     324                // On autorise la fonction du plugin à retourner autre chose que true ou false si tant est que l'on puisse
     325                // en déduire un booléen (par exemple, 'on' et '' comme le retourne une case à cocher du plugin Saisies).
     326                $defaut_inclusion = $configurer($plugin) ? true : false;
     327        } else {
     328                // Le service ne propose pas de fonction propre, on utilise celle de N-Core.
     329                $defaut_inclusion = false;
     330        }
     331
     332        return $defaut_inclusion;
    295333}
    296334
  • _plugins_/n-core/trunk/ncore_fonctions.php

    r113150 r113516  
    122122                        include_spip("ncore/ncore");
    123123
     124                        // On détermine la valeur par défaut de l'ajax des noisettes pour le plugin appelant.
     125                        $defaut_inclusion = ncore_type_noisette_initialiser_inclusion($plugin);
     126
    124127                        // On répertorie la configuration d'inclusion de toutes le types noisettes disponibles et on
    125128                        // détermine si le type demandé est dynamique ou pas.
    126129                        if ($inclusion_types_noisette = ncore_type_noisette_lister($plugin, 'inclusion', $stockage)) {
    127130                                foreach ($inclusion_types_noisette as $_type_noisette => $_inclusion) {
    128                                         $est_dynamique[$plugin][$_type_noisette] = ($_inclusion == 'dynamique') ? true : false;
     131                                        $est_dynamique[$plugin][$_type_noisette] = ($_inclusion == 'defaut')
     132                                                ? $defaut_inclusion
     133                                                : ($_inclusion == 'dynamique') ? true : false;
    129134                                }
    130135                        }
  • _plugins_/n-core/trunk/paquet.xml

    r113513 r113516  
    22        prefix="ncore"
    33        categorie="outil"
    4         version="0.8.1"
     4        version="0.8.2"
    55        etat="test"
    66        compatibilite="[3.2.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.