コード例 #1
1
ファイル: PageUrlRule.php プロジェクト: NullRefExcep/yii2-cms
 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;
 }
コード例 #2
0
 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);
 }
コード例 #3
0
ファイル: Generator.php プロジェクト: NullRefExcep/yii2-cms
 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;
 }
コード例 #4
0
ファイル: PageView.php プロジェクト: NullRefExcep/yii2-cms
 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;
 }
コード例 #5
0
 /**
  * Lists all Page models.
  * @return mixed
  */
 public function actionIndex()
 {
     $dataProvider = new ActiveDataProvider(['query' => Page::find()]);
     return $this->render('index', ['dataProvider' => $dataProvider]);
 }