Page\Model\Helper\PageHelper::pageBySlug PHP Метод

pageBySlug() публичный Метод

public pageBySlug ( $slug, $lang = null, $lifeTime = 60 )
    public function pageBySlug($slug, $lang = null, $lifeTime = 60)
    {
        $lang = $lang ? $lang : LANG;
        $pageResult = $this->getDi()->get('cacheManager')->load([Keys::PAGE, $slug, $lang], function () use($slug, $lang, $lifeTime) {
            $columns = ['p.*'];
            foreach ($this->translateFields as $field) {
                $columns[] = "(SELECT t.value FROM [{$this->translateModel}] AS t WHERE t.foreign_id = p.id AND t.lang = '{$lang}' AND t.key = '{$field}') AS {$field}";
            }
            $qb = $this->modelsManager->createBuilder()->columns($columns)->addFrom('Page\\Model\\Page', 'p')->where('p.slug = :slug:', ['slug' => $slug]);
            $result = $qb->getQuery()->execute()->getFirst();
            return $result;
        }, $lifeTime);
        return $pageResult;
    }

Usage Example

Пример #1
0
 public function contactsAction()
 {
     $pageHelper = new PageHelper();
     $pageResult = $pageHelper->pageBySlug('contacts');
     if (!$pageResult) {
         throw new Exception("Page 'contacts' not found");
     }
     $this->helper->title()->append($pageResult->meta_title);
     $this->helper->meta()->set('description', $pageResult->meta_description);
     $this->helper->meta()->set('keywords', $pageResult->meta_keywords);
     $this->helper->menu->setActive('contacts');
     $this->view->text = $pageResult->text;
 }
PageHelper