В этой части документации мы реализуем функционал сайта "статические страницы".

ZCMF по умолчанию уже содержит функционал для реализации данного функционала в админской части. Залогинимся в админку под пользователем root и посмотрим в раздел сайт -> публикации:

публикации

Здесь мы видим всего одну уже созданную страницу. Отредактируем ее, введя текст главной страницы нашего сайта:

главная страница

И создадим еще одну новую страницу "О компании":

О компании

Готово. Теперь нам нужно реализовать вывод этих страниц на сайте. Этот функционал так же уже реализован в ZCMF. Нам достаточно разобраться в том, как он работает и немного откорректировать его.

Посмотрим в файл "application/modules/default/controllers/PageController.php":

Copy Source | Copy HTML
  1. class PageController extends Zend_Controller_Action
  2. {
  3.  
  4.   public function init()
  5.   {
  6.   }
  7.  
  8.   public function indexAction()
  9.   {
  10.     $this->_forward('show');
  11.   }
  12.  
  13.   public function showAction()
  14.   {
  15.     $this->view->page = $this->getRequest()->getParam('page');
  16.   }
  17.  
  18. }
  19.  

Тут все довольно просто. За показ страницы отвечает действие show этого контроллера. Это действие вызывается тогда, когда текущий адрес в браузере не соответствует ни одному маршруту и в списке страниц присутствует такая, адрес которой совпадает с текущим с точностью до GET параметров(которые указываются после знака вопроса в URI). При вызове этого метода в объект запроса автоматически помещается параметр page, который содержит объект Z_Statpage с содержанием соответствующей статической страницы.

Но не будем сильно углубляться в детали, а давайте разберемся, как работает наше представление "application/modules/default/views/scripts/page/show.phtml":

Copy Source | Copy HTML
  1. <?php Z_Seo::addTitle($this->page->getTitle())?>
  2. <?php $this->placeholder('top')->set('<h1>'.$this->page ->getTitle().'</h1>')?>
  3. <?=$this->page->getText()?>

В первой строке в статический метод addTitle класса Z_Seo передается заголовок страницы. Это позволяет нам в заголовке страницы получить название страницы, приписанное к названию сайта.

Вторая и третья строки отображают заголовок страницы и ее текст соответственно. Но нам нужно вторую строку изменить, т.к. в шаблоне по умолчанию был использован механизм плейсхолдеров.

Отредактируем файл следующим образом:

Copy Source | Copy HTML
  1. <?php Z_Seo::addTitle($this->page->getTitle())?>
  2. <h2><?php echo $this->page->getTitle()?></h2>
  3. <?=$this->page->getText()?>

Теперь перейдем в браузере по адресу http://zcmf.local/about и увидим нашу статическую страницу О компании.

Итак, все готово, кроме одного. Нам нужно привязать наши страницы к пунктам меню. Для этого зайдем в раздел админки Сайт -> Меню и создадим пункт О компании:

изменение пункта меню

В поле Страница мы видим наши статические страницы. Если мы выберем из списка соответствующий пункт, то в поле Ссылка нужный адрес появится автоматически. Этого мы и добивались.

На этом наш урок, посвященный статическим страницам завершен.