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

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

[Dictionnaires] Ne pas cacher la poussière sous le tapis (dixit Rastapopoulos) : ces fonctions n'étaient *jamais* appelée par les mécanismes d'édition de SPIP parce qu'elles ne portaient pas les bons noms.
Les noms des fonctions ayant changés, les plugins y faisant appel doivent être mis à jour.
Voici la liste des changements de nom :

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