/** * Render article page */ public function actionArticle($id = '') { $id = new \MongoId($id); $article = Article::findByPk($id); if (empty($article) || empty($article->url)) { return $this->redirect(self::NOT_FOUND_PAGE_PATH); } $actionView = $this->getView(); $sdk = Yii::$app->wechatSdk; $sdk->refererUrl = $sdk->refererDomain . 'msite/article/' . $id; $signPackage = $sdk->getSignPackage(); $actionView->registerJsFile('https://res.wx.qq.com/open/js/jweixin-1.0.0.js'); $actionView->registerJsFile(self::MICROSITE_PATH . 'article/index.js'); $actionView->registerJsFile(self::VENDOR_PATH . 'moment/min/moment.min.js'); $this->layout = self::ARTICLE_PATH; return $this->render(self::ARTICLE_PATH, ['signPackage' => $signPackage]); }
/** * Get the article with the statistics * @author HarrySun */ public function actionView($id) { $articleId = new \MongoId($id); $dateFrom = $this->getQuery('from'); $dateTo = $this->getQuery('to'); $article = Article::findByPk($articleId); if (empty($article)) { throw new ServerErrorHttpException("Article id is wrong"); } if (!isset($article->url) || empty($article->url)) { throw new ServerErrorHttpException("Article url is empty"); } $url = Yii::$app->curl->buildUrl($article->url, ['from' => $dateFrom, 'to' => $dateTo]); $articleArr = $article->toArray(); $articleArr['statistics'] = Yii::$app->urlService->statistics($url); return $articleArr; }