| 
									
										
										
										
											2022-10-08 17:31:39 +08:00
										 |  |  |  | <?php | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace app\controller\manager; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-14 14:00:42 +08:00
										 |  |  |  | use app\model\{CasesModel, Category, Article, Block, DownloadModel, Log, History, Honour, PositionModel, ProductModel}; | 
					
						
							| 
									
										
										
										
											2022-10-08 17:31:39 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | class Content extends Base | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     //文章
 | 
					
						
							|  |  |  |  |     public function article() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $categoryId = input('param.category_id'); | 
					
						
							|  |  |  |  |         $keyword    = input('param.keyword'); | 
					
						
							|  |  |  |  |         $param      = input('param.param/a', []); | 
					
						
							|  |  |  |  |         $category   = Category::getById($categoryId); | 
					
						
							|  |  |  |  |         if (empty($category)) { | 
					
						
							|  |  |  |  |             return $this->error('无此栏目'); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-06 00:15:50 +08:00
										 |  |  |  |         $isPrev = input('is_prev', ''); | 
					
						
							| 
									
										
										
										
											2022-10-08 17:31:39 +08:00
										 |  |  |  |         $order = ['top' => 'desc', 'sort' => 'desc']; | 
					
						
							| 
									
										
										
										
											2022-11-06 00:15:50 +08:00
										 |  |  |  |         $list = Article::getList($categoryId, 20, $keyword, $param, -1, $order, true, $isPrev); | 
					
						
							| 
									
										
										
										
											2022-10-08 17:31:39 +08:00
										 |  |  |  |         $list = Article::convertRecommendOther([$categoryId], $list, true); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         $this->data['list']          = $list; | 
					
						
							|  |  |  |  |         $this->data['category']      = $category; | 
					
						
							|  |  |  |  |         $this->data['keyword']       = $keyword; | 
					
						
							|  |  |  |  |         $this->data['param']         = $param; | 
					
						
							|  |  |  |  |         $this->data['attributeList'] = Article::getAttributeList([$categoryId]); | 
					
						
							|  |  |  |  |         return $this->view(); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     //做页面跳转
 | 
					
						
							|  |  |  |  |     public function index() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $items = Category::getList(); | 
					
						
							|  |  |  |  |         if (!empty($items)) { | 
					
						
							|  |  |  |  |             $items = Category::getCates($items); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         if (!empty($items)) { | 
					
						
							|  |  |  |  |             $first = array_shift($items); | 
					
						
							|  |  |  |  |             if (isset($first['children'])) { | 
					
						
							|  |  |  |  |                 $childrenFirst = array_shift($first['children']); | 
					
						
							|  |  |  |  |                 $url           = url('manager.content/'.$childrenFirst['manager'], ['category_id' => $childrenFirst['id']]); | 
					
						
							|  |  |  |  |             } else { | 
					
						
							|  |  |  |  |                 $url = url('manager.content/'.$first['manager'], ['category_id' => $first['id']]); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (!empty($url)) { | 
					
						
							|  |  |  |  |                 return $this->redirect($url); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } else { | 
					
						
							|  |  |  |  |             return $this->redirect(url('manager.category/add')); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     //单页
 | 
					
						
							|  |  |  |  |     public function page() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         if ($this->request->isAjax()) { | 
					
						
							|  |  |  |  |             $blocks     = input('post.block/a');    //所有文本信息
 | 
					
						
							|  |  |  |  |             $texts      = input('post.text/a');      //所有富文本信息
 | 
					
						
							|  |  |  |  |             $codes      = input('post.code/a');      //所有代码信息
 | 
					
						
							|  |  |  |  |             $categoryId = input('post.category_id/d'); | 
					
						
							|  |  |  |  |             $category   = Category::getById($categoryId); | 
					
						
							|  |  |  |  |             unset($_POST['block']); | 
					
						
							|  |  |  |  |             unset($_POST['text']); | 
					
						
							|  |  |  |  |             unset($_POST['file']); | 
					
						
							|  |  |  |  |             unset($_POST['code']); | 
					
						
							|  |  |  |  |             $imgs     = [];     //图片信息
 | 
					
						
							|  |  |  |  |             $videos   = [];   //视频信息
 | 
					
						
							|  |  |  |  |             $groups   = [];   //组图信息
 | 
					
						
							|  |  |  |  |             $groupIds = input('post.groupIds/a', []); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             $videoGroup   = [];   //视频组信息
 | 
					
						
							|  |  |  |  |             $videoGroupIds = input('post.videoGroupIds/a', []); | 
					
						
							|  |  |  |  |             foreach ($_POST as $key => $val) { | 
					
						
							|  |  |  |  |                 if (strpos($key, '_') !== false) { | 
					
						
							|  |  |  |  |                     $keys = explode('_', $key); | 
					
						
							|  |  |  |  |                     if ($keys[1] == 'img') {  //图片
 | 
					
						
							|  |  |  |  |                         $imgs[$keys[2]] = $val; | 
					
						
							|  |  |  |  |                     } elseif ($keys[1] == 'video') {   //视频
 | 
					
						
							|  |  |  |  |                         $videos[$keys[2]][$keys[0]] = $val; | 
					
						
							|  |  |  |  |                     } elseif ($keys[1] == 'videos') {   //视频组
 | 
					
						
							|  |  |  |  |                         $videoGroup[$keys[2]] = $val; | 
					
						
							|  |  |  |  |                     } elseif ($keys[1] == 'group') {    //组图
 | 
					
						
							|  |  |  |  |                         $groups[$keys[2]] = $val; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             $data = []; | 
					
						
							|  |  |  |  |             if (!empty($blocks)) { | 
					
						
							|  |  |  |  |                 foreach ($blocks as $key => $block) { | 
					
						
							|  |  |  |  |                     $data[] = [ | 
					
						
							|  |  |  |  |                         'id'    => $key, | 
					
						
							|  |  |  |  |                         'value' => $block | 
					
						
							|  |  |  |  |                     ]; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (!empty($texts)) { | 
					
						
							|  |  |  |  |                 foreach ($texts as $key => $text) { | 
					
						
							|  |  |  |  |                     $data[] = [ | 
					
						
							|  |  |  |  |                         'id'    => $key, | 
					
						
							|  |  |  |  |                         'value' => $text | 
					
						
							|  |  |  |  |                     ]; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (!empty($codes)) { | 
					
						
							|  |  |  |  |                 foreach ($codes as $key => $code) { | 
					
						
							|  |  |  |  |                     $data[] = [ | 
					
						
							|  |  |  |  |                         'id'    => $key, | 
					
						
							|  |  |  |  |                         'value' => $code | 
					
						
							|  |  |  |  |                     ]; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (!empty($imgs)) { | 
					
						
							|  |  |  |  |                 foreach ($imgs as $key => $img) { | 
					
						
							|  |  |  |  |                     $data[] = [ | 
					
						
							|  |  |  |  |                         'id'    => $key, | 
					
						
							|  |  |  |  |                         'value' => $img | 
					
						
							|  |  |  |  |                     ]; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (!empty($videos)) { | 
					
						
							|  |  |  |  |                 foreach ($videos as $key => $video) { | 
					
						
							|  |  |  |  |                     $data[] = [ | 
					
						
							|  |  |  |  |                         'id'    => $key, | 
					
						
							|  |  |  |  |                         'img'   => $video['img'], | 
					
						
							|  |  |  |  |                         'value' => $video['video'] | 
					
						
							|  |  |  |  |                     ]; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (!empty($groupIds)) { | 
					
						
							|  |  |  |  |                 foreach ($groupIds as $key => $groupId) { | 
					
						
							|  |  |  |  |                     $group  = $groups[$groupId] ?? []; | 
					
						
							|  |  |  |  |                     $data[] = [ | 
					
						
							|  |  |  |  |                         'id'    => $groupId, | 
					
						
							|  |  |  |  |                         'value' => json_encode($group) | 
					
						
							|  |  |  |  |                     ]; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (!empty($videoGroupIds)) { | 
					
						
							|  |  |  |  |                 foreach ($videoGroupIds as $key => $groupId) { | 
					
						
							|  |  |  |  |                     $group  = $videoGroup[$groupId] ?? []; | 
					
						
							|  |  |  |  |                     $data[] = [ | 
					
						
							|  |  |  |  |                         'id'    => $groupId, | 
					
						
							|  |  |  |  |                         'value' => json_encode($group) | 
					
						
							|  |  |  |  |                     ]; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             $block = new Block; | 
					
						
							|  |  |  |  |             $block->saveAll($data); | 
					
						
							|  |  |  |  |             Log::write('content', 'page', "单页编辑,栏目ID:{$category['id']} ,标题:{$category['title']}"); | 
					
						
							|  |  |  |  |             return $this->json(); | 
					
						
							|  |  |  |  |         } else { | 
					
						
							|  |  |  |  |             $categoryId = input('param.category_id'); | 
					
						
							|  |  |  |  |             $category   = Category::getById($categoryId); | 
					
						
							|  |  |  |  |             /* | 
					
						
							|  |  |  |  |              * 单页栏目允许父级栏目配置,不自动跳转到第一个子栏目 | 
					
						
							|  |  |  |  |             $children   = Category::getChildrenByParentId($categoryId); | 
					
						
							|  |  |  |  |             if(!empty($children)){ | 
					
						
							|  |  |  |  |                 $child = Category::getChildrenByParentId($children[0]['id']); | 
					
						
							|  |  |  |  |                 if(empty($child)){ | 
					
						
							|  |  |  |  |                     $category = $children[0]; | 
					
						
							|  |  |  |  |                 }else{ | 
					
						
							|  |  |  |  |                     $category = $child[0]; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |              */ | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (empty($category)) { | 
					
						
							|  |  |  |  |                 return $this->redirect(url('manager.content/index')); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             $blocks                   = Block::getByCategoryId($category['id']); | 
					
						
							|  |  |  |  |             $this->data['categoryId'] = $categoryId; | 
					
						
							|  |  |  |  |             $this->data['category']   = $category; | 
					
						
							|  |  |  |  |             $this->data['blocks']     = $blocks; | 
					
						
							|  |  |  |  |             $this->data['groupId']    = session('auth.groupId'); | 
					
						
							|  |  |  |  |             $this->data['types']      = Block::getTypes(); | 
					
						
							|  |  |  |  |             return $this->view(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     // 发展历程
 | 
					
						
							|  |  |  |  |     public function history() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $categoryId = input('param.category_id/d', 0); | 
					
						
							|  |  |  |  |         $category   = Category::getById($categoryId); | 
					
						
							|  |  |  |  |         if (empty($category)) { | 
					
						
							|  |  |  |  |             return $this->redirect(url('manager.content/index')); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         $this->data['categoryId'] = $categoryId; | 
					
						
							|  |  |  |  |         $this->data['category']   = $category; | 
					
						
							|  |  |  |  |         $this->data['items']      = History::getPaginateList($categoryId, 20, false); | 
					
						
							|  |  |  |  |         return $this->view(); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     // 荣誉资质
 | 
					
						
							|  |  |  |  |     public function honour() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $categoryId = input('param.category_id/d', 0); | 
					
						
							|  |  |  |  |         $category   = Category::getById($categoryId); | 
					
						
							|  |  |  |  |         if (empty($category)) { | 
					
						
							|  |  |  |  |             return $this->redirect(url('manager.content/index')); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         $this->data['categoryId'] = $categoryId; | 
					
						
							|  |  |  |  |         $this->data['category']   = $category; | 
					
						
							|  |  |  |  |         $this->data['items']      = Honour::getPaginateList($categoryId, 20, false); | 
					
						
							|  |  |  |  |         return $this->view(); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     // 产品
 | 
					
						
							|  |  |  |  |     public function product() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $categoryId = input('param.category_id/d', 0); | 
					
						
							|  |  |  |  |         $category   = Category::getById($categoryId); | 
					
						
							|  |  |  |  |         if (empty($category)) { | 
					
						
							|  |  |  |  |             return $this->redirect(url('manager.content/index')); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         $this->data['categoryId'] = $categoryId; | 
					
						
							|  |  |  |  |         $this->data['category']   = $category; | 
					
						
							|  |  |  |  |         $this->data['items']      = ProductModel::getPaginateList($categoryId, 20, false); | 
					
						
							|  |  |  |  |         return $this->view(); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     // 下载中心
 | 
					
						
							|  |  |  |  |     public function download() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $categoryId = input('param.category_id/d', 0); | 
					
						
							|  |  |  |  |         $category   = Category::getById($categoryId); | 
					
						
							|  |  |  |  |         if (empty($category)) { | 
					
						
							|  |  |  |  |             return $this->redirect(url('manager.content/index')); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         $this->data['categoryId'] = $categoryId; | 
					
						
							|  |  |  |  |         $this->data['category']   = $category; | 
					
						
							|  |  |  |  |         $this->data['items']      = DownloadModel::getPaginateList($categoryId, 20, false); | 
					
						
							|  |  |  |  |         return $this->view(); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     // 招聘职位
 | 
					
						
							|  |  |  |  |     public function position() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $categoryId = input('param.category_id/d', 0); | 
					
						
							|  |  |  |  |         $category   = Category::getById($categoryId); | 
					
						
							|  |  |  |  |         if (empty($category)) { | 
					
						
							|  |  |  |  |             return $this->redirect(url('manager.content/index')); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         $this->data['categoryId'] = $categoryId; | 
					
						
							|  |  |  |  |         $this->data['category']   = $category; | 
					
						
							|  |  |  |  |         $this->data['items']      = PositionModel::getPaginateList($categoryId, 20, false); | 
					
						
							|  |  |  |  |         return $this->view(); | 
					
						
							|  |  |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-10-14 14:00:42 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |     // 案例
 | 
					
						
							|  |  |  |  |     public function cases() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         $categoryId = input('param.category_id/d', 0); | 
					
						
							|  |  |  |  |         $category   = Category::getById($categoryId); | 
					
						
							|  |  |  |  |         if (empty($category)) { | 
					
						
							|  |  |  |  |             return $this->redirect(url('manager.content/index')); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         $this->data['categoryId'] = $categoryId; | 
					
						
							|  |  |  |  |         $this->data['category']   = $category; | 
					
						
							|  |  |  |  |         $this->data['items']      = CasesModel::getPaginateList($categoryId, 20, false); | 
					
						
							|  |  |  |  |         return $this->view(); | 
					
						
							|  |  |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-10-08 17:31:39 +08:00
										 |  |  |  | } |