[SPIP] ~2.1.12 -->2.1.25
[velocampus/web/www.git] / www / ecrire / inc / referencer_traduction.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2014 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14
15 include_spip('inc/presentation');
16
17 // http://doc.spip.org/@inc_referencer_traduction_dist
18 function inc_referencer_traduction_dist($id_article, $flag, $id_rubrique, $id_trad, $trad_err='')
19 {
20 global $spip_display;
21
22 if (! (($GLOBALS['meta']['multi_articles'] == 'oui')
23 OR (($GLOBALS['meta']['multi_rubriques'] == 'oui')
24 AND ($GLOBALS['meta']['gerer_trad'] == 'oui'))) )
25 return '';
26
27 $langue_article = sql_fetsel("lang", "spip_articles", "id_article=$id_article");
28
29 $langue_article = $langue_article['lang'];
30
31 $reponse = '';
32 // Choix langue article
33 if ($GLOBALS['meta']['multi_articles'] == 'oui' AND $flag) {
34
35 $row = sql_fetsel("lang", "spip_rubriques", "id_rubrique=$id_rubrique");
36 $langue_parent = $row['lang'];
37
38 if (!$langue_parent)
39 $langue_parent = $GLOBALS['meta']['langue_site'];
40 if (!$langue_article)
41 $langue_article = $langue_parent;
42
43 if ($menu = liste_options_langues('changer_lang', $langue_article, $langue_parent)) {
44 // attention ce onchange doit etre suivi de <span><input type='submit'
45 $lien = "\nonchange=\"this.nextSibling.firstChild.style.visibility='visible';\"";
46 $menu = select_langues('changer_lang', $lien, $menu, _T('info_multi_cet_article'));
47
48 $menu = ajax_action_post('referencer_traduction', "$id_article,$id_rubrique","articles","id_article=$id_article", $menu, _T('bouton_changer'), " class='visible_au_chargement'");
49
50 $reponse .= debut_cadre_couleur('',true)
51 . "\n<div style='text-align: center;'>"
52 . $menu
53 . "</div>\n"
54 . fin_cadre_couleur(true);
55 }
56 }
57
58 if ($trad_err)
59 $reponse .= "<div><span style='color: red' size='2' face='Verdana, Geneva, helvetica, sans-serif'>"._T('trad_deja_traduit'). "</span></div>";
60
61 // Afficher la liste des traductions
62
63 if ($id_trad) {
64 $requete = array('SELECT' => "id_article, id_rubrique, titre, lang, statut, id_trad", 'FROM' => "spip_articles", 'WHERE' => "id_trad = $id_trad");
65 $styles = array(array('',7), array('', 12), array('arial2'), array('arial2', 100));
66 $presenter_liste = charger_fonction('presenter_liste', 'inc');
67 $tableau = array();
68 $liste = $presenter_liste($requete, 'articles_traduction', $tableau, $id_article, false, $styles, '',_T('trad_article_traduction'));
69 } else $liste = '';
70
71 // changer les globales de direction de langue
72 changer_typo($langue_article);
73
74 // Participation aux Traductions pas pour Mal-voyant. A completer
75 if ($spip_display == 4) $form =''; else {
76 $form = "<table width='100%'><tr>";
77
78 if ($flag AND !$liste) {
79 // Formulaire pour lier a un article
80 $form .= "<td style='width: 60%' class='arial2'>"
81 . ajax_action_post("referencer_traduction",
82 $id_article,
83 'articles',
84 "id_article=$id_article",
85 ("<label for='lier_trad'>" . _T('trad_lier') . "</label>" .
86 "\n<input type='text' name='lier_trad' id='lier_trad' size='5' />\n"),
87 _T('bouton_valider'),
88 "")
89 . "</td>\n"
90 . "<td style='width: 10px'> &nbsp; </td>"
91 . "<td style='width: 2px; background: url(" . chemin_image("tirets-separation.gif") . ")'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"
92 . "<td style='width: 10px'> &nbsp; </td>";
93 }
94
95 $form .= "<td>"
96 . icone_horizontale(_T('trad_new'), generer_url_ecrire("articles_edit","new=oui&lier_trad=$id_article&id_rubrique=$id_rubrique"), "traductions-24.gif", "creer.gif", false)
97 . "</td>";
98
99 if ($flag AND $liste) {
100 $clic = _T('trad_delier');
101 $form .= "<td style='width: 10px'> &nbsp; </td>"
102 . "<td style='width: 2px; background: url(" . chemin_image("tirets-separation.gif") . ")'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>"
103 . "<td style='width: 10px'> &nbsp; </td>"
104 . "<td>"
105 // la 1ere occurrence de clic ne sert pas en Ajax
106 . icone_horizontale($clic, ajax_action_auteur("referencer_traduction","$id_article,-$id_trad",'articles', "id_article=$id_article",array($clic)), "traductions-24.gif", "supprimer.gif", false)
107 . "</td>\n";
108 }
109
110 $form .= "</tr></table>";
111 }
112 if ($GLOBALS['meta']['gerer_trad'] == 'oui')
113 $bouton = _T('titre_langue_trad_article');
114 else
115 $bouton = _T('titre_langue_article');
116
117 if ($langue_article)
118 $bouton .= "&nbsp; (".traduire_nom_langue($langue_article).")";
119
120 $res = debut_cadre_enfonce('langues-24.gif', true, "",
121 bouton_block_depliable($bouton,$flag === 'ajax','languearticle,lier_traductions'))
122 . debut_block_depliable($flag === 'ajax','languearticle')
123 . $reponse
124 . fin_block()
125 . $liste
126 . debut_block_depliable($flag === 'ajax','lier_traductions')
127 . $form
128 . fin_block()
129 . fin_cadre_enfonce(true);
130 return ajax_action_greffe("referencer_traduction", $id_article, $res);
131 }
132
133
134 // http://doc.spip.org/@articles_traduction
135 function articles_traduction($row, $id_article)
136 {
137 global $connect_toutes_rubriques;
138
139 $vals = array();
140 $id_rubrique_trad = $row["id_rubrique"];
141 $id_article_trad = $row["id_article"];
142 $id_trad = $row["id_trad"];
143 $titre_trad = $row["titre"];
144 $lang_trad = $row["lang"];
145 $statut_trad = $row["statut"];
146
147 changer_typo($lang_trad);
148 $lang_dir = lang_dir($lang_trad);
149 $titre_trad = "<span dir='$lang_dir'>$titre_trad</span>";
150
151 $puce_statut = charger_fonction('puce_statut', 'inc');
152 $vals[] = $puce_statut($id_article_trad, $statut_trad, $id_rubrique_trad, 'article');
153
154 if ($id_article_trad == $id_trad) {
155 $vals[] = http_img_pack('langues-12.gif', "", " class='lang'");
156 $titre_trad = "<b>$titre_trad</b>";
157 } else {
158 if (!$connect_toutes_rubriques)
159 $vals[] = http_img_pack('langues-off-12.gif', "", " class='lang'");
160 else
161 $vals[] = ajax_action_auteur("referencer_traduction", "$id_article,$id_trad,$id_article_trad", 'articles', "id_article=$id_article", array(http_img_pack('langues-off-12.gif', _T('trad_reference'), "class='lang'"), ' title="' . _T('trad_reference') . '"'));
162 }
163
164 $s = typo(supprime_img($titre_trad,''));
165 if ($id_article_trad != $id_article)
166 $s = "<a href='" . generer_url_ecrire("articles","id_article=$id_article_trad") . "'>$s</a>";
167 if ($id_article_trad == $id_trad)
168 $s .= " "._T('trad_reference');
169
170 $vals[] = $s;
171 $vals[] = traduire_nom_langue($lang_trad);
172 return $vals;
173 }
174
175 ?>