Тайтл страницы в MVC в PHP
No arquivo de template também está disponível a variável
$title, contendo o título da página.
Obviamente, esse título também será
diferente para várias páginas. Vamos usar
essa variável adequadamente:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><?= $title ?></title>
</head>
<body>
...
</body>
</html>
Para definir o título para uma determinada
view é necessário no controlador escrevê-lo
na propriedade title:
<?php
namespace Project\Controllers;
use Core\Controller;
class TestController extends Controller
{
public function act()
{
// Vamos definir o título:
$this->title = 'Ação act do controlador test';
// Vamos renderizar a view, passando alguns dados:
return $this->render('test/act', [
'var1' => 'eee',
'var2' => 'bbb',
'var3' => 'kkk',
]);
}
}
?>
Modifique o arquivo de template e todos os seus controladores para que cada view exiba seu próprio título.
Suponha que no controlador Page seja dado o seguinte
array:
<?php
$this->pages = [
1 => ['title'=>'page 1', 'text'=>'text 1'],
2 => ['title'=>'page 2', 'text'=>'text 2'],
3 => ['title'=>'page 3', 'text'=>'text 3'],
];
?>
Crie uma ação show, que irá
exibir uma página determinada. Faça com que na view
o texto da página da chave 'text' seja
envolto em um parágrafo, e o texto da chave 'title'
se torne o título da página.