PHP MVCにおけるページタイトル
テンプレートファイル内では、ページタイトルを含む変数
$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 = 'testコントローラのactアクション';
// 何らかのデータを渡してビューをレンダリング:
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' のテキストが
ページタイトルになるようにしてください。