Продолжение. Начало смотри в статье «Внедрение своего дизайна на сайт».
Теперь нам нужно не просто отобразить текст на главной под блоком hero unit, а сделать так, чтобы мы могли в админке редактировать как текст под блоком, так и в самом блоке hero unit.
Для этого нам придётся подправить функционал админки.
А именно, нам нужно выцепить из текстового поля, отображаемого на главной, заголовок и первый абзац и вывести их в блоке hero unit.
Внесём модификации в контроллер Ideal/Structure/Home/Site/Controller, отвечающий за отображение главной страницы. Для этого его класс нужно скопировать из папки Ideal
в папку Ideal.c
.
Копируем файл:
super/Ideal/Structure/Home/Site/Controller.php
в
super/Ideal.c/Structure/Home/Site/Controller.php
Обратите внимание, что копировать нужно файл без суффикса Abstract (в файле с этим суффиксом как раз и реализован функционал, который мы будем переопределять).
Содержимое файла предельно лаконично:
<?php
namespace Ideal/Structure/Home/Site;
class Controller extends ControllerAbstract
{
}
То есть, класс контроллера просто наследуется от абстрактного класса. Это позволяет нам не переписывать у себя код заменяемого файла Ideal/Structure/Home/Site/Controller.php
, а переопределить только нужные методы.
В тело класса добавляем метод indexAction()
:
<?php
namespace Ideal/Structure/Home/Site;
class Controller extends ControllerAbstract
{
public function indexAction()
{
$this->templateInit();
$templatesVars = $this->model->getTemplatesVars();
$content = $templatesVars['template']['content'];
$pos = strpos($content, '</p>');
$this->view->header = substr($content, 0, $pos);
$this->view->content = substr($content, $pos + 4);
}
}
Теперь заменим текст в шаблоне на переменные.
comments powered by Disqus