PageRenderTime 48ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/www/admin/source/language.php

http://firmkernel.googlecode.com/
PHP | 244 lines | 233 code | 1 blank | 10 comment | 1 complexity | 0a8e79381db65021092724cb6ffe28ff MD5 | raw file
Possible License(s): LGPL-3.0
  1. <?php
  2. /*
  3. +-----------------------------------------------------------------------------+
  4. | $Id: language.php 2010-05-24 12:37:44Z Bleakwind $
  5. | Manage language
  6. | Copyright (c) 2003-2010 Bleakwind (www.weaverdream.com)
  7. | http://www.weaverdream.com/
  8. | Release under the GNU Lesser General Public License Version 3 (LGPLv3):
  9. | http://www.gnu.org/licenses/lgpl.html
  10. +-----------------------------------------------------------------------------+
  11. */
  12. if (!defined( 'ENTRY_INDEX')){
  13. echo "<h1>Forbidden</h1><p>You don't have permission to access on this server.</p>";
  14. exit;
  15. }
  16. // Admin group add and amend ajax
  17. function submit_form($type, $value, $submit)
  18. {
  19. global $LANGUAGE,$LANGLIST,$SETTING,$CONFIGURE,$MEMBER,$ADMIN,$db,$sys,$c,$setting_cover,$setting_attach;
  20. $ajax_response = new xajaxResponse();
  21. $error = false;
  22. //$ajax_response->alert(print_r($value, true)); $ajax_response->assign($submit,"disabled",false); return $ajax_response;
  23. if ($type == "amend") {
  24. $submit_value = "编辑";
  25. } else {
  26. $submit_value = "添加";
  27. }
  28. if( !preg_match("/^[a-z0-9_]+$/i",$value['name']) ) {
  29. $error = true;
  30. if(empty($anchor)) { $anchor = "name"; }
  31. $ajax_response->assign("name_return", "innerHTML", "<span class=\"prompt_failed\">名称必须填写,且只能为英文,数字或下划线<!-- name error --></span>");
  32. } else {
  33. $ajax_response->assign("name_return", "innerHTML", "");
  34. }
  35. if( !preg_match("/^[a-z0-9]+$/i",$value['code']) ) {
  36. $error = true;
  37. if(empty($anchor)) { $anchor = "code"; }
  38. $ajax_response->assign("code_return", "innerHTML", "<span class=\"prompt_failed\">代码不能为空且只能为英文数字<!-- code error --></span>");
  39. } else {
  40. $ajax_response->assign("code_return", "innerHTML", "");
  41. }
  42. if( !preg_match("/^[a-z0-9_.]+$/i",$value['icon']) ) {
  43. $error = true;
  44. if(empty($anchor)) { $anchor = "icon"; }
  45. $ajax_response->assign("icon_return", "innerHTML", "<span class=\"prompt_failed\">图标不能为空且只能为英文数字下划线和点<!-- icon error --></span>");
  46. } else {
  47. $ajax_response->assign("icon_return", "innerHTML", "");
  48. }
  49. if( !preg_match("/^[a-z0-9_]+$/i",$value['dir']) ) {
  50. $error = true;
  51. if(empty($anchor)) { $anchor = "dir"; }
  52. $ajax_response->assign("dir_return", "innerHTML", "<span class=\"prompt_failed\">排序不能为空且只能为英文数字和下划线<!-- dir error --></span>");
  53. } else {
  54. $ajax_response->assign("dir_return", "innerHTML", "");
  55. }
  56. if(!preg_match("/^[0-9]+$/",$value['rank'])) {
  57. $error = true;
  58. if(empty($anchor)) { $anchor = "rank"; }
  59. $ajax_response->assign("rank_return", "innerHTML", "<span class=\"prompt_failed\">排序不能为空且必须为数字<!-- rank error --></span>");
  60. } else {
  61. $ajax_response->assign("rank_return", "innerHTML", "");
  62. }
  63. if($error){
  64. $ajax_response->assign($submit,"value",$submit_value);
  65. $ajax_response->assign($submit,"disabled",false);
  66. $ajax_response->redirect("#".$anchor);
  67. }else{
  68. if ($type == "amend") {
  69. if (!preg_match("/^[0-9]+$/",$sys->get['language_id'])){
  70. $ajax_response->alert("用户ID错误!");
  71. $ajax_response->assign($submit,"value",$submit_value);
  72. $ajax_response->assign($submit,"disabled",false);
  73. } else {
  74. $total_record = func::db_count_record(DB_TABLE_LANGUAGE, "name='".addslashes($value['name'])."' AND id!=".(int)$sys->get['language_id']);
  75. if ($total_record > 0) {
  76. $ajax_response->alert("此语言名称已经存在,请重新填写!");
  77. $ajax_response->assign($submit,"value",$submit_value);
  78. $ajax_response->assign($submit,"disabled",false);
  79. } else {
  80. $total_record = func::db_count_record(DB_TABLE_LANGUAGE, "code='".addslashes($value['code'])."' AND id!=".(int)$sys->get['language_id']);
  81. if ($total_record > 0) {
  82. $ajax_response->alert("此语言代码已经存在,请重新填写!");
  83. $ajax_response->assign($submit,"value",$submit_value);
  84. $ajax_response->assign($submit,"disabled",false);
  85. } else {
  86. $sql = "UPDATE ".DB_TABLE_LANGUAGE." SET
  87. name = '".addslashes($value['name'])."',
  88. brief = '".addslashes($value['brief'])."',
  89. code = '".addslashes($value['code'])."',
  90. icon = '".addslashes($value['icon'])."',
  91. dir = '".addslashes($value['dir'])."',
  92. rank = '".addslashes($value['rank'])."'
  93. WHERE id=".$sys->get['language_id']."";
  94. $result = $db->Execute($sql);
  95. if (!$result) {
  96. $ajax_response->alert($db->ErrorMsg());
  97. $ajax_response->assign($submit,"value",$submit_value);
  98. $ajax_response->assign($submit,"disabled",false);
  99. }else{
  100. $ajax_response->redirect($CONFIGURE['common']['control_admin']."?act=language&pag=".$sys->get['pag']);
  101. }
  102. }
  103. }
  104. }
  105. } else {
  106. $total_record = func::db_count_record(DB_TABLE_LANGUAGE, "name='".addslashes($value['name'])."'");
  107. if ($total_record > 0) {
  108. $ajax_response->alert("此语言名称已经存在,请重新填写!");
  109. $ajax_response->assign($submit,"value",$submit_value);
  110. $ajax_response->assign($submit,"disabled",false);
  111. } else {
  112. $total_record = func::db_count_record(DB_TABLE_LANGUAGE, "code='".addslashes($value['code'])."'");
  113. if ($total_record > 0) {
  114. $ajax_response->alert("此语言代码已经存在,请重新填写!");
  115. $ajax_response->assign($submit,"value",$submit_value);
  116. $ajax_response->assign($submit,"disabled",false);
  117. } else {
  118. $sql = "INSERT INTO ".DB_TABLE_LANGUAGE." SET
  119. name = '".addslashes($value['name'])."',
  120. brief = '".addslashes($value['brief'])."',
  121. code = '".addslashes($value['code'])."',
  122. icon = '".addslashes($value['icon'])."',
  123. dir = '".addslashes($value['dir'])."',
  124. rank = '".addslashes($value['rank'])."'";
  125. $result = $db->Execute($sql);
  126. $last_record = $db->Insert_ID();
  127. if (!$result) {
  128. $ajax_response->alert($db->ErrorMsg());
  129. $ajax_response->assign($submit,"value",$submit_value);
  130. $ajax_response->assign($submit,"disabled",false);
  131. }else{
  132. $ajax_response->redirect($CONFIGURE['common']['control_admin']."?act=language&pag=".$sys->get['pag']);
  133. }
  134. }
  135. }
  136. }
  137. }
  138. return $ajax_response;
  139. }
  140. $bwajax->register(XAJAX_FUNCTION, "submit_form");
  141. //////
  142. if($sys->get['ope'] == "add"){
  143. }elseif($sys->get['ope'] == "amend"){
  144. if (!preg_match("/^[0-9]+$/",$sys->get['language_id'])){
  145. $sys->prompt("failed","非法操作!<!-- language_id error -->");
  146. }else{
  147. $sql = "SELECT *
  148. FROM ".DB_TABLE_LANGUAGE."
  149. WHERE id=".$sys->get['language_id'];
  150. $result = &$db->Execute($sql);
  151. if (!$result) {
  152. echo $db->ErrorMsg();
  153. }else {
  154. if(!$result->EOF){
  155. $language_detail = array(
  156. "id" => $result->fields['id'],
  157. "name" => $result->fields['name'],
  158. "brief" => $result->fields['brief'],
  159. "code" => $result->fields['code'],
  160. "icon" => $result->fields['icon'],
  161. "dir" => $result->fields['dir'],
  162. "rank" => $result->fields['rank'],
  163. );
  164. }
  165. }
  166. }
  167. $t->assign("language_detail",$language_detail);
  168. }elseif($sys->get['ope'] == "del"){
  169. // check the post
  170. if (!preg_match("/^[0-9]+$/",$sys->get['language_id'])){
  171. $sys->prompt("failed","非法操作!<!-- language_id error -->");
  172. }else{
  173. $sql = "DELETE FROM ".DB_TABLE_LANGUAGE."
  174. WHERE id=".$sys->get['language_id'];
  175. $result = $db->Execute($sql);
  176. if (!$result) {
  177. echo $db->ErrorMsg();
  178. }
  179. $sys->prompt("jump",$CONFIGURE['common']['control_admin']."?act=language&pag=".$sys->get['pag']);
  180. }
  181. }else{
  182. $total_record = func::db_count_record(DB_TABLE_LANGUAGE);
  183. $bwpage->set_record_listnum("20");
  184. $bwpage->set_record($total_record);
  185. $bwpage->page($CONFIGURE['common']['control_admin']."?act=language&pag=%s");
  186. $sql = "SELECT *
  187. FROM ".DB_TABLE_LANGUAGE."
  188. ORDER BY rank, id
  189. LIMIT ".$bwpage->record_listfirst.",".$bwpage->record_listnum;
  190. $result = &$db->Execute($sql);
  191. if (!$result) {
  192. echo $db->ErrorMsg();
  193. }else {
  194. while(!$result->EOF){
  195. $language_list[$result->fields['id']] = array(
  196. "id" => $result->fields['id'],
  197. "name" => $result->fields['name'],
  198. "brief" => $result->fields['brief'],
  199. "code" => $result->fields['code'],
  200. "icon" => $result->fields['icon'],
  201. "dir" => $result->fields['dir'],
  202. "rank" => $result->fields['rank'],
  203. );
  204. $result->MoveNext();
  205. }
  206. }
  207. $t->assign(array(
  208. "language_list" => $language_list,
  209. "pagination" => $bwpage->pagination,
  210. ));
  211. }
  212. ?>