Soucis avec le helper Html

Par Sean78, il y a 11 ans


Bonsoir les amis,
je souhaiterai changer la balise <meta description> et <meta keyword> en fonction de l'article.
Pour cela dans le layout il y a le code suivant :

<?php echo $this->fetch('meta'); echo $this->fetch('css'); echo $this->fetch('script');around ?>

et dans la vue associée à l'article je fais ceci:

<?php echo $this->Html->meta('keywords', 'enter any meta keyword here');?> <?php echo $this->Html->meta( 'description', 'enter any meta description here');?>

ça ne passe pas, vous avez une idée de l'utilisation de fetch?

Merci d'avance!!!

4 réponses

Romano83, il y a 11 ans

Salut,
si tu veux avoir les meta qui changent en fonction de tes vues, il faut que tu entoure ton deuxième bout de code par :

<?php $this->start('meta', array('inline' => false)); echo $this->Html->meta('keywords', 'enter any meta keyword here'); echo $this->Html->meta( 'description', 'enter any meta description here'); $this->end(); ?>

Ceci te permet de créer un block de vue.

Wa3aR, il y a 11 ans

Tu dois juste ajouter comme options un inline a false. En gros tu specifies à Cake de ne pas écrire ta balise meta suivant l'ordre d'apparition mais de la rattacher au fetch meta que tu mets plus haut. Dans ta vue donc :

<?php $this->Html->html("keywords", "tes keywords", array("inline" => false")); ?>

Ca marche de la même manière avec du css ou du javascript. Je te conseille de lire la partie du book qui traite du sujet : http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html

Sean78, il y a 11 ans

Merci de votre aide!!!!
Ca nécessitera peut-être un autre billet mais quel code cakephp pour : link rel="canonical" href="www.site.com,
J'ai essayé ceci :
echo $this->Html->meta('Site','http://www.site.com', array('type' => 'html','rel'=>'canonical'));
Merci beaucoup!!!

Wa3aR, il y a 11 ans

Le code que tu mets sert à générer une balise meta et non pas un lien !

$this->Html->link("Site", "http://www.site.com", array("rel" => "canonical"));