source: spip-zone/_plugins_/seminaire/trunk/seminaire_pipelines.php @ 79173

Last change on this file since 79173 was 79173, checked in by kent1@…, 6 years ago

sélectionner le bon mot, on ne vérifiait pas l'id_evenement :(

File size: 3.4 KB
Line 
1<?php
2/**
3 * Plugin Séminaires
4 * Licence GNU/GPL
5 *
6 * @package SPIP\Seminaires\Pipelines
7 */
8if (!defined('_ECRIRE_INC_VERSION')) return;
9
10/**
11 * Insertion dans le pipeline post_insertion (SPIP)
12 *
13 * A la création d'un évènement on associe le mot clé du formulaire
14 *
15 * @param array $flux
16 *      Le contexte du pipeline
17 * @return array $flux
18 *      Le même contexte sans modification, on a juste lié le mot clé récupéré dans le post
19 */
20function seminaire_post_insertion($flux) {
21        if ($flux['args']['table'] == 'spip_evenements') {
22                if(($id_mot = _request('id_mot')) && ($id_evenement = $flux['args']['id_objet'])){
23                        include_spip('action/editer_liens');
24                        objet_associer(array('mot'=>$id_mot),array('evenement'=>$id_evenement), $qualif = null);
25                }
26        }
27        return $flux;
28}
29
30/**
31 * Insertion dans le pipeline formulaire_charger (SPIP)
32 *
33 * On ajoute le mot clé du type d'évènement dans l'environnement
34 *
35 * @param array $flux
36 *      Le contexte du pipeline
37 * @return array $flux
38 *      Le contexte modifié en cas d'erreur
39 */
40function seminaire_formulaire_charger($flux){
41        if(isset($flux['args']['form']) && $flux['args']['form'] == 'editer_evenement'){
42                if(isset($flux['data']['id_parent']) && $id_parent = $flux['data']['id_parent']){
43                        $seminaire = sql_getfetsel('seminaire','spip_articles','id_article='.intval($id_parent));
44                        $flux['data']['seminaire'] = $seminaire;
45                }
46                $flux['data']['id_mot'] = sql_getfetsel('lien.id_mot','spip_mots_liens as lien LEFT JOIN spip_mots as mots ON lien.id_mot=mots.id_mot LEFT JOIN spip_groupes_mots as groupe ON mots.id_groupe=groupe.id_groupe','lien.objet='.sql_quote('evenement').' AND lien.id_objet='.intval($flux['data']['id_evenement']).' AND groupe.id_groupe='.intval(lire_config('seminaire/groupe_mot_type')));
47        }
48        return $flux;
49}
50
51/**
52 * Insertion dans le pipeline formulaire_verifier
53 *
54 * On vérifie que le mot clé, obligatoire, a bien été sélectionné
55 *
56 * @param array $flux
57 *      Le contexte du pipeline
58 * @return array $flux
59 *      Le contexte modifié en cas d'erreur
60 */
61function seminaire_formulaire_verifier($flux){
62        if(isset($flux['args']['form']) && $flux['args']['form'] == 'editer_evenement'){
63                if(!_request('id_mot') && _request('seminaire'))
64                        $flux['data']['id_mot'] = _T('seminaire:mot_obligatoire');
65        }
66        return $flux;
67}
68
69/**
70 * Insertion dans le pipeline formulaire_traiter
71 *
72 * On lie le mot sur les évènements "séminaire"
73 *
74 * @param array $flux
75 *      Le contexte du pipeline
76 * @return array $flux
77 *      Le même contexte du pipeline après que le mot soit lié
78 */
79function seminaire_formulaire_traiter($flux){
80        if(isset($flux['args']['form']) && $flux['args']['form'] == 'editer_evenement'){
81                if(($id_mot = _request('id_mot')) && ($id_evenement = $flux['data']['id_evenement'])){
82                        $id_mot_origine = sql_getfetsel('lien.id_mot','spip_mots_liens as lien LEFT JOIN spip_mots as mots ON lien.id_mot=mots.id_mot LEFT JOIN spip_groupes_mots as groupe ON mots.id_groupe=groupe.id_groupe','lien.objet='.sql_quote('evenement').' AND groupe.id_groupe='.intval(lire_config('seminaire/groupe_mot_type')).' AND lien.id_objet='.intval($id_evenement));
83                        if(!$id_mot_origine || $id_mot_origine != $id_mot){
84                                include_spip('action/editer_liens');
85                                if($id_mot_origine)
86                                        objet_dissocier(array('mot'=>$id_mot_origine),array('evenement'=>$id_evenement));
87                                objet_associer(array('mot'=>$id_mot),array('evenement'=>$id_evenement));
88                        }
89                }
90        }
91        return $flux;
92}
93?>
Note: See TracBrowser for help on using the repository browser.