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

Last change on this file since 89285 was 89285, checked in by erational@…, 6 years ago

remplacement des http://doc.spip.org par http://code.spip.net (Francky)
passage du copyright en 2015

File size: 3.5 KB
Line 
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**/
18if (!defined('_ECRIRE_INC_VERSION')) return;
19
20/**
21 * Définir les meta de configuration liées aux mots
22 *
23 * @pipeline configurer_liste_metas
24 * @param array $metas
25 *     Couples nom de la méta => valeur par défaut
26 * @return array
27 *    Couples nom de la méta => valeur par défaut
28 */
29function mots_configurer_liste_metas($metas){
30        $metas['articles_mots'] =  'non';
31        $metas['config_precise_groupes'] =  'non';
32        #$metas['mots_cles_forums'] =  'non';
33        return $metas;
34}
35
36/**
37 * Utilisation du pipeline affiche milieu
38 *
39 * - Ajoute le formulaire de configuration des mots sur la configuration des contenus
40 * - Ajoute le formulaire d'édition de mots sur les objets qui le peuvent
41 *
42 * @pipeline affiche_milieu
43 *
44 * @param array $flux
45 *     Données du pipeline
46 * @return array
47 *     Données du pipeline
48 */
49function mots_affiche_milieu($flux){
50        if ($flux["args"]["exec"] == "configurer_contenu") {
51                $flux["data"] .=  recuperer_fond('prive/squelettes/inclure/configurer',array('configurer'=>'configurer_mots'));
52        }
53
54        // si on est sur une page ou il faut inserer les mots cles...
55        if ($en_cours = trouver_objet_exec($flux['args']['exec'])
56                AND $en_cours['edition']!==true // page visu
57                AND $type = $en_cours['type']
58                AND $id_table_objet = $en_cours['id_table_objet']
59                AND isset($flux['args'][$id_table_objet])
60                AND ($id = intval($flux['args'][$id_table_objet]))){
61                $texte = recuperer_fond(
62                                'prive/objets/editer/liens',
63                                array(
64                                        'table_source'=>'mots',
65                                        'objet'=>$type,
66                                        'id_objet'=>$id,
67                                )
68                );
69                if ($p=strpos($flux['data'],"<!--affiche_milieu-->"))
70                        $flux['data'] = substr_replace($flux['data'],$texte,$p,0);
71                else
72                        $flux['data'] .= $texte;
73        }
74               
75        return $flux;
76}
77
78/**
79 * Optimise la base de données en supprimant les liens orphelins
80 *
81 * @pipeline optimiser_base_disparus
82 *
83 * @param array $flux
84 *     Données du pipeline
85 * @return array
86 *     Données du pipeline
87 */
88function mots_optimiser_base_disparus($flux){
89        $n = &$flux['data'];
90        $mydate = $flux['args']['date'];
91       
92        $result = sql_delete("spip_mots", "length(titre)=0 AND maj < ".sql_quote($mydate));
93
94        include_spip('action/editer_liens');
95        // optimiser les liens morts :
96        // entre mots vers des objets effaces
97        // depuis des mots effaces
98        $n+= objet_optimiser_liens(array('mot'=>'*'),'*');
99
100        return $flux;
101
102}
103
104
105/**
106 * Copier le type des groupes sur la table spip_mots
107 * à chaque changement d'un groupe.
108 *
109 * @pipeline post_edition
110 *
111 * @param array $flux
112 *     Données du pipeline
113 * @return array
114 *     Données du pipeline
115 */
116function mots_post_edition($flux){
117        if (isset($flux['args']['table'])
118                and ($flux['args']['table'] == 'spip_groupes_mots')
119                and isset($flux['data']['titre']))
120        {
121                sql_updateq('spip_mots', array('type' => $flux['data']['titre']),
122                        'id_groupe=' . $flux['args']['id_objet']);
123        }
124
125        return $flux;
126}
127
128?>
Note: See TracBrowser for help on using the repository browser.