Задать вопрос
Feramon4ik
@Feramon4ik
Студент СПбГЭТУ("ЛЭТИ")

Как задавать динамически title MVC?

Не получается придумать как можно динамически задать 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>

Не могу придумать путь решения данной проблемы пробовал через буферизацию вывода, но как то не срослось
  • Вопрос задан
  • 590 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@dk-web
Так вставьте в шаблон $data['title'] или $data->title... и передавайте... верной дорогой идете
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы