source: spip-zone/_plugins_/tradrub_proposee/trunk/tradrub_proposee_pipelines.php

Last change on this file was 107169, checked in by kent1@…, 18 months ago

Oups on retournait toutes les rubriques lorsque la rubrique n'était pas traduite

Version 0.6.0

File size: 3.0 KB
Line 
1<?php 
2/**
3 * Pipelines du plugin tradrub_proposee
4 *
5 * @author kent1 <kent1@arscenic.info>
6 * @package SPIP\Tradrub_proposee\Pipelines
7 **/
8if (!defined('_ECRIRE_INC_VERSION')) {
9        return;
10}
11
12/**
13 * Insertion dans le pipeline formulaire_fond (SPIP)
14 *
15 * Sur les formulaires d'édition de rubriques et articles :
16 * - Lors d'une traduction de l'objet (lier_trad dans l'environnement), proposer comme
17 * rubrique de destination les rubriques "traduites" de la rubrique de la version originale
18 *
19 * @pipeline formulaire_fond
20 * @param array $flux
21 * @return array
22 */
23function tradrub_proposee_formulaire_fond($flux) {
24        if (intval(_request('lier_trad')) > 0 and in_array($flux['args']['form'], array('editer_rubrique', 'editer_article'))) {
25                $rub_parente = sql_fetsel('id_trad, id_secteur', 'spip_rubriques', 'id_rubrique='.intval($flux['args']['contexte']['id_parent']));
26                if (intval($rub_parente['id_trad']) > 0) {
27                        $rub_traduites = sql_allfetsel('id_rubrique, id_secteur, titre, lang', 'spip_rubriques', 'id_trad='.intval($rub_parente['id_trad']));
28                        if (count($rub_traduites) > 1) {
29                                $texte = recuperer_fond('prive/squelettes/inclure/rubriques_traductions', array('traductions' => $rub_traduites, 'id_parent' => $flux['args']['contexte']['id_parent'], 'id_secteur' => $rub_parente['id_secteur']));
30                                $flux['data'] = preg_replace(
31                                        ",(<label [^>]*for=[\"']id_parent.*<\/label>),Uims",
32                                        '$1'.$texte,
33                                        $flux['data'],
34                                        1
35                                );
36                        }
37                }
38        }
39        return $flux;
40}
41
42/**
43 * Insertion dans le pipeline formulaire_verifier (SPIP)
44 *
45 * Sur les formulaires d'édition de rubriques et articles, afficher une erreur en fonction de la configuration :
46 * - si une traduction est faite dans la même rubrique que l'originale
47 * - si une traduction est faite dans le même secteur que l'originale
48 *
49 * @pipeline formulaire_verifier
50 * @param array $flux
51 * @return array
52 */
53function tradrub_proposee_formulaire_verifier($flux) {
54        if (!isset($flux['data']['id_parent']) && intval(_request('lier_trad')) > 0 and in_array($flux['args']['form'], array('editer_rubrique', 'editer_article'))) {
55                if (!function_exists('lire_config')) {
56                        include_spip('inc/config');
57                }
58                if ($flux['args']['form'] == 'editer_rubrique') {
59                        $infos = sql_fetsel('id_parent, id_secteur', 'spip_rubriques', 'id_rubrique = '._request('lier_trad'));
60                } else {
61                        $infos = sql_fetsel('id_rubrique as id_parent, id_secteur', 'spip_articles', 'id_article = '._request('lier_trad'));
62                }
63                if (lire_config('tradrub_proposee/interdit_meme_rubrique') == 'on' 
64                        && (intval(_request('id_parent')) == $infos['id_parent'])) {
65                        $flux['data']['id_parent'] = _T('tradrub_proposee:erreur_interdit_meme_rubrique');
66                }
67                if (!isset($flux['data']['id_parent']) 
68                        && lire_config('tradrub_proposee/interdit_meme_secteur') == 'on' 
69                        && (sql_getfetsel('id_secteur', 'spip_rubriques', 'id_rubrique='.intval(_request('id_parent'))) == $infos['id_secteur'])) {
70                        $flux['data']['id_parent'] = _T('tradrub_proposee:erreur_interdit_meme_secteur');
71                }
72        }
73        return $flux;
74}
Note: See TracBrowser for help on using the repository browser.