index.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. <?php
  2. session_start();
  3. $http_host = $_SERVER['HTTP_HOST'];
  4. include("../functions.php");
  5. $proto = getProtocol();
  6. $con = startdb();
  7. $server = "$proto$http_host";
  8. //Language
  9. $lang = 'es';
  10. include("../lang/lang_es.php");
  11. $cur_section = 'Traducciones';
  12. $l = strtolower(mysqli_real_escape_string($con, $_GET['l'])); // language
  13. if ($l != 'en' && $l != 'eu'){
  14. // TODO Regular page
  15. }
  16. else{
  17. $q_string="
  18. SELECT * FROM (
  19. SELECT * FROM (
  20. SELECT 'activity' AS tab, 'title' AS field, id, title_es AS es, title_eu AS eu, title_en AS en, dtime FROM activity WHERE title_es = title_XX
  21. UNION
  22. SELECT 'activity' AS tab, 'text' AS field, id, text_es AS es, text_eu AS eu, text_en AS en, dtime FROM activity WHERE text_es = text_XX
  23. UNION
  24. SELECT 'activity' AS tab, 'after' AS field, id, after_es AS es, after_eu AS eu, after_en AS en, dtime FROM activity WHERE after_es IS NOT NULL AND after_es = after_XX
  25. UNION
  26. SELECT 'activity_itinerary' AS tab, 'name' AS field, activity_itinerary.id AS id, name_es AS es, name_eu AS eu, name_en AS en, dtime FROM activity, activity_itinerary WHERE activity = activity.id AND name_es = name_XX
  27. UNION
  28. SELECT 'activity_itinerary' AS tab, 'text' AS field, activity_itinerary.id AS id, text_es AS es, text_eu AS eu, text_en AS en, dtime FROM activity, activity_itinerary WHERE activity = activity.id AND text_es IS NOT null AND text_es = text_XX
  29. UNION
  30. SELECT 'album' AS tab, 'title' AS field, id, title_es AS es, title_eu AS eu, title_en AS en, dtime FROM album WHERE title_es = title_XX
  31. UNION
  32. SELECT 'album' AS tab, 'description' AS field, id, description_es AS es, description_eu AS eu, description_en AS en, dtime FROM album WHERE description_es IS NOT NULL AND description_es = description_XX
  33. UNION
  34. SELECT 'festival' AS tab, 'text' AS field, id, text_es AS es, text_eu AS eu, text_en AS en, str_to_date(year || '-' || month(sysdate()) || '-' || day(sysdate()), '%Y-%m-%d') AS dtime FROM festival WHERE text_es = text_XX
  35. UNION
  36. SELECT 'festival' AS tab, 'summary' AS field, id, summary_es AS es, summary_eu AS eu, summary_en AS en, str_to_date(year || '-' || month(sysdate()) || '-' || day(sysdate()), '%Y-%m-%d') AS dtime FROM festival WHERE summary_es IS NOT null AND summary_es = summary_XX
  37. UNION
  38. SELECT 'festival_day' AS tab, 'name' AS field, id AS id, name_es AS es, name_eu AS eu, name_en AS en, date AS dtime FROM festival_day WHERE name_es = name_XX
  39. UNION
  40. SELECT 'festival_event' AS tab, 'title' AS field, id, title_es AS es, title_eu AS eu, title_en AS en, start AS dtime FROM festival_event WHERE title_es = title_XX
  41. UNION
  42. SELECT 'festival_event' AS tab, 'description' AS field, id, description_es AS es, description_eu AS eu, description_en AS en, start AS dtime FROM festival_event WHERE description_es IS NOT null AND description_es = description_XX
  43. UNION
  44. SELECT 'festival_offer' AS tab, 'name' AS field, id AS id, name_es AS es, name_eu AS eu, name_en AS en, str_to_date(year || '-' || month(sysdate()) || '-' || day(sysdate()), '%Y-%m-%d') AS dtime FROM festival_offer WHERE name_es = name_XX
  45. UNION
  46. SELECT 'festival_offer' AS tab, 'description' AS field, id AS id, description_es AS es, description_eu AS eu, description_en AS en, str_to_date(year || '-' || month(sysdate()) || '-' || day(sysdate()), '%Y-%m-%d') AS dtime FROM festival_offer WHERE description_es IS NOT null AND description_es = description_XX
  47. UNION
  48. SELECT 'photo' AS tab, 'title' AS field, id, title_es AS es, title_eu AS eu, title_en AS en, dtime FROM photo WHERE title_es IS NOT null AND title_es = title_XX
  49. UNION
  50. SELECT 'photo' AS tab, 'description' AS field, id, description_es AS es, description_eu AS eu, description_en AS en, dtime FROM photo WHERE description_es IS NOT null AND description_es = description_XX
  51. UNION
  52. SELECT 'place' AS tab, 'name' AS field, id AS id, name_es AS es, name_eu AS eu, name_en AS en, DATE_SUB(sysdate(), INTERVAL 7 DAY) AS dtime FROM place WHERE name_es = name_XX
  53. UNION
  54. SELECT 'place' AS tab, 'address' AS field, id AS id, address_es AS es, address_eu AS eu, address_en AS en, DATE_SUB(sysdate(), INTERVAL 7 DAY) AS dtime FROM place WHERE address_es = address_XX
  55. UNION
  56. SELECT 'post' AS tab, 'title' AS field, id, title_es AS es, title_eu AS eu, title_en AS en, dtime FROM post WHERE title_es = title_XX
  57. UNION
  58. SELECT 'post' AS tab, 'text' AS field, id, text_es AS es, text_eu AS eu, text_en AS en, dtime FROM post WHERE text_es = text_XX
  59. UNION
  60. SELECT 'sponsor' AS tab, 'name' AS field, id AS id, name_es AS es, name_eu AS eu, name_en AS en, DATE_SUB(sysdate(), INTERVAL 8 DAY) AS dtime FROM sponsor WHERE name_es = name_XX
  61. UNION
  62. SELECT 'sponsor' AS tab, 'text' AS field, id AS id, text_es AS es, text_eu AS eu, text_en AS en, DATE_SUB(sysdate(), INTERVAL 8 DAY) AS dtime FROM sponsor WHERE text_es = text_XX
  63. UNION
  64. SELECT 'sponsor' AS tab, 'address' AS field, id AS id, address_es AS es, address_eu AS eu, address_en AS en, DATE_SUB(sysdate(), INTERVAL 8 DAY) AS dtime FROM sponsor WHERE address_es = address_XX
  65. ) d ORDER BY dtime DESC LIMIT 100
  66. ) f ORDER BY rand();
  67. ";
  68. // Select language
  69. $q_string = str_replace('XX', $l, $q_string);
  70. ?>
  71. <!DOCTYPE html>
  72. <html>
  73. <head>
  74. <meta content="text/html; charset=utf-8" http-equiv="content-type"/>
  75. <meta charset="utf-8"/>
  76. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1">
  77. <title>Traducciones - Gasteizko Margolariak</title>
  78. <link rel="shortcut icon" href="<?=$server?>/img/logo/favicon.ico">
  79. <!-- CSS files -->
  80. <style>
  81. <?php
  82. include("../css/ui.css");
  83. include("../css/traducir.css");
  84. ?>
  85. </style>
  86. <!-- CSS for mobile version -->
  87. <style media="(max-width : 990px)">
  88. <?php
  89. include("../css/m/ui.css");
  90. include("../css/m/traducir.css");
  91. ?>
  92. </style>
  93. <!-- Script files -->
  94. <script type="text/javascript">
  95. <?php
  96. include("../script/ui.js");
  97. ?>
  98. var table = [];
  99. var field = [];
  100. var id = [];
  101. var es = [];
  102. var en = [];
  103. var eu = [];
  104. var idx = 0;
  105. <?php
  106. $q = mysqli_query($con, $q_string);
  107. $i = 0;
  108. while ($r = mysqli_fetch_array($q)){
  109. // Populate arrays
  110. ?>
  111. table[<?=$i?>] = '<?=$r['tab']?>';
  112. field[<?=$i?>] = '<?=$r['field']?>';
  113. id[<?=$i?>] = '<?=$r['id']?>';
  114. es[<?=$i?>] = '<?=$r['es']?>';
  115. en[<?=$i?>] = '<?=$r['en']?>';
  116. eu[<?=$i?>] = '<?=$r['eu']?>';
  117. <?php
  118. $i = $i + 1;
  119. }
  120. ?>
  121. function prepare(){
  122. while (es[idx].length == 0){
  123. idx = idx + 1;
  124. }
  125. if (es[idx].length <= 180){
  126. document.getElementById('i_original').innerHTML = es[idx];
  127. document.getElementById('i_original').style.display = 'inline-block';
  128. document.getElementById('i_translation').value = '';
  129. document.getElementById('i_translation').style.display = 'inline-block';
  130. document.getElementById('t_original').innerHTML = '';
  131. document.getElementById('t_original').style.display = 'none';
  132. document.getElementById('t_translation').innerHTML = '';
  133. document.getElementById('t_translation').innerText = '';
  134. document.getElementById('t_translation').value = '';
  135. document.getElementById('t_translation').style.display = 'none';
  136. document.getElementById('type').value = 'i';
  137. }
  138. else{
  139. document.getElementById('i_original').innerHTML = '';
  140. document.getElementById('i_original').style.display = 'none';
  141. document.getElementById('i_translation').value = '';
  142. document.getElementById('i_translation').style.display = 'none';
  143. document.getElementById('t_original').innerHTML = es[idx];
  144. document.getElementById('t_original').style.display = 'inline-block';
  145. document.getElementById('t_translation').innerHTML = '';
  146. document.getElementById('t_translation').innerText = '';
  147. document.getElementById('t_translation').value = '';
  148. document.getElementById('t_translation').style.display = 'inline-block';
  149. document.getElementById('type').value = 'i';
  150. }
  151. }
  152. function error(title, text){
  153. document.getElementById('error_title').innerHTML = title;
  154. document.getElementById('error_msg').innerHTML = text;
  155. document.getElementById('w_error').style.display = 'block';
  156. document.getElementById('w_error').style.opacity = 1;
  157. }
  158. function closeError(){
  159. document.getElementById('w_error').style.opacity = 0;
  160. setTimeout(function(){ document.getElementById('w_error').style.display = 'none'; }, 500);
  161. }
  162. function save(){
  163. if (document.getElementById('name').value.length == 0){
  164. error("Introduce tu nombre.", "Es necesario un nombre para identificar de quien provienen las traducciones.");
  165. return;
  166. }
  167. if (((document.getElementById('type').value == 'i') && (document.getElementById('i_translation').value.length == 0)) || ((document.getElementById('type').value == 't') && (document.getElementById('t_translation').value.length == 0))){
  168. error("Introduce una traducci&oacute;n.", "No has introducido una traducci&oacute;n. Si lo prefieres, utiliza el boton rojo para saltar esta traducci&oacute;n.");
  169. return;
  170. }
  171. // Get data
  172. var t = encodeURI(table[idx]);
  173. var f = encodeURI(field[idx]);
  174. var i = encodeURI(id[idx]);
  175. var c = "";
  176. var l = "<?=$l?>";
  177. var n = document.getElementById('name').value;
  178. if (document.getElementById('type').value == 'i'){
  179. c = encodeURI(document.getElementById('i_translation').value);
  180. }
  181. else{
  182. c = encodeURI(document.getElementById('t_translation').value);
  183. }
  184. var url = "load.php?t=" + t + "&f=" + f + "&i=" + i + "&c=" + c + "&l=" + l + "&n=" + n;
  185. var xhttp = new XMLHttpRequest();
  186. xhttp.onreadystatechange = function() {
  187. if (this.readyState == 4 && this.status == 200) {
  188. next();
  189. }
  190. };
  191. xhttp.open("GET", url, true);
  192. xhttp.send();
  193. }
  194. function next(){
  195. idx = idx + 1;
  196. prepare();
  197. }
  198. </script>
  199. <!-- Meta tags -->
  200. <link rel="canonical" href="<?=$server?>/traducir/"/>
  201. <link rel="author" href="<?=server?>"/>
  202. <link rel="publisher" href="<?=server?>"/>
  203. <meta name="description" content="Traduccion de contenidos de la web de Gasteizko Margolariak"/>
  204. <meta property="og:title" content="Traducciones - Gasteizko Margolariak"/>
  205. <meta property="og:url" content="<?=$server?>/traducir/"/>
  206. <meta property="og:description" content="Traduccion de contenidos de la web de Gasteizko Margolariak"/>
  207. <meta property="og:image" content="<?=$server?>/img/logo/logo.png"/>
  208. <meta property="og:site_name" content="Gasteizko Margolariak"/>
  209. <meta property="og:type" content="website"/>
  210. <meta property="og:locale" content="es"/>
  211. <meta name="twitter:card" content="summary"/>
  212. <meta name="twitter:title" content="Traducciones - Gasteizko Margolariak"/>
  213. <meta name="twitter:description" content="Traduccion de contenidos de la web de Gasteizko Margolariak"/>
  214. <meta name="twitter:image" content="<?=$server?>/img/logo/logo.png"/>
  215. <meta name="twitter:url" content="<?$server?>/traducir/"/>
  216. <meta name="robots" content="noindex nofollow"/>
  217. </head>
  218. <body onLoad='prepare();'>
  219. <?php include("../header.php"); ?>
  220. <div id="content">
  221. <div class='section'>
  222. <h3 class='section_title'>Traducciones en
  223. <?php
  224. if ($l == 'en'){
  225. echo("ingl&eacute;s");
  226. }
  227. else{
  228. echo("euskera");
  229. }
  230. ?>
  231. </h3>
  232. <div class='entry' id='w_target'>
  233. <div class='translation' id='original'>
  234. <h3 class='entry_title'>Original (Castellano)</h3>
  235. <span id='i_original'></span>
  236. <p id='t_original'></p>
  237. </div>
  238. <div class='translation' id='translation'>
  239. <h3 class='entry_title'>Traducci&oacute;n (
  240. <?php
  241. if ($l == 'en'){
  242. echo("Ingl&eacute;s");
  243. }
  244. else{
  245. echo("Euskera");
  246. }
  247. ?>
  248. )</h3>
  249. <input type='text' id='i_translation'/>
  250. <textarea id='t_translation'></textarea>
  251. </div>
  252. <input type='hidden' id='type' value='i'/>
  253. <input type='hidden' id='lang' value='<?=$l?>'/>
  254. </div> <!-- #w_target -->
  255. <div class='entry'>
  256. <table id='buttons'>
  257. <tr>
  258. <td>
  259. <input type='text' id='name' placeholder='Tu nombre...'/>
  260. </td>
  261. <td>
  262. <input type='button' id='next' value='Saltar esta' onClick='next();'/>
  263. </td>
  264. <td>
  265. <input type='button' id='save' value='Guardar' onClick='save();'/>
  266. </td>
  267. </tr>
  268. </table>
  269. </div>
  270. </div> <!-- .section -->
  271. <br/><br/><br/>
  272. <div class='section' id='w_error'>
  273. <h3 class='section_title' id='error_title'></h3>
  274. <div class='entry'>
  275. <table>
  276. <tr>
  277. <td>
  278. <span id='error_msg'></span>
  279. <br/><br/><br/><br/>
  280. </td>
  281. </tr>
  282. <tr>
  283. <td>
  284. <input type='button' value='Cerrar' onClick='closeError();'>
  285. </td>
  286. </tr>
  287. </table>
  288. </div>
  289. </div>
  290. </div> <!-- #content -->
  291. </body>
  292. </html>
  293. <?php
  294. } //if ($l != 'en' && $l != 'en'){ -- ELSE
  295. ?>