source: spip-zone/_core_/plugins/mots/mots_pipelines.php

Last change on this file was 113294, checked in by spip.franck@…, 11 months ago

Il parait que le futur c'est maintenant :-D

File size: 3.6 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2019                                                *
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 **/
18if (!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 */
31function 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 */
52function 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 */
93function 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 */
121function 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']), 'id_groupe=' . $flux['args']['id_objet']);
127        }
128
129        return $flux;
130}
Note: See TracBrowser for help on using the repository browser.