public function parseRequest($manager, $request) { $result = parent::parseRequest($manager, $request); if (isset($result[1]) && $result[1]['route']) { $route = $result[1]['route']; $page = Page::getDb()->cache(function () use($route) { return Page::find()->where(['route' => $route])->one(); }); if ($page) { return [$this->route, ['route' => $route]]; } } return false; }
public function beforeAction($action) { if (!Yii::$app->request->isAjax) { $url = '/' . Yii::$app->request->pathInfo; /** @var Page $page */ $page = Page::find()->byRoute($url)->one(); if ($page !== null) { $view = $action->controller->view; $page->registerMetaTags($view); $view->params['cms.page'] = $page; } } return parent::beforeAction($action); }
public function generate() { $selectedPages = Page::find()->where(['id' => $this->pages])->all(); $time = (new \DateTime())->getTimestamp(); $pages = []; foreach ($selectedPages as $page) { $meta = serialize($page->meta); $offset = "\n\t\t\t"; $columns = "[{$offset}'route' => '{$page->route}'," . "{$offset}'title' => '{$page->title}'," . "{$offset}'layout' => '{$page->layout}'," . "{$offset}'content' => '{$page->content}'," . "{$offset}'type' => {$page->type}," . "{$offset}'meta' => '{$meta}'," . "{$offset}'created_at' => {$time}," . "{$offset}'updated_at' => {$time},{$offset}]"; $pages[] = ['columns' => $columns]; } $files = []; $name = 'm' . gmdate('ymd_Hi') . '00_insert_cms_pages'; $code = $this->render('migration.php', ['name' => $name, 'pages' => $pages, 'createdAt' => $time]); $files[] = new CodeFile(Yii::getAlias($this->path) . '/' . $name . '.php', $code); return $files; }
public function run() { if (($route = Yii::$app->request->getQueryParam('route')) == null) { throw new NotFoundHttpException(Yii::t('cms', 'Page not found.')); } $page = Page::getDb()->cache(function () use($route) { return Page::find()->byRoute($route)->one(); }, null, new TagDependency(['tags' => 'cms.page.' . $route])); if (!isset($page)) { throw new NotFoundHttpException(Yii::t('cms', 'Page not found.')); } if ($page->layout) { $this->controller->layout = $page->layout; } if ($page->type == Page::TYPE_CONTENT) { $this->view = 'content-view'; } $result = $this->controller->render($this->view, ['page' => $page]); //@TODO add tag dependency by blocks return $result; }
/** * Lists all Page models. * @return mixed */ public function actionIndex() { $dataProvider = new ActiveDataProvider(['query' => Page::find()]); return $this->render('index', ['dataProvider' => $dataProvider]); }