source: spip-zone/_plugins_/dictionnaires/trunk/dictionnaires_pipelines.php @ 115379

Last change on this file since 115379 was 115379, checked in by real3t@…, 17 months ago

[Dictionnaires] Mise à jour commentaire de la fonction

File size: 3.2 KB
Line 
1<?php
2
3/**
4 * Usage de pipelines
5 *
6 * @package SPIP\Dictionnaires\Pipelines
7**/
8
9// Sécurité
10if (!defined('_ECRIRE_INC_VERSION')) {
11        return;
12}
13
14/**
15 * Crée des liaisons entre les objets et les définitions (à faire)
16 * Met à jour le cache des définitions
17 *
18 * Pour chaque objet édité, regarde si les contenus possèdent des définitions
19 * que l'on connaît et dans ce cas crée une liaison entre l'objet et la définition.
20 *
21 * Cela permet de connaître, pour une définition donnée, la liste des
22 * objets sur lesquels est rattaché une définition. À l'inverse, cela
23 * permet, pour un objet de connaître les définitions qu'il possède.
24 *
25 * @todo
26 *     Tout cela est à faire !!!
27 *
28 * @pipeline post_edition
29 *
30 * @param array $flux   Données du pipeline
31 * @return array        Données du pipeline
32**/
33function dictionnaires_post_edition($flux) {
34        if($flux['args']['action'] == 'instituer') {
35                $objet = objet_type($flux['args']['table']);
36                if (($objet === 'dictionnaire') or ($objet === 'definition')) {
37                        include_spip('inc/dictionnaires');
38                        dictionnaires_lister_definitions(true);
39                }
40        }
41       
42        // TOUT CELA EST A FAIRE
43        return $flux;
44
45        // Seulement si c'est une modif d'objet
46        if ($flux['args']['action'] == 'modifier' and $id_objet = $flux['args']['id_objet']){
47                $trouver_table = charger_fonction('trouver_table', 'base/');
48                $desc = $trouver_table($flux['args']['table_objet'], $flux['args']['serveur']);
49                $id_table_objet = id_table_objet($flux['args']['type']);
50               
51                // On cherche les champs textuels
52                $champs_texte = array();
53                foreach ($desc['field'] as $champ=>$sql){
54                        if (preg_match('/(text|blob|varchar)/', $sql)){
55                                $champs_texte[] = $champ;
56                        }
57                }
58               
59                // On récupère ces champs
60                $textes = sql_fetsel($champs_texte, $flux['args']['spip_table_objet'], "$id_table_objet = $id_objet");
61                // On récupère les définitions
62                include_spip('inc/dictionnaires');
63                $definitions = dictionnaires_lister_definitions();
64               
65                // On les scanne
66                foreach ($textes as $texte){
67                       
68                }
69        }
70}
71
72/**
73 * Ajoute pour les textes passés à propre les définitions sur les
74 * termes à définir.
75 *
76 * Les définitions sont calculées ici uniquement si le dictionnaire
77 * n'est pas en mode manuel. Ce mode est activable par la constante
78 * DICTIONNAIRES_DETECTION_MANUELLE mise à TRUE.
79 *
80 * @pipeline post_edition
81 *
82 * @param string $texte  Texte
83 * @return string        Texte
84**/
85function dictionnaires_post_propre($texte) {
86        static $filtre_definitions = false;
87
88        // lorsqu'il n'est pas demandé explicitement un usage
89        // manuel, appliquer automatiquement la recherche de terme
90        if (!defined('DICTIONNAIRES_DETECTION_MANUELLE')
91                OR !DICTIONNAIRES_DETECTION_MANUELLE)
92        {
93                if (!$filtre_definitions) {
94                        $filtre_definitions = charger_filtre('definitions');
95                }
96                $texte = $filtre_definitions($texte);
97        }
98
99        return $texte;
100}
101
102/**
103 * Optimiser la base de données
104 *
105 * Supprime les objets à la poubelle.
106 *
107 * @pipeline optimiser_base_disparus
108 * @param  array $flux Données du pipeline
109 * @return array       Données du pipeline
110 */
111function dictionnaires_optimiser_base_disparus($flux) {
112
113        sql_delete('spip_definitions', "statut='poubelle' AND maj < " . $flux['args']['date']);
114
115        return $flux;
116}
Note: See TracBrowser for help on using the repository browser.