Paginatitel in MVC in PHP
In het sjabloonbestand is ook de variabele
$title beschikbaar, die de paginatitel bevat.
Het is duidelijk dat deze titel ook
verschillend zal zijn voor verschillende pagina's. Laten we deze
variabele naar behoren gebruiken:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><?= $title ?></title>
</head>
<body>
...
</body>
</html>
Om een titel in te stellen voor een specifieke
weergave moet deze in de controller worden geschreven
in de eigenschap title:
<?php
namespace Project\Controllers;
use Core\Controller;
class TestController extends Controller
{
public function act()
{
// Stel de titel in:
$this->title = 'Actie act van controller test';
// Render de weergave, geef enkele gegevens door:
return $this->render('test/act', [
'var1' => 'eee',
'var2' => 'bbb',
'var3' => 'kkk',
]);
}
}
?>
Wijzig het sjabloonbestand en al je controllers zodat voor elke weergave een eigen titel wordt weergegeven.
Stel dat in de controller Page de volgende
array staat:
<?php
$this->pages = [
1 => ['title'=>'page 1', 'text'=>'text 1'],
2 => ['title'=>'page 2', 'text'=>'text 2'],
3 => ['title'=>'page 3', 'text'=>'text 3'],
];
?>
Maak een actie show aan, die de
opgegeven pagina zal weergeven. Zorg ervoor dat in de weergave
de paginatekst van de sleutel 'text'
wordt verpakt in een alinea, en de tekst van de sleutel 'title'
de paginatitel wordt.