domain.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <?php
  2. /**
  3. * 二级域名
  4. *
  5. *
  6. *
  7. ***/
  8. defined('InShopNC') or exit('Access Invalid!');
  9. class domainControl extends SystemControl{
  10. public function __construct(){
  11. parent::__construct();
  12. Language::read('store');
  13. }
  14. /**
  15. * 二级域名设置
  16. *
  17. * @param
  18. * @return
  19. */
  20. public function store_domain_settingOp(){
  21. /**
  22. * 读取语言包
  23. */
  24. $lang = Language::getLangContent();
  25. /**
  26. * 实例化模型
  27. */
  28. $model_setting = Model('setting');
  29. /**
  30. * 保存信息
  31. */
  32. if (chksubmit()){
  33. $update_array = array();
  34. $update_array['enabled_subdomain'] = intval($_POST['enabled_subdomain']);
  35. $update_array['subdomain_reserved'] = trim($_POST['subdomain_reserved']);
  36. $update_array['subdomain_length'] = trim($_POST['subdomain_length']);
  37. $update_array['subdomain_edit'] = intval($_POST['subdomain_edit']);
  38. $update_array['subdomain_times'] = intval($_POST['subdomain_times']);
  39. $subdomain_length = explode('-',$update_array['subdomain_length']);
  40. $subdomain_length[0] = intval($subdomain_length[0]);
  41. $subdomain_length[1] = intval($subdomain_length[1]);
  42. if ($subdomain_length[0] < 1 || $subdomain_length[0] >= $subdomain_length[1]){//域名长度
  43. $update_array['subdomain_length'] = '3-12';
  44. }
  45. $result = $model_setting->updateSetting($update_array);
  46. if ($result === true){
  47. $this->log(L('nc_edit,nc_domain_manage'),1);
  48. showMessage($lang['nc_common_save_succ']);
  49. }else {
  50. showMessage($lang['nc_common_save_fail']);
  51. }
  52. }
  53. $list_setting = $model_setting->getListSetting();
  54. Tpl::output('list_setting',$list_setting);
  55. Tpl::showpage('store_domain.setting');
  56. }
  57. /**
  58. * 店铺二级域名列表
  59. */
  60. public function store_domain_listOp(){
  61. $lang = Language::getLangContent();
  62. $condition = array();
  63. $condition['store_state'] = array('neq', 2);
  64. if(trim($_GET['store_name']) != ''){
  65. $condition['store_name'] = array('like', '%'.trim($_GET['store_name']).'%');
  66. }
  67. if(trim($_GET['store_domain']) != ''){
  68. $condition['store_domain'] = array(array('neq', ''), array('like', '%'.trim($_GET['store_domain']).'%'), 'and');
  69. }else{
  70. $condition['store_domain'] = array('neq', '');
  71. }
  72. $model_store = Model('store');
  73. $store_list = $model_store->where($condition)->order('store_sort asc')->page(10)->select();
  74. if(!empty($store_list)){
  75. foreach ($store_list as $k => $v){
  76. $store_list[$k]['state'] = ($v['store_state'] == 1)?$lang['open']:$lang['close'];
  77. }
  78. }
  79. Tpl::output('store_list',$store_list);
  80. Tpl::output('page',$model_store->showpage('2'));
  81. Tpl::showpage('store_domain.index');
  82. }
  83. /**
  84. * 二级域名编辑
  85. */
  86. public function store_domain_editOp(){
  87. /**
  88. * 取店铺信息
  89. */
  90. $model_store = Model('store');
  91. $store_array = $model_store->getStoreInfoByID(intval($_GET['store_id']));
  92. // $setting_config = $GLOBALS['setting_config'];
  93. $config_subdomain_times = C('subdomain_times');
  94. $config_subdomain_length = C('subdomain_length');
  95. $config_subdomain_reserved = C('subdomain_reserved');
  96. $subdomain_times = intval($config_subdomain_times);//系统设置二级域名可修改次数
  97. $subdomain_length = explode('-',$config_subdomain_length);
  98. $subdomain_length[0] = intval($subdomain_length[0]);
  99. $subdomain_length[1] = intval($subdomain_length[1]);
  100. if ($subdomain_length[0] < 1 || $subdomain_length[0] >= $subdomain_length[1]){//域名长度
  101. $subdomain_length[0] = 3;
  102. $subdomain_length[1] = 12;
  103. }
  104. Tpl::output('subdomain_length',$subdomain_length);
  105. if (chksubmit()){
  106. $store_domain_times = intval($_POST['store_domain_times']);//店铺已修改次数
  107. $store_domain = trim($_POST['store_domain']);
  108. $store_id = intval($_POST['store_id']);
  109. $store_domain = strtolower($store_domain);
  110. $param = array();
  111. $param['store_domain_times'] = $store_domain_times;
  112. $param['store_domain'] = '';
  113. if (!empty($store_domain)){
  114. $store_domain_count = strlen($store_domain);
  115. if ($store_domain_count < $subdomain_length[0] || $store_domain_count > $subdomain_length[1]){
  116. showMessage(Language::get('store_domain_length_error').': '.$config_subdomain_length);
  117. }
  118. if (!preg_match('/^[\w-]+$/i',$store_domain)){//判断域名是否正确
  119. showMessage(Language::get('store_domain_invalid'));
  120. }
  121. $store_info = $model_store->getStoreInfo(array(
  122. 'store_domain'=>$store_domain
  123. ));
  124. //二级域名存在,则提示错误
  125. if (!empty($store_info) && ($store_id != $store_info['store_id'])){
  126. showMessage(Language::get('store_domain_exists'));
  127. }
  128. //判断二级域名是否为系统禁止
  129. $subdomain_reserved = @explode(',',$config_subdomain_reserved);
  130. if(!empty($subdomain_reserved) && is_array($subdomain_reserved)){
  131. if (in_array($store_domain,$subdomain_reserved)){
  132. showMessage(Language::get('store_domain_sys'));
  133. }
  134. }
  135. $param['store_domain'] = $store_domain;//所有验证通过后更新
  136. }
  137. $model_store->editStore($param, array('store_id'=> $store_id));
  138. $this->log(L('nc_edit,nc_domain_manage').'['.$store_domain.']',1);
  139. showMessage(Language::get('nc_common_save_succ'),'index.php?act=domain&op=store_domain_list');//保存成功
  140. }
  141. Tpl::output('store_array',$store_array);
  142. Tpl::showpage('store_domain.edit');
  143. }
  144. }