Metas & Title, Symfony en présence
Juin 02, 07
Nous avons vu que l’url rewriting est simple sous Symfony, il est de même pour la manipulation des Métas.
Imaginons que nous souhaitions modifier les métas pour chaque rubrique ($this->rubrique) en fonction des articles qui y sont affichés.
Selon vos envies nous aurions quelque chose qui peut ressembler à cela :
/* * Ajout des métas */
# Récupération de l’objet réponse par défaut
$response = $this->getResponse();
# Récupération des mots-clefs (classés) liés aux articles (classées) de la rubrique
$motcles = MotclePeer::retrieveByRubriqueId( $this->rubrique->getId() );
$c = new Criteria();
$c->add( ArticlePeer::RUBRIQUE_ID, $rubrique->getId() );
$c->add( ArticlePeer::EN_LIGNE , 1 );
$c->addAscendingOrderByColumn (ArticlePeer::CLASSEMENT);
$articles = ArticlePeer::doSelect($c);
foreach ($articles as $i => article) {
$c = new Criteria();
$c->add( MotclePeer::ARTICLE_ID , $article->getId() );
$c->addAscendingOrderByColumn (MotclePeer::CLASSEMENT);
$motcles = MotclePeer::doSelect($c);
foreach ($motcles as $j => $motcle) {
$metaKeywords .= $motcle->getMot().", ";
# Le 1 premier mot-clé des 5 premiers articles
if ($j < 1 && $i < 5) $metaTitleMotcle .= " - ".$motcle->getMot() ;
}
}
# Ajouts de la meta keywords
$response->addMeta('keywords', $metaKeywords );
# Ajouts de la meta description
$response->addMeta('description', $this->rubrique->getMetaDescription() );
# Afficher le Title avec le titre de la rubrique,
# puis les principaux mots-clés des articles de la page
$metaTitle = $this->rubrique->getMetaTitle()." ".$metaTitleMotcle ;
$response->setTitle( $metaTitle );