source: plugins_spip/diogene_complements/diogene_spipicious/trunk/diogene_spipicious_pipelines.php @ 6925

Last change on this file since 6925 was 6925, checked in by kent1, 8 years ago

On suit le changement de pipeline cf r6919

File size: 4.5 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5/**
6 * Insertion dans le pipeline diogene_avant_formulaire (Plugin Diogene)
7 * On insÚre du contenu avant le formulaire d'édition d'un objet
8 * Le js du sélecteur générique
9 *
10 * @param array $flux Le contexte du pipeline
11 * @return array $flux le contexte modifié passé aux suivants
12 */
13function diogene_spipicious_diogene_avant_formulaire($flux){
14    if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('spipicious',unserialize($flux['args']['champs_ajoutes'])) && ($flux['args']['type'] != 'page')){
15                include_spip('inc/autoriser');
16        if(autoriser('tagger_spipicious','article',$id_objet)){
17                $flux['data'] .= recuperer_fond('prive/diogene_spipicious_avant_formulaire', $flux['args']);
18                }
19    }
20    return $flux;
21}
22
23/**
24 * Insertion dans le pipeline diogene_ajouter_saisies (plugin Diogene)
25 * On ajoute les saisies nécessaires au formulaire
26 *
27 * @param array $flux Le contexte du pipeline
28 * @return array $flux le contexte modifié passé aux suivants
29 */
30function diogene_spipicious_diogene_ajouter_saisies($flux){
31        $id_article = $flux['args']['contexte']['id_article'];
32        if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('spipicious',unserialize($flux['args']['champs_ajoutes']))){
33                include_spip('inc/autoriser');
34        if(autoriser('tagger_spipicious','article',$id_article)){
35                if(intval($id_article)){
36                                $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($GLOBALS['visiteur_session']['id_auteur'])." AND spipicious.id_objet=".intval($id_article)." AND spipicious.objet='article'");
37                                while($tag = sql_fetch($tags)){
38                                        $tag_uniques[$tag['id_mot']] = $tag['titre'];
39                                }
40                                if(is_array($tag_uniques)){
41                                        $flux['args']['contexte']['diogene_spipicious_removal_tags'] = $tag_uniques;
42                                }
43                        }
44                $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_spipicious',$flux['args']['contexte']);
45                }
46        }
47    return $flux;
48}
49
50/**
51 * Insertion dans le pipeline diogene_traiter (plugin Diogene)
52 * Fonction s'exécutant au traitement du formulaire
53 *
54 * @param array $flux Le contexte du pipeline
55 * @return array $flux le contexte modifié passé aux suivants
56 */
57function diogene_spipicious_diogene_traiter($flux){
58        if($flux['args']['action']=='modifier'){
59
60                $id_objet = $flux['args']['id_objet'];
61                $type = $flux['args']['type'];
62                $table  = $flux['args']['table'];
63                $id_table_objet = id_table_objet($type);
64
65                include_spip('inc/autoriser');
66        if(!autoriser('tagger_spipicious',$type,$id_objet)){
67                return $flux;
68                }
69
70                include_spip('inc/invalideur');
71                $id_groupe = lire_config('spipicious/groupe_mot','1');
72                if($tags = _request('diogene_spipicious_tags')){
73                        /**
74                         * Insertion des tags
75                         */
76                        include_spip('action/spipicious_ajouter_tags');
77                        $tableau_tags = explode(";",$tags);
78                        /**
79                         * On enlÚve titre et ctr_titre du $_POST
80                         * pour éviter une erreur dans inc/modifier
81                         */
82                        if($ctr_titre = _request('ctr_titre')){
83                                $request = true;
84                                $titre = _request('titre');
85                                set_request('titre','');
86                                set_request('ctr_titre','');
87                        }
88                        $ajout = spipicious_ajouter_tags($tableau_tags,$GLOBALS['visiteur_session']['id_auteur'],$id_objet,$type,$id_table_objet,$id_groupe);
89                        /**
90                         * On remet le $_POST initial
91                         */
92                        if($request){
93                                set_request('titre',$titre);
94                                set_request('ctr_titre',$ctr_titre);
95                        }
96                        suivre_invalideur("0",true);
97                }
98                if(is_array(_request('diogene_spipicious_removal_tags'))){
99                        /**
100                         * Suppression des tags si demandée
101                         */
102                        include_spip('action/spipicious_supprimer_tags');
103                        $suppression = spipicious_supprimer_tags(_request('diogene_spipicious_removal_tags'),$GLOBALS['visiteur_session']['id_auteur'],$id_objet,$type,$id_table_objet,$id_groupe);
104                        suivre_invalideur("0",true);
105                }
106        }
107        return $flux;
108}
109
110/**
111 * Insertion dans le pipeline diogene_objets (Plugin Diogene)
112 * On ajoute la possibilité de prise en compte des tags sur :
113 * -* Les articles
114 * -* Les articles Pages
115 * -* Les articles de type emballe_medias
116 *
117 * @param array $flux Un tableau des champs que l'on peut ajouter aux formulaires
118 * @return array $flux Le tableau de champs complété
119 */
120function diogene_spipicious_diogene_objets($flux){
121        if(defined('_DIR_PLUGIN_SPIPICIOUS')){
122                $flux['article']['champs_sup']['spipicious'] = _T('diogene_spipicious:tags_spipicious');
123                if(defined('_DIR_PLUGIN_PAGES')){
124                        $flux['page']['champs_sup']['spipicious'] = _T('diogene_spipicious:tags_spipicious');
125                }
126        }
127        return $flux;
128}
129?>
Note: See TracBrowser for help on using the repository browser.