2017-07-15 2 views
0

J'ai configuré SeoBundle comme indiqué dans docs:SeoBundle - titre et la description ne sont pas définies

sonata_seo: 
    page: 
     title: Default title 
     metas: 
      name: 
       description: Defualt description 
       keywords: key1, key2 

cmf_seo: 
    title: seo.title 
    description: seo.description 
    content_listener: 
     enabled: false 

et placé dans base.html.twig:

<head> 
    {# meta #} 
    <meta name=viewport content="width=device-width, initial-scale=1"> 
    <meta name="format-detection" content="telephone=no"/> 

    {{ sonata_seo_title() }} 

    {{ sonata_seo_metadatas() }} 

    ... 
</head> 

Maintenant, quand je rafraichir la page, je peux voir que sonata_seo bloc le titre et la description sont définis au lieu de cmf_seo. Dans docs il y a un avertissement:

Le titre et le modèle de description est utilisé uniquement lorsque le titre n'est pas défini sur l'objet de contenu ou lorsque l'objet de contenu n'est pas disponible, sinon il utilisera le jeu par défaut par le SonataSeoBundle. Vous devriez assurez-vous que les valeurs par défaut suivent également le modèle.

Si seulement docs préciserait ce qui est « objet de contenu » serait génial ... En tout cas j'essayé d'enlever le titre et la description du bloc sonata_seo:

sonata_seo: 
    page: ~ 

cmf_seo: 
    title: seo.title 
    description: seo.description 
    content_listener: 
     enabled: false 

Maintenant, mon titre devient « Projet Sonata » qui est le titre par défaut SonataSeoBundle. Comment afficher le titre cmf_seo? {{ cmf_seo_title() }} ne fonctionne pas.

Répondre

0

Quelle est la valeur de seo.title et seo.description est-ce quelque chose que vous vous attendez à être traduit? Pouvez-vous servir un stacktrace plus long pour l'exception s'il vous plaît?

En général, CmfSeoBundle s'attend à ce que certains espaces réservés (%%content_description%%, %%content_title%%, doublés pour le rendre translatable à la fin) pour enrichir le titre/description avec des données dynamiques. Ces données dynamiques peuvent être affichées sous la forme SeoContent sur le document (objet contenu) que vous persistez ou sous la forme d'extracteurs appelés extracteur qui extraient les données du document (objet contenu). Dans le premier cas, vous devez mettre en œuvre SeoAwareInterface dans le second cas, vous pouvez trouver plusieurs extracteurs dans la [doucmentation [(https://symfony.com/doc/current/cmf/bundles/seo/extractors.html).

Si vous voulez simplement définir des titres statiques, vous devriez rester avec SonataSeoBundle. Nous enrichissons simplement un modèle défini dans cmf_seo.title|description avec des données dynamiques du contenu actuel. Nous avons besoin de sonata_seo.title pour les pages sans documents de contenu (c'est-à-dire les pages statiques).

+0

S'il vous plaît donnez-moi quelques commentaires si nous devons simplement améliorer nos documents, ou si nous devons corriger un code ou si vous essayez de me dire une demande de fonctionnalité cachée :-) –