PageRenderTime 46ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/Quản lý website trường trung học phổ thông PHP/lc1/admin/modules/language/check.php

https://gitlab.com/phamngsinh/baitaplon_sinhvien
PHP | 221 lines | 196 code | 19 blank | 6 comment | 26 complexity | 989e0b4595180a0ed48ed8018b248e15 MD5 | raw file
  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( "vi", "en" );
  39. $language_check_type = array( 0 => $lang_module['nv_check_type_0'], 1 => $lang_module['nv_check_type_1'], 2 => $lang_module['nv_check_type_2'] );
  40. $typelang = filter_text_input( 'typelang', 'post,get', '' );
  41. $sourcelang = filter_text_input( 'sourcelang', 'post,get', '' );
  42. $idfile = $nv_Request->get_int( 'idfile', 'post,get', 0 );
  43. $check_type = $nv_Request->get_int( 'check_type', 'post,get', 0 );
  44. if ( $nv_Request->isset_request( 'idfile,savedata', 'post' ) and $nv_Request->get_string( 'savedata', 'post' ) == md5( $global_config['sitekey'] . session_id() ) )
  45. {
  46. $pozlang = $nv_Request->get_array( 'pozlang', 'post', array() );
  47. if ( ! empty( $pozlang ) )
  48. {
  49. foreach ( $pozlang as $id => $lang_value )
  50. {
  51. $id = intval( $id );
  52. $lang_value = trim( strip_tags( $lang_value, NV_ALLOWED_HTML_LANG ) );
  53. if ( ! empty( $lang_value ) )
  54. {
  55. $db->sql_query( "UPDATE `" . NV_LANGUAGE_GLOBALTABLE . "` SET `lang_" . $typelang . "`='" . mysql_real_escape_string( $lang_value ) . "' WHERE `id`='" . $id . "'" );
  56. }
  57. }
  58. }
  59. }
  60. $array_files = array();
  61. $contents .= "<br /><form action=\"" . NV_BASE_ADMINURL . "index.php\" method=\"get\"><center>";
  62. $contents .= "<input type=\"hidden\" name =\"" . NV_NAME_VARIABLE . "\"value=\"" . $module_name . "\" />";
  63. $contents .= "<input type=\"hidden\" name =\"" . NV_OP_VARIABLE . "\"value=\"" . $op . "\" />";
  64. $contents .= "<table class=\"tab1\">";
  65. $contents .= "<tr><td align=\"right\">" . $lang_module['nv_lang_data'] . ":</td><td><select name=\"typelang\">\n";
  66. $contents .= " <option value=\"\">&nbsp;</option>\n";
  67. foreach ( $language_array as $key => $value )
  68. {
  69. if ( in_array( $key, $array_lang_exit ) )
  70. {
  71. $sl = ( $key == $typelang ) ? ' selected="selected"' : '';
  72. $contents .= "<option value=\"" . $key . "\" " . $sl . ">" . $value['name'] . "</option>\n";
  73. }
  74. }
  75. $contents .= "</select></td></tr>\n";
  76. $contents .= "<tr><td align=\"right\">" . $lang_module['nv_lang_data_source'] . ":</td><td><select name=\"sourcelang\">\n";
  77. $contents .= " <option value=\"\">&nbsp;</option>\n";
  78. foreach ( $language_array_source as $key )
  79. {
  80. if ( in_array( $key, $array_lang_exit ) )
  81. {
  82. $sl = ( $key == $sourcelang ) ? ' selected="selected"' : '';
  83. $contents .= "<option value=\"" . $key . "\" " . $sl . ">" . $language_array[$key]['name'] . "</option>\n";
  84. }
  85. }
  86. $contents .= "</select></td></tr>\n";
  87. $contents .= "<tr><td align=\"right\"> " . $lang_module['nv_lang_area'] . ":</td><td><select name=\"idfile\">\n";
  88. $contents .= " <option value=\"0\">" . $lang_module['nv_lang_checkallarea'] . "</option>\n";
  89. $query = "SELECT `idfile`, `module`, `admin_file` FROM `" . NV_LANGUAGE_GLOBALTABLE . "_file` ORDER BY `idfile` ASC";
  90. $result = $db->sql_query( $query );
  91. while ( list( $idfile_i, $module, $admin_file, ) = $db->sql_fetchrow( $result ) )
  92. {
  93. switch ( $admin_file )
  94. {
  95. case '1':
  96. $langsitename = $lang_module['nv_lang_admin'];
  97. break;
  98. case '0':
  99. $langsitename = $lang_module['nv_lang_site'];
  100. break;
  101. default:
  102. $langsitename = $admin_file;
  103. break;
  104. }
  105. $sl = ( $idfile_i == $idfile ) ? ' selected="selected"' : '';
  106. $contents .= " <option value=\"" . $idfile_i . "\" " . $sl . ">" . $module . " " . $langsitename . "</option>\n";
  107. $array_files[$idfile_i] = $module . " " . $langsitename;
  108. }
  109. $contents .= "</select></td></tr>\n";
  110. $contents .= "<tr><td align=\"right\">" . $lang_module['nv_check_type'] . ":</td><td><select name=\"check_type\">\n";
  111. foreach ( $language_check_type as $key => $value )
  112. {
  113. $sl = ( $key == $check_type ) ? ' selected="selected"' : '';
  114. $contents .= "<option value=\"" . $key . "\" " . $sl . ">" . $value . "</option>\n";
  115. }
  116. $contents .= "</select></td></tr>\n";
  117. $contents .= "</table>";
  118. $contents .= "<input type=\"hidden\" name =\"submit\" value=\"1\" />";
  119. $contents .= "<input type=\"submit\" value=\"" . $lang_module['nv_admin_submit'] . "\" /></center>";
  120. $contents .= "</form>";
  121. $contents .= "<br />";
  122. $submit = $nv_Request->get_int( 'submit', 'post,get', 0 );
  123. if ( $submit > 0 and in_array( $sourcelang, $array_lang_exit ) and in_array( $typelang, $array_lang_exit ) )
  124. {
  125. $array_where = array();
  126. if ( $idfile > 0 )
  127. {
  128. $array_where[] = "`idfile`='" . $idfile . "'";
  129. }
  130. if ( $check_type == 0 )
  131. {
  132. $array_where[] = "`lang_" . $typelang . "`=''";
  133. }
  134. elseif ( $check_type == 1 )
  135. {
  136. $array_where[] = "`lang_" . $typelang . "`=`lang_" . $sourcelang . "`";
  137. }
  138. if ( empty( $array_where ) )
  139. {
  140. $query = "SELECT `id`, `idfile`, `lang_key`, `lang_" . $typelang . "` as datalang, `lang_" . $sourcelang . "` as sourcelang FROM `" . NV_LANGUAGE_GLOBALTABLE . "` ORDER BY `id` ASC";
  141. }
  142. else
  143. {
  144. $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";
  145. }
  146. $result = $db->sql_query( $query );
  147. $array_lang_data = array();
  148. while ( list( $id, $idfile_i, $lang_key, $datalang, $datasourcelang ) = $db->sql_fetchrow( $result ) )
  149. {
  150. $array_lang_data[$idfile_i][$id] = array( 'lang_key' => $lang_key, 'datalang' => $datalang, 'sourcelang' => $datasourcelang );
  151. }
  152. if ( ! empty( $array_lang_data ) )
  153. {
  154. $contents .= "<form action=\"" . NV_BASE_ADMINURL . "index.php\" method=\"post\">";
  155. $contents .= "<input type=\"hidden\" name =\"" . NV_NAME_VARIABLE . "\"value=\"" . $module_name . "\" />";
  156. $contents .= "<input type=\"hidden\" name =\"" . NV_OP_VARIABLE . "\"value=\"" . $op . "\" />";
  157. $contents .= "<input type=\"hidden\" name =\"submit\" value=\"1\" />";
  158. $contents .= "<input type=\"hidden\" name =\"typelang\" value=\"" . $typelang . "\" />";
  159. $contents .= "<input type=\"hidden\" name =\"sourcelang\" value=\"" . $sourcelang . "\" />";
  160. $contents .= "<input type=\"hidden\" name =\"check_type\" value=\"" . $check_type . "\" />";
  161. $contents .= "<input type=\"hidden\" name =\"idfile\" value=\"" . $idfile . "\" />";
  162. $contents .= "<input type=\"hidden\" name =\"savedata\" value=\"" . md5( $global_config['sitekey'] . session_id() ) . "\" />";
  163. foreach ( $array_lang_data as $idfile_i => $array_lang_file )
  164. {
  165. $contents .= "<table summary=\"\" class=\"tab1\">\n";
  166. $contents .= "<caption>" . $array_files[$idfile_i] . "</caption>";
  167. $contents .= "<col width=\"40\" />";
  168. $contents .= "<col width=\"200\" />";
  169. $contents .= "<thead>";
  170. $contents .= "<tr>";
  171. $contents .= "<td>" . $lang_module['nv_lang_nb'] . "</td>";
  172. $contents .= "<td>" . $lang_module['nv_lang_key'] . "</td>";
  173. $contents .= "<td>" . $lang_module['nv_lang_value'] . "</td>";
  174. $contents .= "</tr>";
  175. $contents .= "</thead>";
  176. foreach ( $array_lang_file as $id => $row )
  177. {
  178. $i ++;
  179. $class = ( $i % 2 ) ? " class=\"second\"" : "";
  180. $contents .= "<tbody" . $class . ">\n";
  181. $contents .= "<tr>";
  182. $contents .= "<td align=\"center\">" . $i . "</td>";
  183. $contents .= "<td align=\"right\">" . $row['lang_key'] . "</td>";
  184. $contents .= "<td align=\"left\"><input type=\"text\" value=\"" . nv_htmlspecialchars( $row['datalang'] ) . "\" name=\"pozlang[" . $id . "]\" size=\"90\" /><br />" . nv_htmlspecialchars( $row['sourcelang'] ) . "</td>";
  185. $contents .= "</tr>";
  186. $contents .= "</tbody>";
  187. }
  188. $contents .= "</table>";
  189. }
  190. $contents .= "<center><input type=\"submit\" value=\"" . $lang_module['nv_admin_edit_save'] . "\" /></center>";
  191. $contents .= "</form>";
  192. }
  193. else
  194. {
  195. $contents .= "<br /><br /><center><b>" . $lang_module['nv_lang_check_no_data'] . "</b></center><br /><br /><br /><br />";
  196. }
  197. unset( $array_lang_data, $array_files );
  198. }
  199. include ( NV_ROOTDIR . "/includes/header.php" );
  200. echo nv_admin_theme( $contents );
  201. include ( NV_ROOTDIR . "/includes/footer.php" );
  202. ?>