2010-11-30 3 views
2

J'installe des titres individuels de page dans les actions de mes contrôleurs en utilisant:CakePHP: Append chaîne par défaut à la page Titres

$this->set('title_for_layout', 'Some Title'); 

Ce que je veux obtenir est ajouter une chaîne de titre du site à tous ces titres avant de rendre, c'est-à-dire dire "Some Title :: Site Name". La solution la plus simple consisterait à ajouter cette chaîne manuellement à chaque point où le titre de la page est défini, mais c'est comme la méthode de la force brute.

Ce que j'ai essayé était de remplacer la méthode beforeRender() de chaque contrôleur et ajoutez cette instruction:

$this->set('title_for_layout', $this->title_for_layout . ' » ' . Configure::read('Site.title')); 

Je pensais que ce serait ajouter le titre du site au titre de la page pour chaque action - mais ce que je reçois à la place est :

Notice (8): Undefined variable: SomeController::title_for_layout [APP\controllers\some_controller.php, line xx] 

Il semble que le title_for_layout (ensemble dans des actions individuelles dans le contrôleur) n'a pas encore été fixée - qui jette cette erreur.

Ma question est, où & Comment puis-je ajouter globalement le titre du site à tous les titres de page - sinon de cette façon?

Merci, m^e

Répondre

1

utilisation $this->pageTitle au lieu de $this->title_for_layout

+0

C'est ce que j'avais essayé au début mais $ this-> pageTitle ne semble pas fonctionner et j'ai lu dans un autre post sur Nabble que $ this-> pageTitle a été abandonné dans Cake 1.3.x en faveur de title_for_layout. De plus, il produit le même avis var Undefined. –

+0

aw, désolé, venant de cakephp1.2 =/ –

+0

pour un, je ne pense pas que vous pouvez accéder à $ this-> title_for_layout dans le contrôleur, comme il n'a jamais été défini dans le contrôleur, mais plutôt dans la vue (donc le $ this-> set ('title_for_layout')). –

1

Si vous voulez vraiment ajouter la même chaîne-tous vos titres de page, le mettre dans la mise en page après title_for_layout $ .

Questions connexes