nav_type = empty($this->data_request['nav_type']) ? 'base' : $this->data_request['nav_type']; $this->view_type = empty($this->data_request['view_type']) ? 'index' : $this->data_request['view_type']; // 仅网站设置页面存在多个子页面 if($this->nav_type != 'siteset') { $this->view_type = 'index'; } } /** * 配置列表 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2020-11-25 * @desc description */ public function Index() { // 公共数据 $assign = $this->CurrentViewInit(); // 配置信息 $data = ConfigService::ConfigList(); $assign['data'] = $data; // 数据处理 switch($this->nav_type) { // 站点类型 case 'sitetype' : // 地址处理 if(!empty($data['common_self_extraction_address']) && !empty($data['common_self_extraction_address']['value'])) { $address = ConfigService::SiteTypeExtractionAddressList($data['common_self_extraction_address']['value']); $assign['sitetype_address_list'] = $address['data']; } // 加载地图api $assign['is_load_map_api'] = 1; break; // 网站设置 case 'siteset' : // 获取商品一级分类 $where = [ ['pid', '=', 0], ['is_home_recommended', '=', 1], ['is_enable', '=', 1], ]; $category = GoodsCategoryService::GoodsCategoryList(['where'=>$where]); if(!empty($category)) { // 关键字 $floor_keywords = (empty($data['home_index_floor_top_right_keywords']) || empty($data['home_index_floor_top_right_keywords']['value'])) ? [] : json_decode($data['home_index_floor_top_right_keywords']['value'], true); // 分类 $floor_category = (empty($data['home_index_floor_left_top_category']) || empty($data['home_index_floor_left_top_category']['value'])) ? [] : json_decode($data['home_index_floor_left_top_category']['value'], true); foreach($category as &$c) { // 获取二级分类 $where = [ ['pid', '=', $c['id']], ['is_enable', '=', 1], ]; $c['items'] = GoodsCategoryService::GoodsCategoryList(['where'=>$where]); // 配置的关键字 $c['config_keywords'] = array_key_exists($c['id'], $floor_keywords) ? $floor_keywords[$c['id']] : ''; // 配置左侧分类 $c['config_category_ids'] = array_key_exists($c['id'], $floor_category) ? explode(',', $floor_category[$c['id']]) : []; } } $assign['goods_category_list'] = $category; // 楼层自定义商品 if(!empty($data['home_index_floor_manual_mode_goods']) && !empty($data['home_index_floor_manual_mode_goods']['value'])) { $ret = SiteService::FloorManualModeGoodsViewHandle(json_decode($data['home_index_floor_manual_mode_goods']['value'], true)); $assign['floor_manual_mode_goods_list'] = $ret['data']; } // 支付方式 $assign['payment_list'] = PaymentService::PaymentList(['is_enable'=>1, 'is_open_user'=>1]); break; } // 编辑器文件存放地址 $assign['editor_path_type'] = ResourcesService::EditorPathTypeValue('common'); // 数据赋值 MyViewAssign($assign); // 视图 $view = 'site/'.$this->nav_type.'/'.$this->view_type; return MyView($view); } /** * 公共视图 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2020-11-21 * @desc description */ public function CurrentViewInit() { // 模板数据 $assign = [ // 主/子导航 'nav_type' => $this->nav_type, 'view_type' => $this->view_type, // 时区 'site_timezone_list' => MyLang('site_timezone_list'), // 平台 'common_platform_type' => MyLang('common_platform_type'), // 关闭开启 'common_close_open_list' => MyLang('common_close_open_list'), // 登录方式 'common_login_type_list' => MyLang('common_login_type_list'), // 用户注册类型列表 'common_user_reg_type_list' => MyLang('common_user_reg_type_list'), // 图片验证码规则 'site_images_verify_rules_list' => MyLang('site_images_verify_rules_list'), // 热门搜索关键字 'common_search_keywords_type_list' => MyLang('common_search_keywords_type_list'), // 是否 'common_is_text_list' => MyLang('common_is_text_list'), // 站点类型 'common_site_type_list' => MyLang('common_site_type_list'), // 扣除库存规则 'common_deduction_inventory_rules_list' => MyLang('common_deduction_inventory_rules_list'), // 增加销量规则 'common_sales_count_inc_rules_list' => MyLang('common_sales_count_inc_rules_list'), // 首页商品排序规则 'goods_order_by_type_list' => MyLang('goods_order_by_type_list'), 'goods_order_by_rule_list' => MyLang('goods_order_by_rule_list'), // 首页楼层数据类型 'common_site_floor_data_type_list' => MyLang('common_site_floor_data_type_list'), // 搜索参数类型 'common_goods_parameters_type_list' => MyLang('common_goods_parameters_type_list'), // 主导航 'second_nav_list' => MyLang('site.second_nav_list'), // 网站设置导航 'siteset_nav_list' => MyLang('site.siteset_nav_list'), // 多语言 'common_multilingual_list' => MyLang('common_multilingual_list'), ]; return $assign; } /** * 配置数据保存 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2020-11-25 * @desc description */ public function Save() { // 参数 $params = $_POST; // 字段不存在赋空值 $field_list = []; // 导航类型 switch($this->nav_type) { // 用户注册 case 'register' : $field_list[] = 'home_user_reg_type'; $field_list[] = 'home_site_user_register_bg_images'; break; // 用户登录 case 'login' : $field_list[] = 'home_user_login_type'; $field_list[] = 'home_site_user_login_ad1_images'; $field_list[] = 'home_site_user_login_ad2_images'; $field_list[] = 'home_site_user_login_ad3_images'; break; // 密码找回 case 'forgetpwd' : $field_list[] = 'home_site_user_forgetpwd_ad1_images'; $field_list[] = 'home_site_user_forgetpwd_ad2_images'; $field_list[] = 'home_site_user_forgetpwd_ad3_images'; break; // 图片验证码 case 'verify' : $field_list[] = 'common_images_verify_rules'; break; // 站点类型 case 'sitetype' : // 自提地址处理 if(!empty($params['common_self_extraction_address'])) { if(!is_array($params['common_self_extraction_address'])) { $address = json_decode($params['common_self_extraction_address'], true); } else { $address = $params['common_self_extraction_address']; } foreach($address as $k=>$v) { $address[$k]['id'] = $k; $address[$k]['logo'] = empty($v['logo']) ? '' : ResourcesService::AttachmentPathHandle($v['logo']); } $params['common_self_extraction_address'] = json_encode($address, JSON_UNESCAPED_UNICODE); } break; // 网站设置 case 'siteset' : switch($this->view_type) { // 首页 case 'index' : // 楼层关键字 $params['home_index_floor_top_right_keywords'] = empty($params['home_index_floor_top_right_keywords']) ? '' : json_encode($params['home_index_floor_top_right_keywords'], JSON_UNESCAPED_UNICODE); // 楼层自定义商品 $params['home_index_floor_manual_mode_goods'] = empty($params['home_index_floor_manual_mode_goods']) ? '' : json_encode($params['home_index_floor_manual_mode_goods'], JSON_UNESCAPED_UNICODE); // 楼层左侧分类 $params['home_index_floor_left_top_category'] = empty($params['home_index_floor_left_top_category']) ? '' : json_encode($params['home_index_floor_left_top_category'], JSON_UNESCAPED_UNICODE); break; // 搜索 case 'search' : $field_list[] = 'home_search_params_type'; break; // 订单 case 'order' : $params['common_default_payment'] = empty($params['common_default_payment']) ? '' : json_encode($params['common_default_payment'], JSON_UNESCAPED_UNICODE); break; // 扩展 case 'extends' : $field_list[] = 'common_multilingual_choose_list'; break; } break; // 缓存 case 'cache' : // session是否使用缓存 // 数据是否使用缓存 if((isset($params['common_session_is_use_cache']) && $params['common_session_is_use_cache'] == 1) || (isset($params['common_data_is_use_cache']) && $params['common_data_is_use_cache'] == 1)) { // 连接测试 $ret = SiteService::RedisCheckConnectPing($params['common_cache_data_redis_host'], $params['common_cache_data_redis_port'], $params['common_cache_data_redis_password']); if($ret['code'] != 0) { return $ret; } } break; } // 基础配置 $ret = ConfigService::ConfigSave(ConfigService::FieldsEmptyDataHandle($params, $field_list)); // 清除缓存 if($ret['code'] == 0) { switch($this->nav_type) { // 登录 case 'login' : MyCache(SystemService::CacheKey('shopxo.cache_user_login_left_key'), null); // 密码找回 case 'forgetpwd' : MyCache(SystemService::CacheKey('shopxo.cache_user_forgetpwd_left_key'), null); break; } } return ApiService::ApiDataReturn($ret); } /** * 商品搜索 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2020-11-25 * @desc description */ public function GoodsSearch() { // 搜索数据 $ret = SiteService::GoodsSearchList($this->data_request); if($ret['code'] == 0) { MyViewAssign('data', $ret['data']['data']); $ret['data']['data'] = MyView('site/public/goods_search'); } return ApiService::ApiDataReturn($ret); } } ?>