Changeset 113832 in spip-zone


Ignore:
Timestamp:
Feb 10, 2019, 10:10:25 AM (10 days ago)
Author:
eric@…
Message:

Mise au point de la gestion des caches avec le nouveau plugin Cache Facrtory

Location:
_plugins_/taxonomie/trunk
Files:
3 deleted
4 edited

Legend:

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

    r113783 r113832  
    2323        // Initialisation du tableau de configuration avec les valeurs par défaut du plugin Cache.
    2424        $configuration = array(
    25                 'racine'        => _DIR_VAR,
    26                 'nom'           => array('tsn', 'service', 'action', 'language', 'section'),
    27                 'extension'     => '.txt',
    28                 'securisation'  => false,
    29                 'serialisation' => true,
    30                 'separateur'    => '_'
     25                'racine'          => _DIR_VAR,
     26                'sous_dossier'    => false,
     27                'nom_obligatoire' => array('tsn', 'service', 'action', 'language'),
     28                'nom_facultatif'  => array('section'),
     29                'extension'       => '.txt',
     30                'securisation'    => false,
     31                'serialisation'   => true,
     32                'separateur'      => '_'
    3133        );
    3234
    3335        return $configuration;
    3436}
     37
     38
     39/**
     40 * Complète la description canonique d'un cache.
     41 * Le plugin Taxonomie rajoute le nom scientifique du taxon.
     42 *
     43 * @param string $plugin
     44 *        Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier
     45 *        ou un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
     46 * @param array  $cache
     47 *       Tableau identifiant le cache pour lequel on veut construire le nom.
     48 * @param string $fichier_cache
     49 *        Fichier cache désigné par son chemin complet.
     50 * @param array  $configuration
     51 *        Configuration complète des caches du plugin utilisateur lue à partir de la meta de stockage.
     52 *
     53 * @return array
     54 *         Description du cache complétée par un ensemble de données propres au plugin.
     55 */
     56function taxonomie_cache_completer($plugin, $cache, $fichier_cache, $configuration) {
     57
     58        // Tableau des taxons pour éviter de faire des appels SQL à chaque cache.
     59        static $taxons = array();
     60
     61        // On rajoute le nom scientifique du taxon pour un éventuel affichage.
     62        // Si le taxon a été supprimé de la base le nom ne sera pas trouvé.
     63        if (isset($cache['tsn'])) {
     64                if (!isset($taxons[$cache['tsn']])) {
     65                        // Si pas encore stocké, on cherche le nom scientifique du taxon et on le sauvegarde.
     66                        $where = array('tsn=' . intval($cache['tsn']));
     67                        $taxons[$cache['tsn']] = '';
     68                        if ($nom = sql_getfetsel('nom_scientifique', 'spip_taxons', $where)) {
     69                                $taxons[$cache['tsn']] = $nom;
     70                        }
     71                }
     72                $cache['nom_scientifique'] = $taxons[$cache['tsn']];
     73        }
     74
     75        return $cache;
     76}
  • _plugins_/taxonomie/trunk/demo/taxonomie.html

    r113715 r113832  
    99        include_spip('inc/filtres');
    1010        include_spip('inc/taxonomie');
     11        include_spip('inc/cache');
    1112?>
     13
     14        <h2>Cache</h2>
     15<?php
     16        $filtres = array(
     17                'service' => 'itis',
     18        );
     19        $caches = cache_repertorier('taxonomie', $filtres);
     20        var_dump("Liste des caches", $caches);
     21        var_dump(glob('../local/cache-taxonomie/*.txt'));
     22?>
     23        <?php die(); ?>
    1224
    1325        <h2>Action : list_vernaculars</h2>
    1426<?php
    15 $langue = 'french';
    16  $tsns = itis_list_vernaculars($langue);
    17  var_dump("Noms communs en $langue", $tsns);
     27        $langue = 'french';
     28        $tsns = itis_list_vernaculars($langue);
     29        var_dump("Noms communs en $langue", $tsns);
    1830?>
    19         <?php die(); ?>
    2031
    2132<?php
  • _plugins_/taxonomie/trunk/formulaires/vider_cache_taxonomie.html

    r113721 r113832  
    2222                                                        class="checkbox checkbox_caches #_services:CLE"
    2323                                                        id="#VALEUR{nom_cache}"
    24                                                         value="#VALEUR{fichier_cache}" />
     24                                                        value="#CLE" />
    2525                                                <label for="#VALEUR{nom_cache}">
    26                                                         [(#VALEUR{tsn})&nbsp;|&nbsp;#VALEUR{action}[&nbsp;|&nbsp;(#VALEUR{langue})][&nbsp;-&nbsp;<i>(#VALEUR{nom_scientifique})</i>]]
     26                                                        [(#VALEUR{tsn})&nbsp;|&nbsp;#VALEUR{action}[&nbsp;|&nbsp;(#VALEUR{language})][&nbsp;-&nbsp;<i>(#VALEUR{nom_scientifique})</i>]]
    2727                                                </label>
    2828                                        </div>
  • _plugins_/taxonomie/trunk/formulaires/vider_cache_taxonomie.php

    r113719 r113832  
    2323        $valeurs = array();
    2424
     25        // On constitue la liste des services requis par l'appel
     26        include_spip('inc/taxonomie');
     27        $services = taxon_lister_services();
     28
    2529        // On récupère les caches et leur description pour donner un maximum d'explication sur le contenu.
    26         include_spip('inc/taxonomie_cacher');
    27         $valeurs['_caches'] = cache_taxonomie_repertorier();
     30        include_spip('inc/cache');
     31        foreach ($services as $_service => $_titre) {
     32                // On récupère les caches du service
     33                $filtres = array('service' => $_service);
     34                $caches = cache_repertorier('taxonomie', $filtres);
     35
     36                // Si il existe des caches pour le service on stocke les informations recueillies
     37                if ($caches) {
     38                        $valeurs['_caches'][$_service]['titre_service'] = $_titre;
     39                        $valeurs['_caches'][$_service]['caches'] = $caches;
     40                }
     41        }
    2842
    2943        return $valeurs;
    3044}
     45
    3146
    3247/**
     
    5267 * Exécution du formulaire : la liste des caches sélectionnés est récupérée et fournie à l'API cache pour suppression.
    5368 *
    54  * @uses cache_taxonomie_supprimer()
     69 * @uses cache_vider()
    5570 *
    5671 * @return array
     
    6681
    6782        // On appelle l'API des caches
    68         include_spip('inc/taxonomie_cacher');
    69         cache_taxonomie_supprimer($caches);
     83        include_spip('inc/cache');
     84        cache_vider('taxonomie', $caches);
    7085
    7186        $retour['message_ok'] = _T('taxonomie:succes_vider_caches');
Note: See TracChangeset for help on using the changeset viewer.