/** * 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); } }
public function actionIndex() { $accountId = Yii::$app->request->get('accountId'); $category = Yii::$app->request->get('category'); if (BrowserUtil::isMobileBrowser()) { return $this->redirect('/mobile/helpdesk/FAQ?accountId=' . $accountId . '&category=' . $category); } $this->layout = 'faq'; $this->getView()->registerJsFile("/vendor/bower/jquery/dist/jquery.min.js"); $this->getView()->registerJsFile("/vendor/bower/angular/angular.min.js"); $this->getView()->registerJsFile("/vendor/bower/angular-bindonce/bindonce.min.js"); $this->getView()->registerJsFile("/build/modules/helpdesk/controllers/faq.js"); return $this->render('faq', ['category' => $category, 'accountId' => $accountId]); }
/** * Check browser is suit with origin */ private function checkBrowserIsRight($origin) { switch ($origin) { case Channel::WECHAT: $isBrowerRight = BrowserUtil::isWeixinBrowser() ? true : false; break; case Channel::WEIBO: $isBrowerRight = BrowserUtil::isWeiboBrower() ? true : false; break; case Channel::ALIPAY: $isBrowerRight = BrowserUtil::isAliBrower() ? true : false; break; default: $isBrowerRight = false; break; } return $isBrowerRight; }
private function renderPage($page, $useRiot = false, $injectWechatJS = true, $socialWebviewOnly = true) { $actionName = $this->action->id; $params = Yii::$app->request->get(); $this->registerCommonResource($page, $useRiot); if ($injectWechatJS) { $sdk = Yii::$app->wechatSdk; $sdk->refererUrl = $sdk->refererDomain . substr(Yii::$app->request->getUrl(), 1); $signPackage = json_encode($sdk->getSignPackage()); $logObj = json_encode(['url' => Yii::$app->params['frontendTrackUrl'], 'env' => Yii::$app->params['currentEnv']]); $js = "var options={$signPackage}, page='{$page}';window.trackerLog={$logObj};"; $this->view->registerJs($js, View::POS_HEAD); if (empty($params['debug'])) { $this->registerBodyJsFile(self::BUILD_PATH . 'handlewechat.js?v=' . Yii::$app->params['buildVersion']); } } $socialWebviewOnly = $socialWebviewOnly && empty($params['debug']); if ($socialWebviewOnly && !BrowserUtil::isWeixinBrowser() && !BrowserUtil::isWeiboBrower() && !BrowserUtil::isAliBrower()) { $this->view->js = null; $this->view->jsFiles = null; $this->view->cssFiles = null; $this->view->registerCssFile(self::BUILD_PATH . 'common/app.css'); return $this->render('common/error'); } else { //Member active record $accessToken = $this->getAccessToken(); if (!empty($params['memberId']) && !empty($accessToken)) { $memberId = new \MongoId($params['memberId']); $accountId = Token::getAccountId($accessToken); MemberLogs::record($memberId, $accountId, MemberLogs::OPERATION_VIEWED); } return $this->render($actionName . '/' . $page); } }