source: spip-zone/_plugins_/traduction_articles_autrement/trunk/taa_pipelines.php @ 113955

Last change on this file since 113955 was 113955, checked in by abelass@…, 13 months ago

En cas de langue par secteur, l'article doit avoir la langue de la rubrique parente.

File size: 3.6 KB
Line 
1<?php
2if (!defined('_ECRIRE_INC_VERSION'))
3        return;
4
5function taa_header_prive($flux) {
6        $flux .= '<link rel="stylesheet" href="' . find_in_path('css/taa_styles.css') . '" type="text/css" media="all" />';
7        return $flux;
8}
9
10/* Ajoute la langue de traduction dans le chargement du formulaire edition_article */
11function taa_formulaire_charger($flux) {
12        $form = $flux['args']['form'];
13        if ($form == 'editer_article') {
14                $id_article = $flux['data']['id_article'];
15                if (!$id_rubrique = $flux['data']['id_parent'])
16                        $id_rubrique = (_request('id_rubrique') ? _request('id_rubrique') : (intval($id_article) ? sql_getfetsel('id_rubrique', 'spip_articles', 'id_article=' . $id_article) : ''));
17                $lang = _request('lang_dest');
18
19                if (!$lang and intval($id_rubrique))
20                        $lang = sql_getfetsel('lang', 'spip_rubriques', 'id_rubrique=' . $id_rubrique);
21                $flux['data']['lang_dest'] = $lang;
22
23                if ($flux['data']['lang_dest']) {
24                        $flux['data']['_hidden'] .= '<input type="hidden" name="lang_dest" value="' . $lang . '"/>';
25                        $flux['data']['_hidden'] .= '<input type="hidden" name="changer_lang" value="' . $lang . '"/>';
26                }
27        }
28
29        return $flux;
30}
31
32/* Prise en compte de la langue de traduction dans le traitement du formulaire edition_article */
33function taa_pre_insertion($flux) {
34        if ($flux['args']['table'] == 'spip_articles') {
35                if ($lang = _request('lang_dest')) {
36                        $flux['data']['lang'] = $lang;
37                }
38                elseif (test_plugin_actif('tradrub')) {
39                        $id_rubrique = _request('id_parent') ? _request('id_parent') : _request('id_rubrique');
40                        $lang = sql_getfetsel('lang', 'spip_rubriques', 'id_rubrique=' . $id_rubrique);
41                        $flux['data']['lang'] = $lang;
42                }
43        }
44        return $flux;
45}
46
47function taa_recuperer_fond($flux) {
48        // Insertion des onglets de langue
49        if ($flux['args']['fond'] == 'prive/squelettes/contenu/article') {
50                include_spip('inc/config');
51                $id_article = $flux['args']['contexte']['id_article'];
52
53                // Vérifier si il y des secteurs à exclure
54                $id_secteur = sql_getfetsel('id_secteur', 'spip_articles', 'id_article=' . $id_article);
55                $limiter_secteur = lire_config('taa/limiter_secteur') ? lire_config('taa/limiter_secteur') : array();
56
57                if (!in_array($id_secteur, $limiter_secteur)) {
58                        $barre = charger_fonction('barre_langues', 'inc');
59                        $barre_langue = $barre($id_article);
60
61                        $flux['data']['texte'] = str_replace('</h1>', '</h1>' . $barre_langue, $flux['data']['texte']);
62                }
63        }
64
65        // Liste compacte des articles
66        if ($flux['args']['fond'] == 'prive/objets/liste/articles' and _request('exec') != 'article' and !lire_config('taa/liste_compacte_desactive')) {
67
68                $flux['texte'] = recuperer_fond('prive/objets/liste/articles_compacte', $flux['args']['contexte']);
69        }
70
71        return $flux;
72}
73
74/**
75 * Agit lors de l’édition d’un élément éditorial, lorsque l’utilisateur édite les champs ou change le statut de l’objet.
76 * Il est appelé juste avant l’enregistrement des données.
77 * On peut s’en servir pour contrôler ou modif
78 *
79 * @pipeline pre_edition
80 *
81 * @param array $flux
82 *   Les données du pipeline
83 *
84 * @return array
85 *   Les donées du pipeleine.
86 */
87function taa_pre_edition($flux) {
88        $table = $flux['args']['table'];
89        // Si tradrub actif, on suppose le  système de secteur par langue.
90        // L'article doit donc avoir la mème langue que la rubrique parente.
91        if ($table == 'spip_articles' and test_plugin_actif('tradrub')) {
92                spip_log($flux, 'teste');
93                $rubrique = sql_fetsel('id_rubrique,lang', $table, 'id_article=' . $flux['args']['id_objet']);
94                if ($lang = sql_getfetsel(
95                                'lang',
96                                'spip_rubriques',
97                                'id_rubrique=' . $rubrique['id_rubrique']) and $lang != $rubrique['lang']) {
98                        $flux['data']['lang'] = $lang;
99                }
100        }
101
102        return $flux;
103}
Note: See TracBrowser for help on using the repository browser.