source: plugins_spip/diogene_complements/diogene_spipicious/diogene_spipicious_pipelines.php @ 3053

Last change on this file since 3053 was 3053, checked in by kent1, 11 years ago

On invalide également à l'ajout de tag

File size: 4.6 KB
Line 
1<?php
2        /**
3         * Insertion de contenu avant le formulaire
4         * Le js du sélecteur générique
5         *
6         * @param array $flux Le contexte du pipeline
7         * @return array $flux le contexte modifié passé aux suivants
8         */
9    function diogene_spipicious_diogene_avant_formulaire($flux){
10        global $visiteur_session;
11                include_spip('inc/autoriser');
12        if(autoriser('tagger_spipicious','article',$id_objet,$visiteur_session,$opt)){
13                $flux['data'] .= recuperer_fond('prive/diogene_spipicious_avant_formulaire', $flux['args']);
14                }
15        return $flux;
16    }
17
18        /**
19         * Insertion dans le CFG de texte de la configuration pour spipicious
20         *
21         * @param array $flux Le contexte du pipeline
22         * @return array $flux le contexte modifié passé aux suivants
23         */
24        function diogene_spipicious_diogene_texte_cfg_form($flux){
25        $flux['data'] .= recuperer_fond('formulaires/config_diogene_texte_spipicious', $flux['args']);
26        return $flux;
27    }
28
29        /**
30         * Insertion dans le formulaire DIOGENE_AJOUTER_MEDIA
31         *
32         * @param array $flux Le contexte du pipeline
33         * @return array $flux le contexte modifié passé aux suivants
34         */
35        function diogene_spipicious_diogene_ajouter_media($flux){
36                global $visiteur_session;
37                include_spip('inc/autoriser');
38        if(autoriser('tagger_spipicious','article',$id_objet,$visiteur_session,$opt)){
39                $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_spipicious',$flux['args']);
40                }
41        return $flux;
42    }
43
44        /**
45         * Fonction s'exécutant au traitement du formulaire DIOGENE_AJOUTER_MEDIA
46         *
47         * @param array $flux Le contexte du pipeline
48         * @return array $flux le contexte modifié passé aux suivants
49         */
50        function diogene_spipicious_diogene_ajout_media_post_traiter($flux){
51                global $visiteur_session;
52
53                spip_log("DIOGENE_SPIPICIOUS : diogene_ajout_media_post_traiter");
54
55                $id_article = $flux['args']['id_article'];
56
57                include_spip('inc/autoriser');
58        if(!autoriser('tagger_spipicious','article',$id_article,$visiteur_session,$opt)){
59                return $flux;
60                }
61
62                include_spip('inc/invalideur');
63                $valeurs = $flux['args']['valeurs'];
64                $id_groupe = lire_config('spipicious/groupe_mot','1');
65                if($valeurs['diogene_spipicious_tags']){
66                        /**
67                         * Insertion des tags
68                         */
69                        include_spip('action/spipicious_ajouter_tags');
70                        $tableau_tags = explode(";",$valeurs['diogene_spipicious_tags']);
71                        $ajout = spipicious_ajouter_tags($tableau_tags,$visiteur_session['id_auteur'],$id_article,'article','id_article','spip_mots_articles',$id_groupe);
72                        foreach($tableau_tags as $id_tag){
73                                suivre_invalideur("id='id_mot/$id_mot'",true);
74                        }
75                }
76                if(is_array($valeurs['diogene_spipicious_removal_tags'])){
77                        /**
78                         * Suppression des tags si demandée
79                         */
80                        include_spip('action/spipicious_supprimer_tags');
81                        $suppression = spipicious_supprimer_tags($valeurs['diogene_spipicious_removal_tags'],$visiteur_session['id_auteur'],$id_article,'article','id_article','spip_mots_articles',$id_groupe);
82                        foreach($valeurs['diogene_spipicious_removal_tags'] as $id_tag){
83                                suivre_invalideur("id='id_mot/$id_mot'",true);
84                        }
85                }
86                return $flux;
87        }
88
89        /**
90         * Fonction s'exécutant au chargement du formulaire DIOGENE_AJOUTER_MEDIA
91         *
92         * @param array $flux Le contexte du pipeline
93         * @return array $flux le contexte modifié passé aux suivants
94         */
95        function diogene_spipicious_diogene_ajout_media_post_charger($flux){
96                global $visiteur_session;
97
98                $id_article = $flux['args']['id_article'];
99
100                include_spip('inc/autoriser');
101                if(!autoriser('tagger_spipicious','article',$id_article,$visiteur_session,$opt)){
102                return $flux;
103                }
104
105                if(intval($id_article)){
106                        spip_log("DIOGENE_SPIPICIOUS : diogene_ajout_media_post_charger","emballe_media");
107                        $tags = sql_select("mots.id_mot, mots.titre","spip_spipicious as spipicious LEFT join spip_mots as mots USING(id_mot)","spipicious.id_auteur=".intval($visiteur_session['id_auteur'])." AND spipicious.id_objet=".intval($id_article)." AND spipicious.objet='article'");
108                        while($tag = sql_fetch($tags)){
109                                $tag_uniques[$tag['id_mot']] = $tag['titre'];
110                        }
111                        if(is_array($tag_uniques)){
112                                $tags = array('diogene_spipicious_removal_tags' => $tag_uniques);
113                                $flux['data'] = array_merge($flux['data'],$tags);
114                        }
115                }
116                return $flux;
117        }
118
119        /**
120         * Fonction qui ajoute des valeurs récupérées dans le formulaire d'ajout de medias
121         * Ajoute des champs qui ne sont pas forcément dans la configuration texte
122         * Ici on ajoute la prise en compte de spipicious_remove_tags qui n'est pas dans la conf
123         */
124        function diogene_spipicious_diogene_champs_texte($flux){
125                $flux['data'][] = 'diogene_spipicious_tags';
126                $flux['data'][] = 'diogene_spipicious_removal_tags';
127                return $flux;
128        }
129?>
Note: See TracBrowser for help on using the repository browser.