0, 'name' => MyLang('home_title'), 'url' => SystemService::DomainUrl(), 'icon' => 'am-icon-home', ], ]; // 根据页面自动添加面包屑导航 $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 5); if(!empty($backtrace)) { // 用户中心 if(!empty($backtrace[3]) && !empty($backtrace[3]['class']) && $backtrace[3]['class'] == 'app\index\controller\Center') { $result[] = [ 'type' => 0, 'name' => MyLang('common_service.navigation.user_center_left_list.center'), 'url' => MyUrl('index/user/index'), ]; // 当前控制器 $user_center_menu = NavigationService::UserCenterLeftList(); if(!empty($user_center_menu)) { // 临时导航 $temp_nav = []; // 当前控制器 $controller = RequestController(); // 是否插件 if($controller == 'plugins') { $url = PluginsHomeUrl(PluginsRequestName()); } else { $url = MyUrl('index/'.$controller.'/index'); } // 是否存在对应 foreach($user_center_menu as $v) { // 一级菜单是否存在 if(!empty($v['url']) && stripos($v['url'], $url) !== false) { $temp_nav = $v; break; } // 子级数据 if(!empty($v['item']) && is_array($v['item'])) { foreach($v['item'] as $vs) { if(!empty($vs['url']) && stripos($vs['url'], $url) !== false) { $temp_nav = $vs; break 2; } } } } if(!empty($temp_nav)) { $result[] = [ 'type' => 0, 'name' => $temp_nav['name'], 'url' => $temp_nav['url'], ]; } } } } // 根据类型调用方法 $temp_result = []; if(!empty($method)) { if(method_exists(__CLASS__, $method)) { $temp_result = self::$method($params); } } return array_merge($result, $temp_result); } /** * 商品搜索 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2023-07-20 * @desc description * @param [array] $params [输入参数] */ public static function GoodsSearch($params = []) { $result = []; // 商品分类 if(!empty($params['cid'])) { // 一级 $where = [ ['id', '=', intval($params['cid'])], ['is_enable', '=', 1], ]; $category = Db::name('GoodsCategory')->where($where)->field('id,pid,name')->find(); if(!empty($category)) { $where = [ ['pid', '=', $category['pid']], ['is_enable', '=', 1], ]; $category_list = Db::name('GoodsCategory')->where($where)->field('id,pid,name')->select()->toArray(); if(!empty($category_list)) { array_unshift($result, [ 'id' => $category['id'], 'name' => $category['name'], 'type' => 1, 'data' => array_map(function($v) { $v['url'] = MyUrl('index/search/index', ['cid'=>$v['id']]); return $v; }, $category_list), ]); // 二级 $where = [ ['id', '=', $category['pid']], ['is_enable', '=', 1], ]; $category = Db::name('GoodsCategory')->where($where)->field('id,pid,name')->find(); if(!empty($category)) { $where = [ ['pid', '=', $category['pid']], ['is_enable', '=', 1], ]; $category_list = Db::name('GoodsCategory')->where($where)->field('id,pid,name')->select()->toArray(); if(!empty($category_list)) { array_unshift($result, [ 'id' => $category['id'], 'name' => $category['name'], 'type' => 1, 'data' => array_map(function($v) { $v['url'] = MyUrl('index/search/index', ['cid'=>$v['id']]); return $v; }, $category_list), ]); // 三级 $where = [ ['id', '=', $category['pid']], ['is_enable', '=', 1], ]; $category = Db::name('GoodsCategory')->where($where)->field('id,pid,name')->find(); if(!empty($category)) { $where = [ ['pid', '=', $category['pid']], ['is_enable', '=', 1], ]; $category_list = Db::name('GoodsCategory')->where($where)->field('id,pid,name')->select()->toArray(); if(!empty($category_list)) { array_unshift($result, [ 'id' => $category['id'], 'name' => $category['name'], 'type' => 1, 'data' => array_map(function($v) { $v['url'] = MyUrl('index/search/index', ['cid'=>$v['id']]); return $v; }, $category_list), ]); } } } } } } } // 品牌、价格、关键字、属性、规格 // 集合名称 $temp_name = []; // 品牌 $bid = empty($params['bid']) ? (empty($params['brand']) ? 0 : intval($params['brand'])) : intval($params['bid']); if(!empty($bid)) { $brand = Db::name('Brand')->where(['id'=>$bid])->value('name'); if(!empty($name)) { $temp_name[] = $name; } } // 价格区间 if(!empty($params['peid'])) { $name = Db::name('ScreeningPrice')->where(['id'=>intval($params['peid'])])->value('name'); if(!empty($name)) { $temp_name[] = $name; } } // 商品产地 if(!empty($params['poid'])) { $name = RegionService::RegionName(intval($params['poid'])); if(!empty($name)) { $temp_name[] = $name; } } // 搜索关键字 if(!empty($params['wd'])) { $temp_name[] = AsciiToStr($params['wd']); } // 属性 if(!empty($params['psid'])) { $temp_name[] = AsciiToStr($params['psid']); } // 规格 if(!empty($params['scid'])) { $temp_name[] = AsciiToStr($params['scid']); } if(!empty($temp_name)) { $result[] = [ 'type' => 0, 'name' => implode(' / ', $temp_name).MyLang('common_service.search.search_breadcrumb_result_last_text'), ]; } return $result; } /** * 商品详情 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2023-07-20 * @desc description * @param [array] $params [输入参数] */ public static function GoodsDetail($params = []) { $result = []; if(!empty($params['goods'])) { // 商品分类 $cids = Db::name('GoodsCategoryJoin')->where(['goods_id'=>$params['goods']['id']])->column('category_id'); if(!empty($cids)) { // 仅一个分类则读取上级分类数据 if(count($cids) == 1) { $where = [ ['id', 'in', GoodsCategoryService::GoodsCategoryParentIds($cids)], ['is_enable', '=', 1], ]; $category = Db::name('GoodsCategory')->where($where)->field('id,name')->select()->toArray(); if(!empty($category)) { foreach($category as $v) { $result[] = [ 'type' => 0, 'name' => $v['name'], 'url' => MyUrl('index/search/index', ['cid'=>$v['id']]), ]; } } } else { $where = [ ['id', 'in', $cids], ['is_enable', '=', 1], ]; $category = Db::name('GoodsCategory')->where($where)->field('id,name')->select()->toArray(); if(!empty($category)) { $category = array_map(function($v) { $v['url'] = MyUrl('index/search/index', ['cid'=>$v['id']]); return $v; }, $category); $result[] = [ 'type' => 1, 'name' => MyLang('goods_category_title'), 'data' => $category, ]; } } } // 当前商品名称 $result[] = [ 'type' => 0, 'name' => $params['goods']['title'], ]; } return $result; } /** * 文章分类 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2023-07-20 * @desc description * @param [array] $params [输入参数] */ public static function ArticleCategory($params = []) { $result = []; if(!empty($params['category_info'])) { // 当前文章分类名称 $result[] = [ 'type' => 0, 'name' => $params['category_info']['name'], ]; } return $result; } /** * 文章详情 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2023-07-20 * @desc description * @param [array] $params [输入参数] */ public static function ArticleDetail($params = []) { $result = []; if(!empty($params['article'])) { // 文章分类 if(!empty($params['article']['article_category_id'])) { $category_name = Db::name('ArticleCategory')->where(['id'=>$params['article']['article_category_id']])->value('name'); if(!empty($category_name)) { $result[] = [ 'type' => 0, 'name' => $category_name, 'url' => MyUrl('index/article/category', ['id'=>$params['article']['article_category_id']]), ]; } } // 当前文章名称 $result[] = [ 'type' => 0, 'name' => $params['article']['title'], ]; } return $result; } } ?>