Tytuł strony w MVC w PHP
W pliku szablonu dostępna jest również zmienna
$title, zawierająca tytuł strony.
Oczywiście, ten nagłówek również będzie
inny dla różnych stron. Użyjmy tej
zmiennej zgodnie z jej przeznaczeniem:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><?= $title ?></title>
</head>
<body>
...
</body>
</html>
Aby ustawić tytuł dla określonego
widoku, należy w kontrolerze zapisać
go we właściwości title:
<?php
namespace Project\Controllers;
use Core\Controller;
class TestController extends Controller
{
public function act()
{
// Ustawmy tytuł:
$this->title = 'Akcja act kontrolera test';
// Wyrenderujmy widok, przekazując jakieś dane:
return $this->render('test/act', [
'var1' => 'eee',
'var2' => 'bbb',
'var3' => 'kkk',
]);
}
}
?>
Zmodyfikuj plik szablonu i wszystkie swoje kontrolery tak, aby dla każdego widoku wyświetlał się jego własny tytuł.
Niech w kontrolerze Page będzie następująca
tablica:
<?php
$this->pages = [
1 => ['title'=>'page 1', 'text'=>'text 1'],
2 => ['title'=>'page 2', 'text'=>'text 2'],
3 => ['title'=>'page 3', 'text'=>'text 3'],
];
?>
Stwórz akcję show, która będzie
wyświetlać daną stronę. Niech w widoku
tekst strony z klucza 'text' będzie
zawinięty w akapit, a tekst z klucza 'title'
stanie się tytułem strony.