Esempio n. 1
0
 /**
  * Render page, query string 's' indicates that get page record regardless of published status
  */
 public function actionPage($id = '')
 {
     $isPreview = \Yii::$app->request->get('s', 0);
     if (!empty($id)) {
         $id = new \MongoId($id);
         $page = Page::getPage($id, !!$isPreview);
         if (empty($page) || empty($page->url)) {
             $this->redirect(self::NOT_FOUND_PAGE_PATH);
         }
         if (empty($page['color'])) {
             $page['color'] = \Yii::$app->params['micrositeDefaultColor'];
         }
         if (empty($page->cpts) || $isPreview) {
             $cpts = PageComponent::getAllComponents($id);
             $page->cpts = ArrayHelper::toArray($cpts);
         }
         $sdk = Yii::$app->wechatSdk;
         $sdk->refererUrl = $sdk->refererDomain . 'msite/page/' . $id;
         $signPackage = $sdk->getSignPackage();
         $actionView = $this->getView();
         $actionView->registerJsFile('https://res.wx.qq.com/open/js/jweixin-1.0.0.js');
         $this->view->params['page'] = $page;
         $this->view->params['pageRGBColor'] = join(',', StringUtil::hex2rgb($page['color']));
         $this->layout = self::PAGE_PATH;
         $this->registerPageResource($isPreview);
         $params = ['signPackage' => $signPackage, 'components' => $page->cpts, 'page' => ['title' => $page->title, 'desc' => $page->description, 'url' => $page->url, 'isCover' => $page->type === Page::TYPE_COVER]];
         if (BrowserUtil::isWeiboBrower() || BrowserUtil::isWeixinBrowser()) {
             $params['hideTitle'] = true;
         }
         return $this->render(self::PAGE_PATH, $params);
     } else {
         return $this->render(self::NOT_FOUND_PAGE_PATH);
     }
 }
Esempio n. 2
0
 /**
  * View a page with statistics data
  * @param  string $id page id
  * @return array
  * @throws ServerErrorHttpException
  */
 public function actionView($id)
 {
     $pageId = new \MongoId($id);
     $startDate = $this->getQuery('from');
     $endDate = $this->getQuery('to');
     $page = Page::getPage($pageId, true);
     if (empty($page)) {
         throw new ServerErrorHttpException(Yii::t('microSite', 'page_not_exist'));
     }
     $pageArr = $page->toArray();
     // find the statistics data from url service
     if (isset($page->shortUrl) && !empty($page->shortUrl) && strstr($page->shortUrl, Yii::$app->urlService->shortUrlDomain)) {
         // build a url with 'from' and 'to' params
         $url = Yii::$app->curl->buildUrl($page->shortUrl, ['from' => $startDate, 'to' => $endDate]);
         $pageArr['statistics'] = Yii::$app->urlService->statistics($url);
     }
     return $pageArr;
 }