Titre de la page en MVC en PHP
Dans le fichier de modèle, la variable
$title est également disponible, contenant le titre de la page.
Il est évident que ce titre sera également
différent pour différentes pages. Utilisons
cette variable à bon escient :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><?= $title ?></title>
</head>
<body>
...
</body>
</html>
Afin de définir un titre pour une vue spécifique,
il est nécessaire de l'enregistrer dans la propriété
title du contrôleur :
<?php
namespace Project\Controllers;
use Core\Controller;
class TestController extends Controller
{
public function act()
{
// Définissons le titre :
$this->title = 'Action act du contrôleur test';
// Rendu de la vue, en transmettant quelques données :
return $this->render('test/act', [
'var1' => 'eee',
'var2' => 'bbb',
'var3' => 'kkk',
]);
}
}
?>
Modifiez le fichier de modèle et tous vos contrôleurs afin qu'un titre spécifique soit affiché pour chaque vue.
Supposons que dans le contrôleur Page le tableau
suivant soit donné :
<?php
$this->pages = [
1 => ['title'=>'page 1', 'text'=>'text 1'],
2 => ['title'=>'page 2', 'text'=>'text 2'],
3 => ['title'=>'page 3', 'text'=>'text 3'],
];
?>
Créez une action show qui affichera
une page donnée. Que dans la vue, le texte de la page
de la clé 'text' soit
enveloppé dans un paragraphe, et que le texte de la clé
'title' devienne le titre de la page.