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

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

On corrige des bugs (on utilise sélecteur générique et non spip.icio.us)

On insère les js du sélecteur générique dans le head si pas dispo

On traduit le plugin.xml en anglais

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 */
9function 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 */
22function 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 */
33function 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                spip_log($flux['args']['contexte'],'diogenes');
37                if($id_article){
38                        include_spip('inc/autoriser');
39                        if(!autoriser('modifier','article',$id_article,$visiteur_session,$opt)){
40                        return $flux;
41                        }
42
43                        $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));
44                        while($auteur = sql_fetch($auteurs)){
45                                $auteur_uniques[$auteur['id_auteur']] = $auteur['nom'];
46                        }
47                        if(is_array($auteur_uniques)){
48                                $flux['args']['contexte']['diogene_gerer_auteurs_remove'] = $auteur_uniques;
49                        }
50                        $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_gerer_auteurs',$flux['args']['contexte']);
51                }
52        }
53    return $flux;
54}
55
56/**
57 * Fonction s'exécutant au traitement du formulaire EM_AJOUTER_MEDIA
58 *
59 * @param array $flux Le contexte du pipeline
60 * @return array $flux le contexte modifié passé aux suivants
61 */
62function diogene_gerer_auteurs_diogene_ajout_media_post_traiter($flux){
63        global $visiteur_session;
64
65        $id_objet = $flux['args']['id_objet'];
66        $type = $flux['args']['type'];
67        $table  = $flux['args']['table'];
68        $id_table_objet = id_table_objet($type);
69        if($type == 'article'){
70                include_spip('inc/autoriser');
71        if(!autoriser('modifier','article',$id_objet,$visiteur_session,$opt)){
72                return $flux;
73                }
74
75                if(_request('diogene_gerer_id_auteurs') OR is_array(_request('diogene_gerer_auteurs_remove'))){
76                        include_spip('inc/invalideur');
77
78                        if(_request('diogene_gerer_id_auteurs')){
79                                /**
80                                 * Insertion des auteurs
81                                 */
82                                include_spip('action/editer_auteurs');
83                                $ajout = ajouter_auteur_et_rediriger('article', $id_objet, _request('diogene_gerer_id_auteurs'), '');
84                                suivre_invalideur("id='id_auteur/"._request('diogene_gerer_id_auteurs')."'",true);
85                        }
86                        if(is_array(_request('diogene_gerer_auteurs_remove'))){
87                                /**
88                                 * Suppression des auteurs si demandée
89                                 */
90                                include_spip('action/editer_auteurs');
91                                foreach(_request('diogene_gerer_auteurs_remove') as $id_auteur){
92                                        $suppr = supprimer_auteur_et_rediriger('article', $id_objet, $id_auteur, '');
93                                        suivre_invalideur("id='id_auteur/$id_auteur'",true);
94                                }
95                        }
96                }
97        }
98        return $flux;
99}
100
101/**
102 * Insertion dans le pipeline diogene_champs_sup
103 * On ajoute le champ auteur dans les articles
104 *
105 * @param array $flux La liste des champs pour les diogenes
106 */
107function diogene_gerer_auteurs_diogene_champs_sup($flux){
108        $flux['article']['auteurs'] = _T('diogene_gerer_auteurs:label_cfg_ajout_auteurs');
109        return $flux;
110}
111
112/**
113 * Insertion dans le pipeline insert_head
114 * On insert les js du séleceteur générique si ils ne le sont pas déjà
115 *.
116 * @param string $flux
117 */
118function diogene_gerer_auteurs_insert_head($flux){
119        include_spip('selecteurgenerique_fonctions');
120        $flux .= selecteurgenerique_verifier_js($flux);
121        return $flux;
122}
123?>
Note: See TracBrowser for help on using the repository browser.