source: plugins_spip/diogene_complements/diogene_gerer_auteurs/diogene_gerer_auteurs_pipelines.php @ 3054

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

l'ajout des auteurs aussi doit invalider le cache

File size: 4.2 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_gerer_auteurs_diogene_avant_formulaire($flux){
10        $flux['data'] .= recuperer_fond('prive/diogene_gerer_auteurs_avant_formulaire', $flux['args']);
11        return $flux;
12    }
13
14        /**
15         * Insertion dans le CFG de texte de la configuration pour la gestion des auteurs
16         *
17         * @param array $flux Le contexte du pipeline
18         * @return array $flux le contexte modifié passé aux suivants
19         */
20        function diogene_gerer_auteurs_diogene_texte_cfg_form($flux){
21        $flux['data'] .= recuperer_fond('formulaires/config_diogene_texte_gerer_auteurs', $flux['args']);
22        return $flux;
23    }
24
25        /**
26         * Insertion dans le formulaire EM_AJOUTER_MEDIA
27         *
28         * @param array $flux Le contexte du pipeline
29         * @return array $flux le contexte modifié passé aux suivants
30         */
31        function diogene_gerer_auteurs_diogene_ajouter_media($flux){
32        $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_gerer_auteurs',$flux['args']);
33        return $flux;
34    }
35
36        /**
37         * Fonction s'exécutant au traitement du formulaire EM_AJOUTER_MEDIA
38         *
39         * @param array $flux Le contexte du pipeline
40         * @return array $flux le contexte modifié passé aux suivants
41         */
42        function diogene_gerer_auteurs_diogene_ajout_media_post_traiter($flux){
43                global $visiteur_session;
44
45                spip_log("DIOGENE_GERER_AUTEURS : diogene_ajout_media_post_traiter");
46
47                $id_article = $flux['args']['id_article'];
48
49                include_spip('inc/autoriser');
50        if(!autoriser('modifier','article',$id_article,$visiteur_session,$opt)){
51                return $flux;
52                }
53
54                $valeurs = $flux['args']['valeurs'];
55                if($valeurs['diogene_gerer_id_auteurs'] OR is_array($valeurs['diogene_gerer_auteurs_remove'])){
56                        include_spip('inc/invalideur');
57
58                        if($valeurs['diogene_gerer_id_auteurs']){
59                                /**
60                                 * Insertion des auteurs
61                                 */
62                                include_spip('action/editer_auteurs');
63                                $ajout = ajouter_auteur_et_rediriger('article', $id_article, $valeurs['diogene_gerer_id_auteurs'], '');
64                                suivre_invalideur("id='id_auteur/".$valeurs['diogene_gerer_id_auteurs']."'",true);
65                        }
66                        if(is_array($valeurs['diogene_gerer_auteurs_remove'])){
67                                /**
68                                 * Suppression des auteurs si demandée
69                                 */
70                                include_spip('action/editer_auteurs');
71                                foreach($valeurs['diogene_gerer_auteurs_remove'] as $id_auteur){
72                                        $suppr = supprimer_auteur_et_rediriger('article', $id_article, $id_auteur, '');
73                                        suivre_invalideur("id='id_auteur/$id_auteur'",true);
74                                }
75                        }
76                }
77                return $flux;
78        }
79
80        /**
81         * Fonction s'exécutant au chargement du formulaire EM_AJOUTER_MEDIA
82         * RécupÚre la liste des auteurs associés à l'article supprimables
83         *
84         * @param array $flux Le contexte du pipeline
85         * @return array $flux le contexte modifié passé aux suivants
86         */
87        function diogene_gerer_auteurs_diogene_ajout_media_post_charger($flux){
88                global $visiteur_session;
89
90                $id_article = $flux['args']['id_article'];
91
92                include_spip('inc/autoriser');
93                if(!autoriser('modifier','article',$id_article,$visiteur_session,$opt)){
94                return $flux;
95                }
96
97                if(intval($id_article)){
98                        spip_log("DIOGENE_GERER_AUTEURS : diogene_ajout_media_post_charger","emballe_media");
99                        $auteurs = sql_select("nom, auteur.id_auteur","spip_auteurs as auteur LEFT join spip_auteurs_articles as auteur_lien USING(id_auteur)","auteur.id_auteur!=".intval($visiteur_session['id_auteur'])." AND auteur_lien.id_article=".intval($id_article));
100                        while($auteur = sql_fetch($auteurs)){
101                                $auteur_uniques[$auteur['id_auteur']] = $auteur['nom'];
102                        }
103                        if(is_array($auteur_uniques)){
104                                $auteurs = array('diogene_gerer_auteurs_remove' => $auteur_uniques);
105                                $flux['data'] = array_merge($flux['data'],$auteurs);
106                        }
107                }
108                return $flux;
109        }
110
111        /**
112         * Fonction qui ajoute des valeurs récupérées dans le formulaire d'ajout de medias
113         * Ajoute des champs qui ne sont pas forcément dans la configuration texte
114         * Ici on ajoute la prise en compte de spipicious_remove_tags qui n'est pas dans la conf
115         */
116        function diogene_gerer_auteurs_diogene_champs_texte($flux){
117                $flux['data'][] = 'diogene_gerer_id_auteurs';
118                $flux['data'][] = 'diogene_gerer_auteurs_remove';
119                return $flux;
120        }
121?>
Note: See TracBrowser for help on using the repository browser.