source: spip-zone/_plugins_/taxonomie/trunk/cache/taxonomie.php @ 113832

Last change on this file since 113832 was 113832, checked in by eric@…, 10 days ago

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

  • Property svn:eol-style set to native
File size: 2.5 KB
Line 
1<?php
2/**
3 * Ce fichier contient les fonctions de service nécessité par le plugin Cache Factory.
4 *
5 */
6if (!defined('_ECRIRE_INC_VERSION')) {
7        return;
8}
9
10
11/**
12 * Renvoie la configuration spécifique des caches de Taxonomie.
13 *
14 * @param string $plugin
15 *        Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier ou
16 *        un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
17 *
18 * @return array
19 *        Tableau de la configuration brute du plugin Taxonomie.
20 */
21function taxonomie_cache_configurer($plugin) {
22
23        // Initialisation du tableau de configuration avec les valeurs par défaut du plugin Cache.
24        $configuration = array(
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'      => '_'
33        );
34
35        return $configuration;
36}
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 TracBrowser for help on using the repository browser.