PageRenderTime 44ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/admin/modules/language/check.php

http://viet-group.googlecode.com/
PHP | 216 lines | 191 code | 19 blank | 6 comment | 26 complexity | a7cd9f8ed2ce8d63000326159c3ed790 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. <?php
  2. /**
  3. * @Project NUKEVIET 3.0
  4. * @Author VINADES.,JSC (contact@vinades.vn)
  5. * @Copyright (C) 2010 VINADES.,JSC. All rights reserved
  6. * @Createdate 2-9-2010 14:43
  7. */
  8. if ( ! defined( 'NV_IS_FILE_LANG' ) ) die( 'Stop!!!' );
  9. $page_title = $lang_module['nv_lang_check'];
  10. $array_lang_exit = array();
  11. $result = $db->sql_query( "SHOW COLUMNS FROM `" . NV_LANGUAGE_GLOBALTABLE . "_file`" );
  12. $add_field = true;
  13. while ( $row = $db->sql_fetch_assoc( $result ) )
  14. {
  15. if ( substr( $row['Field'], 0, 7 ) == "author_" )
  16. {
  17. $array_lang_exit[] .= trim( substr( $row['Field'], 7, 2 ) );
  18. }
  19. }
  20. if ( empty( $array_lang_exit ) )
  21. {
  22. $contents = "<center><br /><b>" . $lang_module['nv_lang_error_exit'] . "</b></center>";
  23. $contents .= "<meta http-equiv=\"Refresh\" content=\"3;URL=" . NV_BASE_ADMINURL . "index.php?" . NV_NAME_VARIABLE . "=" . $module_name . "&amp;" . NV_OP_VARIABLE . "=setting\" />";
  24. include ( NV_ROOTDIR . "/includes/header.php" );
  25. echo nv_admin_theme( $contents );
  26. include ( NV_ROOTDIR . "/includes/footer.php" );
  27. exit();
  28. }
  29. $lang_array_file = array();
  30. $lang_array_file_temp = nv_scandir( NV_ROOTDIR . "/language", "/^[a-z]{2}+$/" );
  31. foreach ( $lang_array_file_temp as $value )
  32. {
  33. if ( file_exists( NV_ROOTDIR . "/language/" . $value . "/global.php" ) )
  34. {
  35. $lang_array_file[] = $value;
  36. }
  37. }
  38. $language_array_source = array(
  39. "vi", "en"
  40. );
  41. $language_check_type = array(
  42. 0 => $lang_module['nv_check_type_0'], 1 => $lang_module['nv_check_type_1'], 2 => $lang_module['nv_check_type_2']
  43. );
  44. $typelang = filter_text_input( 'typelang', 'post,get', '' );
  45. $sourcelang = filter_text_input( 'sourcelang', 'post,get', '' );
  46. $idfile = $nv_Request->get_int( 'idfile', 'post,get', 0 );
  47. $check_type = $nv_Request->get_int( 'check_type', 'post,get', 0 );
  48. if ( $nv_Request->isset_request( 'idfile,savedata', 'post' ) and $nv_Request->get_string( 'savedata', 'post' ) == md5( $global_config['sitekey'] . session_id() ) )
  49. {
  50. $pozlang = $nv_Request->get_array( 'pozlang', 'post', array() );
  51. if ( ! empty( $pozlang ) )
  52. {
  53. foreach ( $pozlang as $id => $lang_value )
  54. {
  55. $id = intval( $id );
  56. $lang_value = trim( strip_tags( $lang_value, NV_ALLOWED_HTML_LANG ) );
  57. if ( ! empty( $lang_value ) )
  58. {
  59. $db->sql_query( "UPDATE `" . NV_LANGUAGE_GLOBALTABLE . "` SET `lang_" . $typelang . "`='" . mysql_real_escape_string( $lang_value ) . "' WHERE `id`='" . $id . "'" );
  60. }
  61. }
  62. }
  63. }
  64. $array_files = array();
  65. $contents .= "<br /><form action=\"" . NV_BASE_ADMINURL . "index.php\" method=\"get\"><center>";
  66. $contents .= "<input type=\"hidden\" name =\"" . NV_NAME_VARIABLE . "\"value=\"" . $module_name . "\" />";
  67. $contents .= "<input type=\"hidden\" name =\"" . NV_OP_VARIABLE . "\"value=\"" . $op . "\" />";
  68. $contents .= "<table class=\"tab1\">";
  69. $contents .= "<tr><td align=\"right\">" . $lang_module['nv_lang_data'] . ":</td><td><select name=\"typelang\">\n";
  70. $contents .= " <option value=\"\">&nbsp;</option>\n";
  71. foreach ( $language_array as $key => $value )
  72. {
  73. if ( in_array( $key, $array_lang_exit ) )
  74. {
  75. $sl = ( $key == $typelang ) ? ' selected="selected"' : '';
  76. $contents .= "<option value=\"" . $key . "\" " . $sl . ">" . $value['name'] . "</option>\n";
  77. }
  78. }
  79. $contents .= "</select></td></tr>\n";
  80. $contents .= "<tr><td align=\"right\">" . $lang_module['nv_lang_data_source'] . ":</td><td><select name=\"sourcelang\">\n";
  81. $contents .= " <option value=\"\">&nbsp;</option>\n";
  82. foreach ( $language_array_source as $key )
  83. {
  84. if ( in_array( $key, $array_lang_exit ) )
  85. {
  86. $sl = ( $key == $sourcelang ) ? ' selected="selected"' : '';
  87. $contents .= "<option value=\"" . $key . "\" " . $sl . ">" . $language_array[$key]['name'] . "</option>\n";
  88. }
  89. }
  90. $contents .= "</select></td></tr>\n";
  91. $contents .= "<tr><td align=\"right\"> " . $lang_module['nv_lang_area'] . ":</td><td><select name=\"idfile\">\n";
  92. $contents .= " <option value=\"0\">" . $lang_module['nv_lang_checkallarea'] . "</option>\n";
  93. $query = "SELECT `idfile`, `module`, `admin_file` FROM `" . NV_LANGUAGE_GLOBALTABLE . "_file` ORDER BY `idfile` ASC";
  94. $result = $db->sql_query( $query );
  95. while ( list( $idfile_i, $module, $admin_file, ) = $db->sql_fetchrow( $result ) )
  96. {
  97. $langsitename = ( $admin_file == 1 ) ? $lang_module['nv_lang_admin'] : $lang_module['nv_lang_site'];
  98. $sl = ( $idfile_i == $idfile ) ? ' selected="selected"' : '';
  99. $contents .= " <option value=\"" . $idfile_i . "\" " . $sl . ">" . $module . " " . $langsitename . "</option>\n";
  100. $array_files[$idfile_i] = $module . " " . $langsitename;
  101. }
  102. $contents .= "</select></td></tr>\n";
  103. $contents .= "<tr><td align=\"right\">" . $lang_module['nv_check_type'] . ":</td><td><select name=\"check_type\">\n";
  104. foreach ( $language_check_type as $key => $value )
  105. {
  106. $sl = ( $key == $check_type ) ? ' selected="selected"' : '';
  107. $contents .= "<option value=\"" . $key . "\" " . $sl . ">" . $value . "</option>\n";
  108. }
  109. $contents .= "</select></td></tr>\n";
  110. $contents .= "</table>";
  111. $contents .= "<input type=\"hidden\" name =\"submit\" value=\"1\" />";
  112. $contents .= "<input type=\"submit\" value=\"" . $lang_module['nv_admin_submit'] . "\" /></center>";
  113. $contents .= "</form>";
  114. $contents .= "<br />";
  115. $submit = $nv_Request->get_int( 'submit', 'post,get', 0 );
  116. if ( $submit > 0 and in_array( $sourcelang, $array_lang_exit ) and in_array( $typelang, $array_lang_exit ) )
  117. {
  118. $array_where = array();
  119. if ( $idfile > 0 )
  120. {
  121. $array_where[] = "`idfile`='" . $idfile . "'";
  122. }
  123. if ( $check_type == 0 )
  124. {
  125. $array_where[] = "`lang_" . $typelang . "`=''";
  126. }
  127. elseif ( $check_type == 1 )
  128. {
  129. $array_where[] = "`lang_" . $typelang . "`=`lang_" . $sourcelang . "`";
  130. }
  131. if ( empty( $array_where ) )
  132. {
  133. $query = "SELECT `id`, `idfile`, `lang_key`, `lang_" . $typelang . "` as datalang, `lang_" . $sourcelang . "` as sourcelang FROM `" . NV_LANGUAGE_GLOBALTABLE . "` ORDER BY `id` ASC";
  134. }
  135. else
  136. {
  137. $query = "SELECT `id`, `idfile`, `lang_key`, `lang_" . $typelang . "` as datalang, `lang_" . $sourcelang . "` as sourcelang FROM `" . NV_LANGUAGE_GLOBALTABLE . "` WHERE " . implode( " AND ", $array_where ) . " ORDER BY `id` ASC";
  138. }
  139. $result = $db->sql_query( $query );
  140. $array_lang_data = array();
  141. while ( list( $id, $idfile_i, $lang_key, $datalang, $datasourcelang ) = $db->sql_fetchrow( $result ) )
  142. {
  143. $array_lang_data[$idfile_i][$id] = array(
  144. 'lang_key' => $lang_key, 'datalang' => $datalang, 'sourcelang' => $datasourcelang
  145. );
  146. }
  147. if ( ! empty( $array_lang_data ) )
  148. {
  149. $contents .= "<form action=\"" . NV_BASE_ADMINURL . "index.php\" method=\"post\">";
  150. $contents .= "<input type=\"hidden\" name =\"" . NV_NAME_VARIABLE . "\"value=\"" . $module_name . "\" />";
  151. $contents .= "<input type=\"hidden\" name =\"" . NV_OP_VARIABLE . "\"value=\"" . $op . "\" />";
  152. $contents .= "<input type=\"hidden\" name =\"submit\" value=\"1\" />";
  153. $contents .= "<input type=\"hidden\" name =\"typelang\" value=\"" . $typelang . "\" />";
  154. $contents .= "<input type=\"hidden\" name =\"sourcelang\" value=\"" . $sourcelang . "\" />";
  155. $contents .= "<input type=\"hidden\" name =\"check_type\" value=\"" . $check_type . "\" />";
  156. $contents .= "<input type=\"hidden\" name =\"idfile\" value=\"" . $idfile . "\" />";
  157. $contents .= "<input type=\"hidden\" name =\"savedata\" value=\"" . md5( $global_config['sitekey'] . session_id() ) . "\" />";
  158. foreach ( $array_lang_data as $idfile_i => $array_lang_file )
  159. {
  160. $contents .= "<table summary=\"\" class=\"tab1\">\n";
  161. $contents .= "<caption>" . $array_files[$idfile_i] . "</caption>";
  162. $contents .= "<col width=\"40\" />";
  163. $contents .= "<col width=\"200\" />";
  164. $contents .= "<thead>";
  165. $contents .= "<tr>";
  166. $contents .= "<td>" . $lang_module['nv_lang_nb'] . "</td>";
  167. $contents .= "<td>" . $lang_module['nv_lang_key'] . "</td>";
  168. $contents .= "<td>" . $lang_module['nv_lang_value'] . "</td>";
  169. $contents .= "</tr>";
  170. $contents .= "</thead>";
  171. foreach ( $array_lang_file as $id => $row )
  172. {
  173. $i ++;
  174. $class = ( $i % 2 ) ? " class=\"second\"" : "";
  175. $contents .= "<tbody" . $class . ">\n";
  176. $contents .= "<tr>";
  177. $contents .= "<td align=\"center\">" . $i . "</td>";
  178. $contents .= "<td align=\"right\">" . $row['lang_key'] . "</td>";
  179. $contents .= "<td align=\"left\"><input type=\"text\" value=\"" . nv_htmlspecialchars( $row['datalang'] ) . "\" name=\"pozlang[" . $id . "]\" size=\"90\" /><br />" . nv_htmlspecialchars( $row['sourcelang'] ) . "</td>";
  180. $contents .= "</tr>";
  181. $contents .= "</tbody>";
  182. }
  183. $contents .= "</table>";
  184. }
  185. $contents .= "<center><input type=\"submit\" value=\"" . $lang_module['nv_admin_edit_save'] . "\" /></center>";
  186. $contents .= "</form>";
  187. }
  188. else
  189. {
  190. $contents .= "<br /><br /><center><b>" . $lang_module['nv_lang_check_no_data'] . "</b></center><br /><br /><br /><br />";
  191. }
  192. unset( $array_lang_data, $array_files );
  193. }
  194. include ( NV_ROOTDIR . "/includes/header.php" );
  195. echo nv_admin_theme( $contents );
  196. include ( NV_ROOTDIR . "/includes/footer.php" );
  197. ?>