Changeset 110221 in spip-zone


Ignore:
Timestamp:
May 12, 2018, 12:50:00 PM (2 years ago)
Author:
eric@…
Message:

Amélioration de la localisation des types de noisette : on fait en sorte que la noisette conteneur fournie par N-Core soit toujours recherchée dans son propre répertoire et non dans celui du plugin appelant.
On modifie donc le prototype pour permettre de renvoyer soit le dossier relatif soit le chemin relatif du type de noisette.

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

Legend:

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

    r110220 r110221  
    88}
    99
     10// -----------------------------------------------------------------------
     11// --------------------- FILTRES TYPES DE NOISETTE -----------------------
     12// -----------------------------------------------------------------------
    1013
    1114/**
     
    7881        return $est_ajax[$plugin][$type_noisette];
    7982}
    80 
    8183
    8284/**
     
    144146}
    145147
     148/**
     149 * Renvoie le dossier relatif des types de noisette pour le plugin appelant ou la localisation
     150 * du type de noisette demandé.
     151 * Cette fonction gère le cas particulier de la noisette conteneur fournie par N-Core qui est elle
     152 * toujours dans le dossier par défaut de N-Core.
     153 *
     154 * @package SPIP\NCORE\TYPE_NOISETTE\API
     155 *
     156 * @api
     157 * @filtre
     158 *
     159 * @uses ncore_type_noisette_initialiser_dossier()
     160 *
     161 * @param string $plugin
     162 *        Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier ou
     163 *        un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
     164 * @param string $type_noisette
     165 *            Identifiant du type de noisette ou chaine vide si on ne veut que le dossier.
     166 *
     167 * @return string
     168 *        Chemin relatif du dossier où chercher les types de noisette ou du type de noisette demandé.
     169 */
     170function type_noisette_localiser($plugin, $type_noisette = '') {
     171
     172        // Si le type de noisette est précisé et correspond à la noisette conteneur fournie par N-Core
     173        // alors on impose le dossier à celui par défaut de N-Core.
     174        // Sinon on prend le dossier du plugin appelant.
     175        include_spip('ncore/ncore');
     176        if ($type_noisette == 'conteneur') {
     177                $dossier = ncore_type_noisette_initialiser_dossier('ncore');
     178        } else {
     179                $dossier = ncore_type_noisette_initialiser_dossier($plugin);
     180        }
     181
     182        // Si le type de noisette est vide on ne renvoie que le dossier, sinon on renvoie le chemin de
     183        // la noisette.
     184        return $dossier . $type_noisette;
     185}
     186
     187
     188// -----------------------------------------------------------------------
     189// -------------------- FILTRES & BALISES NOISETTES ----------------------
     190// -----------------------------------------------------------------------
     191include_spip('public/noisette_compiler');
     192include_spip('public/noisette_preview');
     193include_spip('public/noisette_repertorier');
    146194
    147195/**
     
    230278
    231279
    232 /**
    233  * Renvoie la localisation relative des types de noisette pour le plugin appelant.
    234  *
    235  * @package SPIP\NCORE\TYPE_NOISETTE\API
    236  *
    237  * @api
    238  * @filtre
    239  *
    240  * @uses ncore_type_noisette_initialiser_dossier()
    241  *
    242  * @param string $plugin
    243  *        Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier ou
    244  *        un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
    245  *
    246  * @return string
    247  *        Chemin relatif du dossier où chercher les types de noisette.
    248  */
    249 function type_noisette_localiser($plugin) {
    250 
    251         include_spip('ncore/ncore');
    252         $dossier = ncore_type_noisette_initialiser_dossier($plugin);
    253 
    254         return $dossier;
    255 }
    256 
    257 // Balises
    258 include_spip('public/noisette_compiler');
    259 include_spip('public/noisette_preview');
    260 include_spip('public/noisette_repertorier');
     280// -----------------------------------------------------------------------
     281// ------------------------- BALISES CONTENEURS --------------------------
     282// -----------------------------------------------------------------------
    261283include_spip('public/conteneur_identifier');
  • _plugins_/n-core/trunk/paquet.xml

    r110220 r110221  
    22        prefix="ncore"
    33        categorie="outil"
    4         version="0.3.7"
     4        version="0.3.8"
    55        etat="dev"
    66        compatibilite="[3.2.0;3.2.*]"
  • _plugins_/n-core/trunk/public/noisette_compiler.php

    r110220 r110221  
    3535        // On prépare le code en fonction du type d'inclusion dynamique ou pas
    3636        $inclusion_dynamique = "\"<?php echo recuperer_fond(
    37                 type_noisette_localiser($plugin)\".$type_noisette.\",
     37                \".type_noisette_localiser($plugin, $type_noisette).\",
    3838                \".var_export(array_merge(unserialize($parametres), noisette_contextualiser($plugin, $noisette, $type_noisette, $environnement, $stockage)),true).\",
    3939                \".var_export(array('ajax'=>(type_noisette_ajaxifier($plugin, $type_noisette, $stockage))),true).\"
    4040        );?>\"";
    4141        $inclusion_statique = "recuperer_fond(
    42                 type_noisette_localiser($plugin).$type_noisette,
     42                type_noisette_localiser($plugin, $type_noisette),
    4343                array_merge(unserialize($parametres), noisette_contextualiser($plugin, $noisette, $type_noisette, $environnement, $stockage)),
    4444                array('ajax'=>(type_noisette_ajaxifier($plugin, $type_noisette, $stockage)))
  • _plugins_/n-core/trunk/public/noisette_preview.php

    r110200 r110221  
    4848                // On récupère le dossier de stockage des type de noisette afin de vérifier si un squelette de prévisualisation
    4949                // existe pour le type de noisette concerné.
    50                 include_spip('ncore/ncore');
    5150                include_spip('inc/utils');
    52                 $squelette_preview = ncore_type_noisette_initialiser_dossier($plugin) . $noisette['type_noisette'] . '-preview';
     51                $squelette_preview = type_noisette_localiser($plugin, $noisette['type_noisette']) . '-preview';
    5352                if (trouver_fond($squelette_preview)) {
    5453                        $preview = recuperer_fond($squelette_preview, $noisette);
Note: See TracChangeset for help on using the changeset viewer.