Changeset 113835 in spip-zone for _plugins_/cache/trunk/cache/cache.php


Ignore:
Timestamp:
Feb 10, 2019, 4:48:45 PM (2 months ago)
Author:
eric@…
Message:

Mise à jour des services et API et début du formulaire de vidage

File:
1 edited

Legend:

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

    r113830 r113835  
    209209
    210210                // Identification d'un sous-dossier si il existe.
    211                 if ($sous_dossier = dirname($fichier_cache)) {
     211                if ($configuration['sous_dossier'] and ($sous_dossier = dirname($fichier_cache))) {
    212212                        $cache['sous_dossier'] = $sous_dossier;
    213213                }
     
    221221 * Complète la description canonique d'un cache.
    222222 *
    223  * Le plugin Cache Factory ne complète pas la description canonique.
     223 * Le plugin Cache Factory complète la description canonique avec le nom sans extension et l'extension du fichier.
    224224 *
    225225 * @uses cache_chercher_service()
     
    229229 *        ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
    230230 * @param array  $cache
    231   *       Tableau identifiant le cache pour lequel on veut construire le nom.
     231 *       Tableau identifiant le cache pour lequel on veut construire le nom.
     232 * @param string $fichier_cache
     233 *        Fichier cache désigné par son chemin complet.
    232234 * @param array  $configuration
    233235 *        Configuration complète des caches du plugin utlisateur lue à partir de la meta de stockage.
     
    236238 *         Description du cache complétée par un ensemble de données propres au plugin.
    237239 */
    238 function cache_cache_completer($plugin, $cache, $configuration) {
     240function cache_cache_completer($plugin, $cache, $fichier_cache, $configuration) {
     241
     242        // Cache Factory complète la description avec le nom sans extension et l'extension du fichier cache avant
     243        // de passer la main au plugin utilisateur.
     244        $cache['nom_cache'] = basename($fichier_cache, $configuration['extension']);
     245        $cache['extension_cache'] = $configuration['extension'];
    239246
    240247        // Le plugin utilisateur peut fournir un service propre pour construire le chemin complet du fichier cache.
     
    242249        if ($completer = cache_chercher_service($plugin, 'cache_completer')) {
    243250                // On passe le plugin appelant à la fonction car cela permet ainsi de mutualiser les services de stockage.
    244                 $cache = $completer($plugin, $cache, $configuration);
     251                $cache = $completer($plugin, $cache, $fichier_cache, $configuration);
    245252        }
    246253
    247254        return $cache;
     255}
     256
     257
     258/**
     259 * Effectue le chargement du formulaire de vidage des caches pour un plugin utilisateur donné.
     260 *
     261 * Le plugin Cache Factory propose une version simplifié du formulaire où tous les fichiers caches
     262 * sont listées par ordre alphabétique sans possibilité de regroupement.
     263 *
     264 * @uses cache_chercher_service()
     265 *
     266 * @param string $plugin
     267 *        Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier
     268 *        ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
     269 * @param array  $configuration
     270 *        Configuration complète des caches du plugin utilisateur lue à partir de la meta de stockage.
     271 *
     272 * @return array
     273 *         Description du cache complétée par un ensemble de données propres au plugin.
     274 */
     275function cache_cache_vider_charger($plugin, $configuration) {
     276
     277        // Stocker le préfixe et le nom du plugin de façon systématique.
     278        $valeurs = array('_prefixe' => $plugin);
     279        $informer = chercher_filtre('info_plugin');
     280        $valeurs['_nom_plugin'] = $informer($plugin, 'nom', true);
     281
     282        // Le plugin utilisateur peut fournir un service propre pour construire le chemin complet du fichier cache.
     283        // Néanmoins, étant donné la généricité du mécanisme offert par le plugin Cache cela devrait être rare.
     284        if ($charger = cache_chercher_service($plugin, 'cache_vider_charger')) {
     285                // On passe le plugin appelant à la fonction car cela permet ainsi de mutualiser les services de stockage.
     286                $valeurs_plugin = $charger($plugin, $configuration);
     287                if ($valeurs_plugin) {
     288                        $valeurs = array_merge($valeurs, $valeurs_plugin);
     289                }
     290        } else {
     291                // On présente simplement les fichiers caches en ordre alphabétique en visualisant uniquement
     292                // le sous-dossuer éventuel et le nom du fichier sans décomposition.
     293                $valeurs['_caches'] = cache_repertorier($plugin, array());
     294        }
     295
     296        return $valeurs;
    248297}
    249298
Note: See TracChangeset for help on using the changeset viewer.