2017-07-15 3 views
0

I SeoBundle konfiguriert haben wie in docs angegeben:SeoBundle - Titel und Beschreibung sind nicht gesetzt

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 

und platziert in 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> 

Wenn ich jetzt Seite aktualisieren kann ich sehen, dass sonata_seo Block Titel und Beschreibung werden anstelle von cmf_seo festgelegt. In docs gibt es eine Warnung:

Den Titel und Beschreibungsvorlage wird nur verwendet, wenn der Titel nicht Satz auf dem Content-Objekt ist oder wenn das Inhaltsobjekt nicht verfügbar ist, sonst wird es den Standardsatz verwenden durch das SonataSeoBundle. Sie sollten sicherstellen, dass die Vorgaben auch der Vorlage folgen.

Wenn nur docs würde klären, was „Content-Objekt“ groß sein würde ... Wie auch immer ich versuchte zu entfernen Titel und eine Beschreibung von sonata_seo Block:

sonata_seo: 
    page: ~ 

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

Jetzt ist mein Titel wird „Sonata Project“ die ist Standard SonataSeoBundle Titel.

Wie zeige ich cmf_seo titel an? {{ cmf_seo_title() }} funktioniert nicht.

Antwort

0

Was ist der Wert von seo.title und seo.description ist es etwas, was Sie erwarten zu übersetzen? Kannst du bitte ein längeres Stacktrace für die Ausnahme servieren?

Im Allgemeinen CmfSeoBundle erwartet einige Platzhalter (%%content_description%%, %%content_title%%, verdoppelt, um es übersetzbar am Ende zu machen), um den Titel/die Beschreibung mit dynamischen Daten anzureichern. Diese dynamischen Daten können als SeoContent für das Dokument (Inhaltsobjekt), das Sie beibehalten, oder als so genannte Extraktoren, die die Daten aus dem Dokument (Inhaltsobjekt) abrufen, verwendet werden. Im ersten Fall müssen Sie SeoAwareInterface implementieren. Im zweiten Fall finden Sie mehrere Extraktoren in der [doucmentation [(https://symfony.com/doc/current/cmf/bundles/seo/extractors.html).

Wenn Sie nur statische Titel festlegen möchten, sollten Sie mit der SonataSeoBundle bleiben. Wir bereichern einfach eine in cmf_seo.title|description definierte Vorlage mit dynamischen Daten aus dem aktuellen Inhalt. Wir benötigen sonata_seo.title für Seiten ohne Inhaltsdokumente (d. H. Statische Seiten).

+0

Bitte geben Sie mir ein Feedback, wenn wir unsere Dokumente einfach verbessern müssen, oder etwas Code reparieren müssen oder wenn Sie versuchen, mir eine versteckte Feature-Anfrage zu geben :-) –

Verwandte Themen