Не получается придумать как можно динамически задать title на странице. Пишу самопальную CMS ку с использованием шаблона MVC.
Вот класс представления, в методе render я подключаю главный шаблон
class View
{
public $title;
public $template_path;
public $view_path;
public function __construct()
{
$module = strtolower(Settings::get('module'));
$modules = Settings::get('modules');
$template_path = Settings::get('root_path').$modules[$module]['template'];
$this->template_path = $template_path;
$controller = strtolower(Settings::get('controller'));
$view_path = Settings::get('root_path').'/modules/'.$module.'/'.'views'.'/'.$controller.'/';
$this->view_path = $view_path;
}
public function render($view, Array $data = null)
{
if(!empty($data))
{
extract($data);
}
include $this->template_path;
}
Далее в главном шаблоне я подключаю контентную часть, которую передал в метод рендер первым параметром
<?php
require_once APP_PATH.'/Core/URL.php';
require_once APP_PATH.'/Core/Request.php';
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<link rel="stylesheet" type="text/css" href="/css/main.css">
<title><?=$this->title?></title>
</head>
<body>
<div id="container">
<div id="wrapper">
<div id="clear">
<?php include 'header.php'; ?>
<?php include $this->view_path.$view; ?>
</div>
</div>
<footer>
</footer>
</div>
</body>
</html>
Вот в этой контентой части мне бы хотелось задавать title страницы или например добавлять мета теги.
<?php
$this->title = "Главная";
?>
<aside class="bar left">
</aside>
<aside class="bar right">
</aside>
<main>
<div>Главная </div>
</main>
Не могу придумать путь решения данной проблемы пробовал через буферизацию вывода, но как то не срослось