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

Last change on this file since 6028 was 6028, checked in by kent1, 9 years ago

if (!defined("_ECRIRE_INC_VERSION")) return; sur tout fichier PHP pour sécurité future principalement

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