Заглавие на страницата в MVC в PHP
Във файла на шаблона също е достъпна променливата
$title, съдържаща заглавието на страницата.
Очевидно е, че това заглавие също ще бъде
различно за различните страници. Нека използваме
тази променлива по предназначение:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><?= $title ?></title>
</head>
<body>
...
</body>
</html>
За да зададете заглавие за определено
изглед е необходимо в контролера да го запишете
в свойството title:
<?php
namespace Project\Controllers;
use Core\Controller;
class TestController extends Controller
{
public function act()
{
// Задаваме заглавие:
$this->title = 'Действие act на контролер test';
// Рендираме изглед, предавайки някакви данни:
return $this->render('test/act', [
'var1' => 'eee',
'var2' => 'bbb',
'var3' => 'kkk',
]);
}
}
?>
Модифицирайте файла на шаблона и всичките ви контролери така, че за всеки изглед да се извежда свое заглавие.
Нека в контролера Page е даден следният
масив:
<?php
$this->pages = [
1 => ['title'=>'page 1', 'text'=>'text 1'],
2 => ['title'=>'page 2', 'text'=>'text 2'],
3 => ['title'=>'page 3', 'text'=>'text 3'],
];
?>
Направете действие show, което ще
извежда зададена страница. Нека в изгледа
текстът на страницата от ключа 'text' да бъде
обвит в абзац, а текстът от ключа 'title'
стане заглавие на страницата.