1 | <?php |
---|
2 | |
---|
3 | /***************************************************************************\ |
---|
4 | * SPIP, Systeme de publication pour l'internet * |
---|
5 | * * |
---|
6 | * Copyright (c) 2001-2015 * |
---|
7 | * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * |
---|
8 | * * |
---|
9 | * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * |
---|
10 | * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * |
---|
11 | \***************************************************************************/ |
---|
12 | |
---|
13 | /** |
---|
14 | * Utilisations de pipelines |
---|
15 | * |
---|
16 | * @package SPIP\Mots\Pipelines |
---|
17 | **/ |
---|
18 | if (!defined('_ECRIRE_INC_VERSION')) { |
---|
19 | return; |
---|
20 | } |
---|
21 | |
---|
22 | /** |
---|
23 | * Définir les meta de configuration liées aux mots |
---|
24 | * |
---|
25 | * @pipeline configurer_liste_metas |
---|
26 | * @param array $metas |
---|
27 | * Couples nom de la méta => valeur par défaut |
---|
28 | * @return array |
---|
29 | * Couples nom de la méta => valeur par défaut |
---|
30 | */ |
---|
31 | function mots_configurer_liste_metas($metas) { |
---|
32 | $metas['articles_mots'] = 'non'; |
---|
33 | $metas['config_precise_groupes'] = 'non'; |
---|
34 | |
---|
35 | #$metas['mots_cles_forums'] = 'non'; |
---|
36 | return $metas; |
---|
37 | } |
---|
38 | |
---|
39 | /** |
---|
40 | * Utilisation du pipeline affiche milieu |
---|
41 | * |
---|
42 | * - Ajoute le formulaire de configuration des mots sur la configuration des contenus |
---|
43 | * - Ajoute le formulaire d'édition de mots sur les objets qui le peuvent |
---|
44 | * |
---|
45 | * @pipeline affiche_milieu |
---|
46 | * |
---|
47 | * @param array $flux |
---|
48 | * Données du pipeline |
---|
49 | * @return array |
---|
50 | * Données du pipeline |
---|
51 | */ |
---|
52 | function mots_affiche_milieu($flux) { |
---|
53 | if ($flux["args"]["exec"] == "configurer_contenu") { |
---|
54 | $flux["data"] .= recuperer_fond('prive/squelettes/inclure/configurer', array('configurer' => 'configurer_mots')); |
---|
55 | } |
---|
56 | |
---|
57 | // si on est sur une page ou il faut inserer les mots cles... |
---|
58 | if ($en_cours = trouver_objet_exec($flux['args']['exec']) |
---|
59 | AND $en_cours['edition'] !== true // page visu |
---|
60 | AND $type = $en_cours['type'] |
---|
61 | AND $id_table_objet = $en_cours['id_table_objet'] |
---|
62 | AND isset($flux['args'][$id_table_objet]) |
---|
63 | AND ($id = intval($flux['args'][$id_table_objet])) |
---|
64 | ) { |
---|
65 | $texte = recuperer_fond( |
---|
66 | 'prive/objets/editer/liens', |
---|
67 | array( |
---|
68 | 'table_source' => 'mots', |
---|
69 | 'objet' => $type, |
---|
70 | 'id_objet' => $id, |
---|
71 | ) |
---|
72 | ); |
---|
73 | if ($p = strpos($flux['data'], "<!--affiche_milieu-->")) { |
---|
74 | $flux['data'] = substr_replace($flux['data'], $texte, $p, 0); |
---|
75 | } else { |
---|
76 | $flux['data'] .= $texte; |
---|
77 | } |
---|
78 | } |
---|
79 | |
---|
80 | return $flux; |
---|
81 | } |
---|
82 | |
---|
83 | /** |
---|
84 | * Optimise la base de données en supprimant les liens orphelins |
---|
85 | * |
---|
86 | * @pipeline optimiser_base_disparus |
---|
87 | * |
---|
88 | * @param array $flux |
---|
89 | * Données du pipeline |
---|
90 | * @return array |
---|
91 | * Données du pipeline |
---|
92 | */ |
---|
93 | function mots_optimiser_base_disparus($flux) { |
---|
94 | $n = &$flux['data']; |
---|
95 | $mydate = $flux['args']['date']; |
---|
96 | |
---|
97 | $result = sql_delete("spip_mots", "length(titre)=0 AND maj < " . sql_quote($mydate)); |
---|
98 | |
---|
99 | include_spip('action/editer_liens'); |
---|
100 | // optimiser les liens morts : |
---|
101 | // entre mots vers des objets effaces |
---|
102 | // depuis des mots effaces |
---|
103 | $n += objet_optimiser_liens(array('mot' => '*'), '*'); |
---|
104 | |
---|
105 | return $flux; |
---|
106 | |
---|
107 | } |
---|
108 | |
---|
109 | |
---|
110 | /** |
---|
111 | * Copier le type des groupes sur la table spip_mots |
---|
112 | * à chaque changement d'un groupe. |
---|
113 | * |
---|
114 | * @pipeline post_edition |
---|
115 | * |
---|
116 | * @param array $flux |
---|
117 | * Données du pipeline |
---|
118 | * @return array |
---|
119 | * Données du pipeline |
---|
120 | */ |
---|
121 | function mots_post_edition($flux) { |
---|
122 | if (isset($flux['args']['table']) |
---|
123 | and ($flux['args']['table'] == 'spip_groupes_mots') |
---|
124 | and isset($flux['data']['titre']) |
---|
125 | ) { |
---|
126 | sql_updateq('spip_mots', array('type' => $flux['data']['titre']), |
---|
127 | 'id_groupe=' . $flux['args']['id_objet']); |
---|
128 | } |
---|
129 | |
---|
130 | return $flux; |
---|
131 | } |
---|
132 | |
---|
133 | ?> |
---|