store_spec.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <?php
  2. /**
  3. * 商品规格管理
  4. *
  5. *
  6. *
  7. ***/
  8. defined('InShopNC') or exit('Access Invalid!');
  9. class store_specControl extends BaseSellerControl {
  10. public function __construct() {
  11. parent::__construct();
  12. }
  13. /**
  14. * 选择分类
  15. */
  16. public function indexOp() {
  17. // 获取商品分类
  18. $model_goodsclass = Model('goods_class');
  19. $gc_list = $model_goodsclass->getGoodsClass($_SESSION['store_id']);
  20. Tpl::output('gc_list', $gc_list);
  21. $this->_profile_menu('spec', 'spec');
  22. Tpl::showpage('store_spec.index');
  23. }
  24. /**
  25. * 添加规格值
  26. */
  27. public function add_specOp(){
  28. $sp_id = intval($_GET['spid']);
  29. $gc_id = intval($_GET['gcid']);
  30. // 验证参数
  31. if ($sp_id <= 0) {
  32. showMessage(L('wrong_argument'));
  33. }
  34. // 分类信息
  35. $gc_info = Model('goods_class')->getGoodsClassInfoById($gc_id);
  36. Tpl::output('gc_info', $gc_info);
  37. // 规格信息
  38. $model_spec = Model('spec');
  39. $sp_info = $model_spec->getSpecInfo($sp_id, 'sp_id,sp_name');
  40. Tpl::output('sp_info', $sp_info);
  41. // 规格值信息
  42. $sp_value_list = $model_spec->getSpecValueList(array('store_id' => $_SESSION['store_id'], 'sp_id' => $sp_id, 'gc_id'=>$gc_id));
  43. Tpl::output('sp_value_list', $sp_value_list);
  44. $this->_profile_menu('spec_add', 'add');
  45. Tpl::showpage('store_spec.add', 'null_layout');
  46. }
  47. /**
  48. * 保存规格值
  49. */
  50. public function save_specOp(){
  51. $sp_id = intval($_POST['sp_id']);
  52. $gc_id = intval($_POST['gc_id']);
  53. if($sp_id <= 0 || $gc_id <=0 || !chksubmit()){
  54. showDialog(L('wrong_argument'));
  55. }
  56. $model_spec = Model('spec');
  57. // 更新原规格值
  58. if (is_array($_POST['sv']['old'])) {
  59. foreach ($_POST['sv']['old'] as $key=> $value) {
  60. if (empty($value['name'])) {
  61. continue;
  62. }
  63. $where = array('sp_value_id' => $key);
  64. $update = array(
  65. 'sp_value_name' => $value['name'],
  66. 'sp_id' => $sp_id,
  67. 'gc_id' => $gc_id,
  68. 'store_id' => $_SESSION['store_id'],
  69. 'sp_value_color' => $value['color'],
  70. 'sp_value_sort' => intval($value['sort'])
  71. );
  72. $model_spec->editSpecValue($update, $where);
  73. }
  74. }
  75. // 添加新规格值
  76. if (is_array($_POST['sv']['new'])) {
  77. $insert_array = array();
  78. foreach ($_POST['sv']['new'] as $value) {
  79. if (empty($value['name'])) {
  80. continue;
  81. }
  82. $tmp_insert = array(
  83. 'sp_value_name' => $value['name'],
  84. 'sp_id' => $sp_id,
  85. 'gc_id' => $gc_id,
  86. 'store_id' => $_SESSION['store_id'],
  87. 'sp_value_color' => $value['color'],
  88. 'sp_value_sort' => intval($value['sort'])
  89. );
  90. $insert_array[] = $tmp_insert;
  91. }
  92. $model_spec->addSpecValueALL($insert_array);
  93. }
  94. showDialog(L('nc_common_op_succ'), 'reload', 'succ');
  95. }
  96. /**
  97. * ajax删除规格值
  98. */
  99. public function ajax_delspecOp(){
  100. $sp_value_id = intval($_GET['id']);
  101. if ($sp_value_id <= 0) {
  102. echo 'false'; exit();
  103. }
  104. $rs = Model('spec')->delSpecValue(array('sp_value_id' => $sp_value_id, 'store_id' => $_SESSION['store_id']));
  105. if ($rs) {
  106. echo 'true'; exit();
  107. } else {
  108. echo 'false'; exit();
  109. }
  110. }
  111. /**
  112. * AJAX获取商品分类
  113. */
  114. public function ajax_classOp() {
  115. $id = intval($_GET['id']);
  116. $deep = intval($_GET['deep']);
  117. if ($id <= 0 || $deep <=0 || $deep >= 4) {
  118. echo 'false'; exit();
  119. }
  120. $deep += 1;
  121. $model_goodsclass = Model('goods_class');
  122. // 验证分类是否存在
  123. $gc_info = $model_goodsclass->getGoodsClassInfoById($id);
  124. if (empty($gc_info)) {
  125. echo 'false'; exit();
  126. }
  127. // 读取商品分类
  128. if ($deep != 4) {
  129. $gc_list = $model_goodsclass->getGoodsClass($_SESSION['store_id'], $id, $deep);
  130. }
  131. // 分类不为空输出分类信息
  132. if (!empty($gc_list)) {
  133. $data = array('type' => 'class', 'data' => $gc_list, 'deep' => $deep);
  134. } else {
  135. // 查询类型
  136. $model_type = Model('type');
  137. $spec_list = $model_type->getSpecByType(array('type_id' => $gc_info['type_id']), 'type_id, spec.*');
  138. $data = array('type' => 'spec', 'data' => $spec_list, 'gcid' => $id, 'deep' => $deep);
  139. }
  140. // 转码
  141. if (strtoupper(CHARSET) == 'GBK') {
  142. $data = Language::getUTF8($data);
  143. }
  144. echo json_encode($data);
  145. exit();
  146. }
  147. /**
  148. * 用户中心右边,小导航
  149. *
  150. * @param string $menu_type 导航类型
  151. * @param string $menu_key 当前导航的menu_key
  152. * @return
  153. */
  154. private function _profile_menu($menu_type, $menu_key) {
  155. $menu_array = array();
  156. switch ($menu_type) {
  157. case 'spec':
  158. $menu_array = array(
  159. array('menu_key' => 'spec', 'menu_name' => L('nc_member_path_store_spec'), 'menu_url' => 'index.php?act=store_spec')
  160. );
  161. break;
  162. }
  163. Tpl::output('member_menu',$menu_array);
  164. Tpl::output('menu_key',$menu_key);
  165. }
  166. }