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

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

On suit diogene et les modifs de pipelines

File size: 4.0 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 */
9function diogene_spipicious_diogene_avant_formulaire($flux){
10    global $visiteur_session;
11    if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('spipicious',unserialize($flux['args']['champs_ajoutes']))){
12                include_spip('inc/autoriser');
13        if(autoriser('tagger_spipicious','article',$id_objet,$visiteur_session,$opt)){
14                $flux['data'] .= recuperer_fond('prive/diogene_spipicious_avant_formulaire', $flux['args']);
15                }
16    }
17    return $flux;
18}
19
20/**
21 * Insertion dans le CFG de texte de la configuration pour spipicious
22 *
23 * @param array $flux Le contexte du pipeline
24 * @return array $flux le contexte modifié passé aux suivants
25 */
26function diogene_spipicious_diogene_texte_cfg_form($flux){
27    $flux['data'] .= recuperer_fond('formulaires/config_diogene_texte_spipicious', $flux['args']);
28    return $flux;
29}
30
31/**
32 * Insertion dans le formulaire DIOGENE_AJOUTER_MEDIA
33 *
34 * @param array $flux Le contexte du pipeline
35 * @return array $flux le contexte modifié passé aux suivants
36 */
37function diogene_spipicious_diogene_ajouter_saisies($flux){
38        global $visiteur_session;
39        $id_article = $flux['args']['contexte']['id_article'];
40        if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('spipicious',unserialize($flux['args']['champs_ajoutes']))){
41                include_spip('inc/autoriser');
42        if(autoriser('tagger_spipicious','article',$id_article,$visiteur_session,$opt)){
43                if(intval($id_article)){
44                                $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'");
45                                while($tag = sql_fetch($tags)){
46                                        $tag_uniques[$tag['id_mot']] = $tag['titre'];
47                                }
48                                if(is_array($tag_uniques)){
49                                        $flux['args']['contexte']['diogene_spipicious_removal_tags'] = $tag_uniques;
50                                }
51                        }
52                $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_spipicious',$flux['args']['contexte']);
53                }
54        }
55    return $flux;
56}
57
58/**
59 * Fonction s'exécutant au traitement du formulaire DIOGENE_AJOUTER_MEDIA
60 *
61 * @param array $flux Le contexte du pipeline
62 * @return array $flux le contexte modifié passé aux suivants
63 */
64function diogene_spipicious_diogene_traiter($flux){
65        global $visiteur_session;
66        if($flux['args']['action']=='modifier'){
67
68                $id_objet = $flux['args']['id_objet'];
69                $type = $flux['args']['type'];
70                $table  = $flux['args']['table'];
71                $id_table_objet = id_table_objet($type);
72
73                include_spip('inc/autoriser');
74        if(!autoriser('tagger_spipicious',$type,$id_objet,$visiteur_session,$opt)){
75                return $flux;
76                }
77
78                include_spip('inc/invalideur');
79                $id_groupe = lire_config('spipicious/groupe_mot','1');
80                if($tags = _request('diogene_spipicious_tags')){
81                        /**
82                         * Insertion des tags
83                         */
84                        include_spip('action/spipicious_ajouter_tags');
85                        $tableau_tags = explode(";",$tags);
86                        $ajout = spipicious_ajouter_tags($tableau_tags,$visiteur_session['id_auteur'],$id_objet,$type,$id_table_objet,'spip_mots_'.$type.'s',$id_groupe,'oui');
87
88                        foreach($tableau_tags as $id_tag){
89                                suivre_invalideur("id='id_mot/$id_mot'",true);
90                        }
91                }
92                if(is_array(_request('diogene_spipicious_removal_tags'))){
93                        /**
94                         * Suppression des tags si demandée
95                         */
96                        include_spip('action/spipicious_supprimer_tags');
97                        $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);
98                        foreach(_request('diogene_spipicious_removal_tags') as $id_tag){
99                                suivre_invalideur("id='id_mot/$id_mot'",true);
100                        }
101                }
102        }
103        return $flux;
104}
105
106function diogene_spipicious_diogene_champs_sup($flux){
107        $flux['article']['spipicious'] = _T('diogene_spipicious:tags_spipicious');
108        return $flux;
109}
110?>
Note: See TracBrowser for help on using the repository browser.