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

Last change on this file since 4253 was 4253, checked in by kent1, 10 years ago

On nécessite la dernière version de diogene

On commente un peu mieux le code

File size: 4.1 KB
Line 
1<?php
2/**
3 * Insertion dans le pipeline diogene_avant_formulaire (Plugin Diogene)
4 * On insÚre du contenu avant le formulaire d'édition d'un objet
5 * Le js du sélecteur générique
6 *
7 * @param array $flux Le contexte du pipeline
8 * @return array $flux le contexte modifié passé aux suivants
9 */
10function diogene_spipicious_diogene_avant_formulaire($flux){
11    global $visiteur_session;
12    if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('spipicious',unserialize($flux['args']['champs_ajoutes']))){
13                include_spip('inc/autoriser');
14        if(autoriser('tagger_spipicious','article',$id_objet,$visiteur_session,$opt)){
15                $flux['data'] .= recuperer_fond('prive/diogene_spipicious_avant_formulaire', $flux['args']);
16                }
17    }
18    return $flux;
19}
20
21/**
22 * Insertion dans le pipeline diogene_ajouter_saisies (plugin Diogene)
23 * On ajoute les saisies nécessaires au formulaire
24 *
25 * @param array $flux Le contexte du pipeline
26 * @return array $flux le contexte modifié passé aux suivants
27 */
28function diogene_spipicious_diogene_ajouter_saisies($flux){
29        global $visiteur_session;
30        $id_article = $flux['args']['contexte']['id_article'];
31        if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('spipicious',unserialize($flux['args']['champs_ajoutes']))){
32                include_spip('inc/autoriser');
33        if(autoriser('tagger_spipicious','article',$id_article,$visiteur_session,$opt)){
34                if(intval($id_article)){
35                                $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'");
36                                while($tag = sql_fetch($tags)){
37                                        $tag_uniques[$tag['id_mot']] = $tag['titre'];
38                                }
39                                if(is_array($tag_uniques)){
40                                        $flux['args']['contexte']['diogene_spipicious_removal_tags'] = $tag_uniques;
41                                }
42                        }
43                $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_spipicious',$flux['args']['contexte']);
44                }
45        }
46    return $flux;
47}
48
49/**
50 * Insertion dans le pipeline diogene_traiter (plugin Diogene)
51 * Fonction s'exécutant au traitement du formulaire
52 *
53 * @param array $flux Le contexte du pipeline
54 * @return array $flux le contexte modifié passé aux suivants
55 */
56function diogene_spipicious_diogene_traiter($flux){
57        global $visiteur_session;
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,$visiteur_session,$opt)){
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                        $ajout = spipicious_ajouter_tags($tableau_tags,$visiteur_session['id_auteur'],$id_objet,$type,$id_table_objet,'spip_mots_'.$type.'s',$id_groupe,'oui');
79
80                        foreach($tableau_tags as $id_tag){
81                                suivre_invalideur("id='id_mot/$id_mot'",true);
82                        }
83                }
84                if(is_array(_request('diogene_spipicious_removal_tags'))){
85                        /**
86                         * Suppression des tags si demandée
87                         */
88                        include_spip('action/spipicious_supprimer_tags');
89                        $suppression = spipicious_supprimer_tags(_request('diogene_spipicious_removal_tags'),$visiteur_session['id_auteur'],$id_objet,$type,$id_table_objet,'spip_mots_'.$type.'s',$id_groupe);
90                        foreach(_request('diogene_spipicious_removal_tags') as $id_tag){
91                                suivre_invalideur("id='id_mot/$id_mot'",true);
92                        }
93                }
94        }
95        return $flux;
96}
97
98/**
99 * Insertion dans le pipeline diogene_champs_sup (Plugin Diogene)
100 * On ajoute la possibilité de prise en compte des tags sur :
101 * -* Les articles
102 * -* Les articles de type emballe_medias
103 *
104 * @param array $flux Un tableau des champs que l'on peut ajouter aux formulaires
105 * @return array $flux Le tableau de champs complété
106 */
107function diogene_spipicious_diogene_champs_sup($flux){
108        $flux['article']['spipicious'] = _T('diogene_spipicious:tags_spipicious');
109        return $flux;
110}
111?>
Note: See TracBrowser for help on using the repository browser.