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

File:
1 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}
Note: See TracChangeset for help on using the changeset viewer.