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

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

Code mort qui datait du temps d'emballe_medias je pense

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