source: spip-zone/_plugins_/diogene/diogene/trunk/action/diogene_creer_traduction.php @ 97999

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

Nettoyage

File size: 2.7 KB
Line 
1<?php
2/**
3 * Plugin Diogene
4 *
5 * Auteurs :
6 * b_b
7 * kent1 (http://www.kent1.info - kent1@arscenic.info)
8 *
9 * Distribue sous licence GNU/GPL
10 *
11 * Action de création de traduction depuis l'espace public
12 *
13 **/
14
15if (!defined('_ECRIRE_INC_VERSION')) {
16        return;
17}
18
19function action_diogene_creer_traduction_dist($arg = null) {
20        if (is_null($arg)) {
21                $securiser_action = charger_fonction('securiser_action', 'inc');
22                $arg = $securiser_action();
23        }
24
25        include_spip('action/editer_article');
26        $lang = _request('langue_forcee');
27
28        if (!is_numeric(intval($arg)) or !$lang) {
29                return;
30        }
31
32        $contenu_article = sql_fetsel('*', 'spip_articles', 'id_article = '.intval($arg));
33
34        if ($contenu_article) {
35                $id_trad = $contenu_article['id_article'];
36                if (!($id_article = sql_getfetsel('id_article', 'spip_articles', 'id_trad='.intval($id_trad).' AND lang='.sql_quote($lang)))) {
37                        $id_rubrique = $contenu_article['id_rubrique'];
38
39                        /**
40                         * Insertion de l'article dans la rubrique idoine
41                         */
42                        $id_article = article_inserer($id_rubrique);
43
44                        /**
45                         * Mise à jour de l'article en lui donnant l'ensemble du contenu de la version originale
46                         */
47                        $c = $contenu_article;
48                        unset($c['id_article']);
49                        unset($c['date']);
50                        unset($c['statut']);
51                        unset($c['id_rubrique']);
52                        unset($c['id_parent']);
53
54                        $c['lang'] = $lang;
55
56                        article_modifier($id_article, $c);
57
58                        /**
59                         * On donne un statut, une date et un id_parent
60                         */
61                        $c = array(
62                                        'date'=> date('Y-m-d H:i:s'),
63                                        'statut' => lire_config('diogene/statuts/article_statut_defaut', 'prepa'),
64                                        'id_parent' => $id_rubrique
65                                );
66                        article_instituer($id_article, $c);
67
68                        /**
69                         * On l'associe au bon article d'origine
70                         */
71                        $referencer_traduction = charger_fonction('referencer_traduction', 'action');
72                        $referencer_traduction('article', $id_article, intval($arg)); // 0 si supprimer_trad
73
74                        include_spip('action/diogene_recup_doc_trad');
75                        diogene_recuperer_docs_trad($id_article, $id_trad);
76
77                        /**
78                         * On lui associe automatiquement le ou les auteurs de l'article original
79                         * L'id_auteur courant est automatiquement ajouté par article_inserer()
80                         */
81                        $auteurs = sql_allfetsel('id_auteur', 'spip_auteurs_liens', 'objet="article" AND id_objet='.intval($id_trad));
82                        foreach ($auteurs as $auteur) {
83                                $auteur['id_objet'] = $id_article;
84                                $auteur['objet'] = 'article';
85                                sql_insertq('spip_auteurs_liens', $auteur);
86                        }
87                }
88
89                $redirect = _request('redirect');
90                if (!$redirect) {
91                        include_spip('diogene_fonctions');
92                        $redirect = generer_url_publier($id_article);
93                }
94
95                include_spip('inc/invalideur');
96                suivre_invalideur('0', true);
97
98                include_spip('inc/headers');
99                redirige_par_entete(str_replace('&amp;', '&', $redirect));
100        }
101}
Note: See TracBrowser for help on using the repository browser.