From 2607864b7d27d93bd4173dafc79bad3f4fdaf33f Mon Sep 17 00:00:00 2001 From: zwesy Date: Thu, 3 Dec 2020 18:22:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=EF=BC=9A=E8=90=A5=E9=94=80?= =?UTF-8?q?=E7=BD=91=E7=BB=9C-=E5=8D=95=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/Article.php | 1 + app/controller/Page.php | 22 +++++++++++++++++ app/model/Article.php | 24 +++++++++++++++++++ app/model/Category.php | 4 +++- view/page/marketing.html | 48 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 view/page/marketing.html diff --git a/app/controller/Article.php b/app/controller/Article.php index 4235f55..257ec21 100644 --- a/app/controller/Article.php +++ b/app/controller/Article.php @@ -74,6 +74,7 @@ class Article extends Base $this->assignNews($topCategory, $category); break; default : + $this->data['items'] = MArticle::getListPageByCategory($category['id'], $category['number'] ? $category['number'] : 20); } } diff --git a/app/controller/Page.php b/app/controller/Page.php index 4cfb14f..8a6ff3a 100644 --- a/app/controller/Page.php +++ b/app/controller/Page.php @@ -44,6 +44,9 @@ class Page extends Base case 'service' : $this->assignService($childCategory); break; + case 'marketing' : + $this->assignMarketing($childCategory); + break; default : } } @@ -100,4 +103,23 @@ class Page extends Base $this->data['blocks'] = $blocks; } + + // 营销网络 + private function assignMarketing($childCategory) + { + $blocks = []; + $blockCateIds = $this->getBlockCateIds($childCategory); + $blockList = Block::getByCategoryIds($blockCateIds); + $marketingChildrenFlip = array_flip(Category::$CIdList['marketing_children']); + foreach ($childCategory as $cate) { + $blocks[$marketingChildrenFlip[$cate['id']]] = $blockList[$cate['id']] ?? []; + } + $achievementCate = Category::getById(Category::$CIdList['achievement_manage']); + $achievementList = []; + if ($achievementCate) { + $achievementList = Article::getLatestByCategory($achievementCate['id'], $achievementCate['number'] ? $achievementCate['number'] : 10); + } + $this->data['blocks'] = $blocks; + $this->data['achievementList'] = $achievementList; + } } \ No newline at end of file diff --git a/app/model/Article.php b/app/model/Article.php index 194eae1..bc36d01 100644 --- a/app/model/Article.php +++ b/app/model/Article.php @@ -228,4 +228,28 @@ class Article extends Base ->select() ->toArray(); } + + //根据栏目IDs获取文章分页列表 + public static function getListPageByCategories($categoryIds, $per = 20, $keyword = '', $order = []) + { + $param = []; + $where = [ + ['category_id', 'in', $categoryIds], + ['status', '=', 1], + ]; + if($keyword!=''){ + $where[] = ['title', 'like', '%'.$keyword.'%']; + $param['keyword'] = $keyword; + } + $paginate = [ + 'list_rows' => $per, + 'query' => $param + ]; + if(empty($order)) { + $order = ['create_time'=>'desc']; + } + return self::where($where) + ->order($order) + ->paginate($paginate,false); + } } diff --git a/app/model/Category.php b/app/model/Category.php index cef1d5e..62348c1 100644 --- a/app/model/Category.php +++ b/app/model/Category.php @@ -23,10 +23,12 @@ class Category extends Base 'in_progress' => 13, // 售中服务 'after' => 14, // 售后服务 ], + 'marketing' => 15, // 营销网络(主) 'marketing_children' => [ - 'marketing_network' => 16, // 网络营销 + 'network' => 16, // 营销网络 'achievement' => 17, // 主要业绩 ], + 'achievement_manage' => 30, // 主要业绩管理 'news' => 18, //新闻(主) 'news_children' => [ 'enterprise' => 20, // 企业新闻 diff --git a/view/page/marketing.html b/view/page/marketing.html new file mode 100644 index 0000000..c74e756 --- /dev/null +++ b/view/page/marketing.html @@ -0,0 +1,48 @@ +{layout name="layout"} + + +
+
+
+ {$topCategory.title} +

{:nl2br($topCategory.description ?? '')}

+
+
+
+ +
+
+
+
{$blocks['network']['title']['value'] ?? ''}

{$blocks['network']['subtitle']['value'] ?? ''}

+
+
+ {$blocks['network']['position_name']['value'] ?? ''} +

电话:{$blocks['network']['position_tel']['value'] ?? ''}

+

地址:{$blocks['network']['position_description']['value'] ?? ''}

+
+
+
+
+
+
+
+
+
{$blocks['achievement']['title']['value'] ?? ''}

{$blocks['achievement']['subtitle']['value'] ?? ''}

+
+
    + {if isset($achievementList) && count($achievementList) > 0} + {foreach $achievementList as $k => $achievement} +
  • +
    +
    {:str_pad(($k+1), 2, '0', STR_PAD_LEFT)}{$achievement.title ?? ''}
    +
    展开
    +
    +
    {$achievement.content|raw}
    +
  • + {/foreach} + {/if} +
+
+
+
+
\ No newline at end of file