You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?php namespace Majestic\Layout; /** * @copyright NetMonsters <team@netmonsters.ru> * @link http://netmonsters.ru * @package Majestic * @subpackage Layout * @since 2010-02-25 */
abstract class Layout { protected $template; /** * @var \Majestic\View\PHPView */ protected $view; public function __construct() { $this->view = \Majestic\App\FrontController::getInstance()->getView(); } /** * @param string $name * @param \Majestic\App\Action $action */ protected function assign($name, $action) { $this->view->assign($name, $action->fetch()); } /** * @param string $name * @param \Majestic\App\Action $action */ protected function append($name, $action) { $this->view->append($name, $action->fetch()); } /** * @param string $name * @param \Majestic\App\Action $action */ protected function prepend($name, $action) { $this->view->prepend($name, $action->fetch()); } abstract protected function execute(); /** * Execute Action, insert action's result html into layout template and return Layout html * @param \Majestic\App\Action $action * @return string */ public function fetch($action) { $this->view->assign('content', $action->fetch()); $this->execute(); return $this->view->fetch($this->getTemplate()); }
/** * Return content of template * @return string */ protected function getTemplate() { $template = ($this->template) ? $this->template : substr(get_class($this), 0, -6/*strlen('Layout')*/); return '/layouts/' . $template; } }
|