Example #1
0
 /**
  * Views page.
  *
  * It first checks if there's a static page, using all the passed
  *  arguments.
  * Otherwise, it checks for the page in the database, using that slug.
  *
  * Static pages must be located in `APP/View/StaticPages/`.
  * @param string $slug Page slug
  * @return \Cake\Network\Response|void
  * @uses MeCms\Utility\StaticPage::get()
  * @uses MeCms\Utility\StaticPage::title()
  */
 public function view($slug = null)
 {
     //Checks if there exists a static page
     $static = StaticPage::get($slug);
     if ($static) {
         $page = (object) am(['title' => StaticPage::title($slug)], compact('slug'));
         $this->set(compact('page'));
         return $this->render($static);
     }
     $page = $this->Pages->find('active')->select(['id', 'title', 'subtitle', 'slug', 'text', 'active', 'created', 'modified'])->contain(['Categories' => function ($q) {
         return $q->select(['title', 'slug']);
     }])->where([sprintf('%s.slug', $this->Pages->alias()) => $slug])->cache(sprintf('view_%s', md5($slug)), $this->Pages->cache)->firstOrFail();
     $this->set(compact('page'));
 }
Example #2
0
 /**
  * Method that returns static pages urls
  * @return array
  * @uses MeCms\Utility\SitemapBuilder::parse()
  * @uses MeCms\Utility\StaticPage::all()
  */
 public static function staticPages()
 {
     $statics = \MeCms\Utility\StaticPage::all();
     //Adds static pages
     $url = array_map(function ($page) {
         return self::parse(['_name' => 'page', $page->slug], ['lastmod' => $page->modified]);
     }, $statics);
     return $url;
 }
Example #3
0
 /**
  * List static pages.
  *
  * Static pages must be located in `APP/View/StaticPages/`.
  * @return void
  * @uses MeCms\Utility\StaticPage::all()
  */
 public function indexStatics()
 {
     $this->set('pages', StaticPage::all());
 }