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

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

Bien meilleure intégration au nouveau diogène

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