Salut !
Pour optimiser le référencement d'un site, j'aurais souhaité modifié les meta (plus particulièrement la meta description) à partir de la vue (comme on peut le faire pour la balise <title></title> avec 'title_for_layout'.
Sinon je pourrais bien sûr créer une layout spécifique qui me prends la description dynamiquement, mais j'aurais souhaité savoir si c'était possible de le faire en gardant le même layout pour tout le site.
Merci d'avance :)
Sur la doc de Cake, il est indiqué que le Helper HTML peut prendre ça en charge : http://book.cakephp.org/2.0/fr/core-libraries/helpers/html.html#HtmlHelper::meta
Il suffit donc dans ton controller d'initialiser une variable qui va contenir une chaîne avec les keywords que tu souhaites, et ceci depuis ta BDD j'imagine, et pour finir de set() pour la passer à la vue.
Tu peux également définir une variable dans ton controller qui va générer des keywords génériques pour toutes les vues du controller, et ensuite en ajouter d'autres en concaténant ta variable pour chaque action du controller si besoin.
Par ailleurs, il peut être intéressant de rajouter un beforeRender dans ton AppController pour vérifier si la variable a été passée à la vue, et si ça n'est pas le cas, renvoyer une variable qui contiendra des keywords génériques.
Ainsi tu te retrouves avec :
Une chaîne générique à toute ton app, via AppController
Une chaîne générique à tout ton controller, définie dans le controller et qui remplace la chaîne générique à l'App
Une chaîne spécifique à tes actions, qui se rajoutent à (ou remplace, selon ton choix) la chaîne du controller
Pour le moment j'ai fais une petite condition dans mon layout par défaut :
Si la $var n'est pas déclaré : j'affiche les meta par défaut, sinon j'affiche le contenu de la variable.
Je regarderai via l'AppController :)
Merci
Moi dans mon layout j'ai mis un
$this->fetch('meta');
et quand j'ai besoin d'ajouter des méta dans mes vue
$this->start('meta');
echo ....
$this->end();