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

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

On suit diogène

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