Changeset 113862 in spip-zone


Ignore:
Timestamp:
Feb 12, 2019, 8:28:03 AM (7 months ago)
Author:
eric@…
Message:

Ne pas évaluer la constante racine dans la configuration mais juste au moment du nommage des caches.
Ajout de l'API d'effacement de la configuration et renommage.

Location:
_plugins_/cache/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/cache/trunk/cache/cache.php

    r113860 r113862  
    3939        // Initialisation du tableau de configuration avec les valeurs par défaut du plugin Cache.
    4040        $configuration_defaut = array(
    41                 'racine'          => _DIR_CACHE,
     41                'racine'          => '_DIR_CACHE',
    4242                'sous_dossier'    => false,
    4343                'nom_obligatoire' => array('nom'),
     
    6868        }
    6969
    70         // Pour faciliter la construction du chemin des caches on détermine une fois pour toute le dossier
    71         // de base des caches du plugin.
     70        // Pour faciliter la construction du chemin des caches on stocke les éléments récurrents composant
     71        // le dossier de base.
    7272        // -- Vérification de la localisation de la racine qui ne peut être que dans les trois dossiers SPIP
    73         //    prévus et de la présence du / final.
    74         if (!in_array($configuration['racine'], array(_DIR_CACHE, _DIR_TMP, _DIR_VAR))) {
     73        //    prévus.
     74        if (!in_array($configuration['racine'], array('_DIR_CACHE', '_DIR_TMP', '_DIR_VAR'))) {
    7575                $configuration['racine'] = $configuration_defaut['racine'];
    76         } else {
    77                 // On s'assure que la racine se termine toujours par un slash.
    78                 $configuration['racine'] = rtrim($configuration['racine'], '/') . '/';
    79         }
    80 
     76        }
    8177        // -- Sous-dossier spécifique au plugin
    82         $configuration['dossier_plugin'] = ($configuration['racine'] == _DIR_VAR) ? "cache-${plugin}/" : "${plugin}/";
    83         // -- Enregistrement du dossier de base
    84         $configuration['dossier_base'] = $configuration['racine'] . $configuration['dossier_plugin'];
    85 
    86         // -- Construction du tableau des composants du nom : dans l'ordre on a toujours les composants obligatoires
    87         //    suivis des composants faclutatifs.
     78        $configuration['dossier_plugin'] = ($configuration['racine'] == '_DIR_VAR') ? "cache-${plugin}/" : "${plugin}/";
     79
     80        // Construction du tableau des composants du nom : dans l'ordre on a toujours les composants obligatoires
     81        // suivis des composants faclutatifs.
    8882        $configuration['nom'] = array_merge($configuration['nom_obligatoire'], $configuration['nom_facultatif']);
    8983
     
    128122                // Détermination du répertoire final du fichier cache qui peut-être inclus dans un sous-dossier du dossier
    129123                // de base des caches du plugin.
    130                 $dir_cache = $configuration['dossier_base'];
     124                $dir_cache = $configuration['racine'] . $configuration['dossier_plugin'];
    131125                if ($configuration['sous_dossier']) {
    132126                        if (!empty($cache['sous_dossier'])) {
     
    199193
    200194                // On supprime le dossier de base pour n'avoir que la partie spécifique du cache.
    201                 $fichier_cache = str_replace($configuration['dossier_base'], '', $fichier_cache);
     195                $dir_cache = $configuration['racine'] . $configuration['dossier_plugin'];
     196                $fichier_cache = str_replace($dir_cache, '', $fichier_cache);
    202197
    203198                // Détermination du nom du cache sans extension et décomposition suivant la configuration du nom.               
  • _plugins_/cache/trunk/formulaires/cache_vider.php

    r113840 r113862  
    1212 * le vidage de tout ou partie des fichiers.
    1313 *
    14  * @uses cache_configuration_lire()
     14 * @uses cache_obtenir_configuration()
    1515 * @uses cache_cache_configurer()
    1616 * @uses cache_cache_vider_charger()
     
    2828        include_spip('inc/cache');
    2929        include_spip('cache/cache');
    30         if (empty($configuration) and (!$configuration = cache_configuration_lire($plugin))) {
     30        if (empty($configuration) and (!$configuration = cache_obtenir_configuration($plugin))) {
    3131                $configuration = cache_cache_configurer($plugin);
    3232        }
  • _plugins_/cache/trunk/inc/cache.php

    r113860 r113862  
    1515 * @api
    1616 *
    17  * @uses cache_configuration_lire()
     17 * @uses cache_obtenir_configuration()
    1818 * @uses cache_cache_configurer()
    1919 * @uses cache_cache_composer()
     
    4040        static $configuration = array();
    4141        include_spip('cache/cache');
    42         if (empty($configuration[$plugin]) and (!$configuration[$plugin] = cache_configuration_lire($plugin))) {
     42        if (empty($configuration[$plugin]) and (!$configuration[$plugin] = cache_obtenir_configuration($plugin))) {
    4343                $configuration[$plugin] = cache_cache_configurer($plugin);
    4444        }
     
    6565        if ($fichier_cache) {
    6666                // On crée les répertoires si besoin
    67                 sous_repertoire($configuration[$plugin]['racine'], rtrim($configuration[$plugin]['dossier_plugin'], '/'));
     67                $dir_cache = sous_repertoire(
     68                        constant($configuration[$plugin]['racine']),
     69                        rtrim($configuration[$plugin]['dossier_plugin'], '/')
     70                );
    6871                if ($configuration[$plugin]['sous_dossier']) {
    69                         sous_repertoire($configuration[$plugin]['dossier_base'], rtrim($cache['sous_dossier'], '/'));
     72                        sous_repertoire($dir_cache, rtrim($cache['sous_dossier'], '/'));
    7073                }
    7174
     
    102105 * @api
    103106 *
    104  * @uses cache_configuration_lire()
     107 * @uses cache_obtenir_configuration()
    105108 * @uses cache_cache_configurer()
    106109 * @uses cache_cache_composer()
     
    125128        static $configuration = array();
    126129        include_spip('cache/cache');
    127         if (empty($configuration[$plugin]) and (!$configuration[$plugin] = cache_configuration_lire($plugin))) {
     130        if (empty($configuration[$plugin]) and (!$configuration[$plugin] = cache_obtenir_configuration($plugin))) {
    128131                $configuration[$plugin] = cache_cache_configurer($plugin);
    129132        }
     
    172175 * @api
    173176 *
    174  * @uses cache_configuration_lire()
     177 * @uses cache_obtenir_configuration()
    175178 * @uses cache_cache_configurer()
    176179 * @uses cache_cache_composer()
     
    191194        static $configuration = array();
    192195        include_spip('cache/cache');
    193         if (empty($configuration[$plugin]) and (!$configuration[$plugin] = cache_configuration_lire($plugin))) {
     196        if (empty($configuration[$plugin]) and (!$configuration[$plugin] = cache_obtenir_configuration($plugin))) {
    194197                $configuration[$plugin] = cache_cache_configurer($plugin);
    195198        }
     
    226229 * @api
    227230 *
    228  * @uses cache_configuration_lire()
     231 * @uses cache_obtenir_configuration()
    229232 * @uses cache_cache_configurer()
    230233 * @uses cache_cache_composer()
     
    244247        static $configuration = array();
    245248        include_spip('cache/cache');
    246         if (empty($configuration[$plugin]) and (!$configuration[$plugin] = cache_configuration_lire($plugin))) {
     249        if (empty($configuration[$plugin]) and (!$configuration[$plugin] = cache_obtenir_configuration($plugin))) {
    247250                $configuration[$plugin] = cache_cache_configurer($plugin);
    248251        }
     
    266269 * @api
    267270 *
    268  * @uses cache_configuration_lire()
     271 * @uses cache_obtenir_configuration()
    269272 * @uses cache_cache_configurer()
    270273 * @uses cache_cache_composer()
     
    290293        static $configuration = array();
    291294        include_spip('cache/cache');
    292         if (empty($configuration[$plugin]) and (!$configuration[$plugin] = cache_configuration_lire($plugin))) {
     295        if (empty($configuration[$plugin]) and (!$configuration[$plugin] = cache_obtenir_configuration($plugin))) {
    293296                $configuration[$plugin] = cache_cache_configurer($plugin);
    294297        }
     
    324327 * @api
    325328 *
    326  * @uses cache_configuration_lire()
     329 * @uses cache_obtenir_configuration()
    327330 * @uses cache_cache_configurer()
    328331 * @uses cache_cache_composer()
     
    350353        static $configuration = array();
    351354        include_spip('cache/cache');
    352         if (empty($configuration[$plugin]) and (!$configuration[$plugin] = cache_configuration_lire($plugin))) {
     355        if (empty($configuration[$plugin]) and (!$configuration[$plugin] = cache_obtenir_configuration($plugin))) {
    353356                $configuration[$plugin] = cache_cache_configurer($plugin);
    354357        }
     
    455458 *        enregistrée.
    456459 */
    457 function cache_configuration_lire($plugin) {
     460function cache_obtenir_configuration($plugin) {
    458461
    459462        // Initialisation de la configuration à retourner
     
    468471        return $configuration_lue;
    469472}
     473
     474
     475/**
     476 * Efface la configuration standard des caches d'un plugin utilisateur ou de tous les plugins utilisateur.
     477 *
     478 * @api
     479 *
     480 * @uses lire_config()
     481 * @uses effacer_config()
     482 *
     483 * @param string $plugin
     484 *        Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier
     485 *        ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
     486 *        Si vide, toutes les configurations sont effacées.
     487 *
     488 * @return bool
     489 *         True si la suppression s'est bien passée, false sinon.
     490 */
     491function cache_effacer_configuration($plugin) {
     492
     493        // Initialisation de la configuration à retourner
     494        include_spip('inc/config');
     495        $configuration_effacee = true;
     496
     497        if ($plugin) {
     498                // Récupération de la meta du plugin Cache
     499                $configuration_plugin = lire_config("cache/${plugin}", array());
     500                if ($configuration_plugin) {
     501                        effacer_config("cache/${plugin}");
     502                } else {
     503                        $configuration_effacee = false;
     504                }
     505        } else {
     506                effacer_config('cache');
     507        }
     508
     509        return $configuration_effacee;
     510}
Note: See TracChangeset for help on using the changeset viewer.