source: spip-zone/_plugins_/diogene/diogene_complements/diogene_spipicious/trunk/diogene_spipicious_pipelines.php @ 97999

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

Nettoyage

File size: 4.0 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) {
4        return;
5}
6
7/**
8 * Insertion dans le pipeline diogene_ajouter_saisies (plugin Diogene)
9 * On ajoute les saisies nécessaires au formulaire
10 *
11 * @param array $flux Le contexte du pipeline
12 * @return array $flux le contexte modifié passé aux suivants
13 */
14function diogene_spipicious_diogene_ajouter_saisies($flux) {
15        if (is_array(unserialize($flux['args']['champs_ajoutes']))
16                and in_array('spipicious', unserialize($flux['args']['champs_ajoutes']))) {
17                $objet = $flux['args']['type'];
18                $id_table_objet = id_table_objet($flux['args']['type']);
19                $id_objet = $flux['args']['contexte'][$id_table_objet];
20                $flux['args']['contexte']['objet'] = $objet;
21                $flux['args']['contexte']['id_objet'] = $id_objet;
22                include_spip('inc/autoriser');
23                if (autoriser('tagger_spipicious', $objet, $id_objet)) {
24                        if (intval($id_objet)) {
25                                $tags = sql_select('mots.id_mot, mots.titre', 'spip_spipicious as spipicious LEFT join spip_mots as mots USING(id_mot)', 'spipicious.id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur']).' AND spipicious.id_objet='.intval($id_objet).' AND spipicious.objet='.sql_quote($objet));
26                                $tag_uniques = array();
27                                while ($tag = sql_fetch($tags)) {
28                                        $tag_uniques[$tag['id_mot']] = $tag['titre'];
29                                }
30                                if (is_array($tag_uniques)) {
31                                        $flux['args']['contexte']['diogene_spipicious_removal_tags'] = $tag_uniques;
32                                }
33                        }
34                        $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_spipicious', $flux['args']['contexte']);
35                }
36        }
37        return $flux;
38}
39
40/**
41 * Insertion dans le pipeline diogene_traiter (plugin Diogene)
42 * Fonction s'exécutant au traitement du formulaire
43 *
44 * @param array $flux Le contexte du pipeline
45 * @return array $flux le contexte modifié passé aux suivants
46 */
47function diogene_spipicious_diogene_traiter($flux) {
48        if ($flux['args']['action'] == 'modifier') {
49                $id_objet = $flux['args']['id_objet'];
50                $type = $flux['args']['type'];
51                $id_table_objet = id_table_objet($type);
52
53                include_spip('inc/autoriser');
54                if (!autoriser('tagger_spipicious', $type, $id_objet)) {
55                        return $flux;
56                }
57
58                include_spip('inc/invalideur');
59                $id_groupe = lire_config('spipicious/groupe_mot', '1');
60                if ($tags = _request('diogene_spipicious_tags')) {
61                        /**
62                         * Insertion des tags
63                         */
64                        include_spip('action/spipicious_ajouter_tags');
65                        $tableau_tags = explode(',', $tags);
66                        /**
67                         * On enlève titre et ctr_titre du $_POST
68                         * pour éviter une erreur dans inc/modifier
69                         */
70                        if ($ctr_titre = _request('ctr_titre')) {
71                                $request = true;
72                                $titre = _request('titre');
73                                set_request('titre', '');
74                                set_request('ctr_titre', '');
75                        }
76                        spipicious_ajouter_tags($tableau_tags, $GLOBALS['visiteur_session']['id_auteur'], $id_objet, $type, $id_table_objet, $id_groupe);
77                        /**
78                         * On remet le $_POST initial
79                         */
80                        if ($request) {
81                                set_request('titre', $titre);
82                                set_request('ctr_titre', $ctr_titre);
83                        }
84                        suivre_invalideur('0', true);
85                }
86                if (is_array(_request('diogene_spipicious_removal_tags'))) {
87                        /**
88                         * Suppression des tags si demandée
89                         */
90                        include_spip('action/spipicious_supprimer_tags');
91                        spipicious_supprimer_tags(_request('diogene_spipicious_removal_tags'), $GLOBALS['visiteur_session']['id_auteur'], $id_objet, $type, $id_table_objet, $id_groupe);
92                        suivre_invalideur('0', true);
93                }
94        }
95        return $flux;
96}
97
98/**
99 * Insertion dans le pipeline diogene_objets (Plugin Diogene)
100 * On ajoute la possibilité de prise en compte des tags sur :
101 * -* Les articles
102 * -* Les articles Pages
103 * -* Les articles de type emballe_medias
104 *
105 * @param array $flux Un tableau des champs que l'on peut ajouter aux formulaires
106 * @return array $flux Le tableau de champs complété
107 */
108function diogene_spipicious_diogene_objets($flux) {
109        if (defined('_DIR_PLUGIN_SPIPICIOUS')) {
110                $flux['article']['champs_sup']['spipicious'] = _T('diogene_spipicious:tags_spipicious');
111                if (defined('_DIR_PLUGIN_PAGES')) {
112                        $flux['page']['champs_sup']['spipicious'] = _T('diogene_spipicious:tags_spipicious');
113                }
114        }
115        return $flux;
116}
Note: See TracBrowser for help on using the repository browser.