PageRenderTime 40ms CodeModel.GetById 13ms RepoModel.GetById 1ms app.codeStats 0ms

/Branch_4_6/gforge/www/admin/languages/loadtabfiles.php

https://gitlab.com/oslc-cm-server/olbergers-ff5-oslc
PHP | 185 lines | 143 code | 14 blank | 28 comment | 19 complexity | 43af3d8d7eb9d062363e5bd303baa44c MD5 | raw file
Possible License(s): GPL-2.0, MPL-2.0-no-copyleft-exception
  1. <?php
  2. /**
  3. * //TODO DESCRIPTION
  4. *
  5. * @version $Id$
  6. *
  7. * This file is part of GForge.
  8. *
  9. * GForge is free software; you can redistribute it and/or modify
  10. * it under the terms of the GNU General Public License as published by
  11. * the Free Software Foundation; either version 2 of the License, or
  12. * (at your option) any later version.
  13. *
  14. * GForge is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. * GNU General Public License for more details.
  18. *
  19. * You should have received a copy of the GNU General Public License
  20. * along with GForge; if not, write to the Free Software
  21. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  22. */
  23. require_once('pre.php');
  24. require_once('common/include/account.php');
  25. require_once('common/include/escapingUtils.php');
  26. require_once('www/admin/admin_utils.php');
  27. require_once('www/include/BaseLanguage.class');
  28. session_require(array('group'=>'1','admin_flags'=>'A'));
  29. if (getStringFromRequest('purgeall')) {
  30. db_query("DROP TABLE tmp_lang;");
  31. }
  32. if (getStringFromRequest('loadall')) {
  33. db_query("DROP TABLE tmp_lang;");
  34. db_query("CREATE TABLE tmp_lang (tmpid integer, language_id text, seq integer , pagename text, category text, tstring text);");
  35. //db_commit();
  36. $rep= $sys_urlroot . 'include/languages/';
  37. //chdir($rep);
  38. $dir = opendir("$rep");
  39. while($file = readdir($dir)) {
  40. if(ereg("(.*)\.tab$",$file,$regs)){
  41. $tmpid=0;
  42. $language_id=$regs[1];
  43. $ary = file($rep . $file,1);
  44. for ($i=0; $i<sizeof($ary); $i++) {
  45. $seq=$i*10;
  46. if (substr($ary[$i], 0, 1) == '#') {
  47. $query="INSERT INTO tmp_lang values(". $seq . ",'" . $language_id . "'," . $seq . ",'#','#" . $seq . "','" . $ary[$i] . "')";
  48. $tmpid++;
  49. db_query($query);
  50. continue;
  51. }
  52. $line = explode("\t", $ary[$i], 3);
  53. //$query="INSERT INTO tmp_lang values(". $seq . ",'" . $language_id . "'," . $seq . ",'" . $line[0] . "','" . $line[1] . "','" . $line[2] ."')";
  54. $query="INSERT INTO tmp_lang values(". $seq . ",'" . $language_id . "'," . $seq . ",'" . $line[0] . "','" . $line[1] . "','" . addslashes(quotemeta(htmlspecialchars($line[2]))) ."')";
  55. //$query="INSERT INTO tmp_lang values(". $seq . ",'" . $language_id . "'," . $seq . ",'" . $line[0] . "','" . $line[1] . "','" . base64_encode($line[2]) ."')";
  56. $tmpid++;
  57. $res=db_query($query);
  58. if (!$res){
  59. echo '<br />'.$query.'<br />'. db_error();
  60. }
  61. }
  62. }
  63. }
  64. rewinddir($dir);
  65. while($file = readdir($dir)) {
  66. if(ereg("(.*)\.tab$",$file,$regs)){
  67. $language_id=$regs[1];
  68. $query="INSERT INTO tmp_lang SELECT -1,'".$language_id."',seq+5,pagename,category,tstring FROM tmp_lang WHERE language_id='Base' AND pagename!='#' AND pagename||category NOT IN (select pagename||category FROM tmp_lang WHERE language_id='" . $language_id . "' ) ORDER BY seq";
  69. $res=db_query($query);
  70. if (!$res){
  71. echo '<br />'.$query.'<br />'. db_error();
  72. }
  73. }
  74. }
  75. closedir($dir);
  76. //db_commit();
  77. }
  78. site_admin_header(array('title'=>"Site Admin"));
  79. ?>
  80. <form name="mload" method="post" action="<?php echo getStringFromServer('PHP_SELF'); ?>">
  81. <input type="submit" name="loadall" value="<?php echo "(Re)Load all language files"; ?>" />
  82. <input type="submit" name="purgeall" value="<?php echo "Purge loaded data"; ?>" />
  83. </form>
  84. <p />
  85. <?php
  86. $result1=db_query("select language_id, count(language_id) AS count from tmp_lang where pagename!='#' and tmpid!='-1' group by language_id");
  87. $result2=db_query("select language_id, count(language_id) AS count from tmp_lang where pagename!='#' group by language_id");
  88. if (db_numrows($result1)>0) {
  89. ?>
  90. <span class="important">Tables loaded:</span>
  91. <?php
  92. echo '
  93. <table border="0">
  94. <tr class="tableheading">
  95. <td>Language</td>
  96. <td colspan=2>Translated</td>
  97. <td colspan=2>Extra</td>
  98. <td>Double</td>
  99. <td>Translation</td>
  100. <td>To Translate</td>
  101. <td>Not in Base</td>
  102. <td>Tab file</td>
  103. </tr>';
  104. $maxtrans=0;
  105. for ($i=0; $i<db_numrows($result1) ; $i++) {
  106. $howmany1=db_result($result1, $i, 'count');
  107. //if ($howmany>$maxtrans) $maxtrans=$howmany;
  108. $lang=db_result($result1, $i, 'language_id');
  109. if ($lang=='Base') $maxtrans=$howmany1;
  110. }
  111. for ($i=0; $i<db_numrows($result1) ; $i++) {
  112. $howmany1=db_result($result1,$i,'count');
  113. $howmany2=db_result($result2,$i,'count')-$maxtrans;
  114. $rate1=$howmany1 * 100 / $maxtrans;
  115. $rate2=$howmany2 * 100 / $maxtrans;
  116. $language_id=db_result($result1,$i,'language_id');
  117. echo "\n<tr ".$HTML->boxGetAltRowStyle($i)."><td>$language_id</td>";
  118. printf("<td>%d</td><td>%3.2f",$howmany1,$rate1);
  119. echo "%</td>";
  120. if ($rate2!=0) {
  121. printf("<td>%d</td><td>%3.2f",$howmany2,$rate2);
  122. echo "%</td>";
  123. } else {
  124. printf("<td colspan=2></td>");
  125. }
  126. ?>
  127. <td>
  128. <a href="editdouble.php?function=show&lang=<?php echo "$language_id"; ?>">[edit]</a>
  129. </td>
  130. <td>
  131. <a href="seetranstabfiles.php?function=show&lang=<?php echo "$language_id"; ?>">[see]</a>
  132. <a href="edittranstabfiles.php?function=show&lang=<?php echo "$language_id"; ?>">[edit]</a>
  133. </td>
  134. <td>
  135. <a href="seenotranstabfiles.php?function=show&lang=<?php echo "$language_id"; ?>">[see]</a>
  136. <a href="editnotranstabfiles.php?function=show&lang=<?php echo "$language_id"; ?>">[edit]</a>
  137. </td>
  138. <td>
  139. <a href="seenotinbasetabfiles.php?function=show&lang=<?php echo "$language_id"; ?>">
  140. <? if ($rate2!=0) echo "[see]";?></a>
  141. <a href="editnotinbasetabfiles.php?function=show&lang=<?php echo "$language_id"; ?>">
  142. <? if ($rate2!=0) echo "[edit]";?></a>
  143. </td>
  144. <td>
  145. <a href="seetabfiles.php?function=show&lang=<?php echo "$language_id"; ?>">[see]</a>
  146. <a href="edittabfiles.php?function=show&lang=<?php echo "$language_id"; ?>">[edit]</a>
  147. <a href="gettabfiles.php?function=show&lang=<?php echo "$language_id"; ?>">[get]</a>
  148. </td>
  149. <?php
  150. echo "</tr>";
  151. }
  152. echo "\n</table>";
  153. } else {
  154. ?>
  155. <span class="important">Available Tables:</span>
  156. <table border="0">
  157. <?php
  158. $rep= $sys_urlroot . 'include/languages/';
  159. //chdir($rep);
  160. $dir = opendir("$rep");
  161. while($file = readdir($dir)) {
  162. if(ereg("(.*)\.tab$",$file,$regs)){
  163. $language_id=$regs[1];
  164. echo "\n<tr><td>$language_id</td>";
  165. echo "<tr>";
  166. }
  167. }
  168. echo "\n</table>";
  169. }
  170. site_admin_footer(array());
  171. ?>