Meta Description

Hallo,

 

wir möchten gerne eine automatisierte Meta Description auf unseren Detailseiten erstellen und ausgeben. Hierzu haben wir in unserem Template die Header.tpl erzeugt und mit folgendem Inhalt versehen: 

{extends file='parent:frontend/index/header.tpl'}

{* Meta title *}
{block name="frontend_index_header_title"}
	{strip}
			{if $sArticle.additionaltext!=""}
				{$sArticle.supplierName} {$sArticle.additionaltext} kaufen | {config name=sShopname}
			{else}
				{$sArticle.supplierName} {$sArticle.articleName} kaufen | {config name=sShopname}
			 {/if}
	{/strip}
{/block}

{block name='frontend_index_header_meta_description'}
	Test Desciption 
{/block}

 

Mit dem Title funktioniert das sehr gut, mit der Description leider nicht. 

Kann es damit was zu tun haben, dass im Bare-Template die Meta Description als Blocks innerhalb eines Block verwendet wird? 

 

Vielen Dank vorab! 

 

Grüße,
Achim

 

Du bist aber jetzt schon in der "detail/header.tpl?

Das original sieht ja da so aus:

{* Description *}
{block name="frontend_index_header_meta_description"}{if $sArticle.description}{$sArticle.description|escapeHtml}{else}{$sArticle.description_long|strip_tags|trim|escapeHtml}{/if}{/block}

Vieleicht solltest du mal versuchen im Block Anführunszeichen zu verwenden, wie im Original.

Allgemein kann es aber auch sein das für die Anzeige auch die  

herangezogen wird, das müsstest du dann mal beobachten.

Uwe

Hallo Uwe,

ja, bin in der detail/header.tpl. Habe nun auch den Block in Anführungszeichen gesetzt, leider ohne Erfolg. 

Die “og-description” ist es m. E. nicht, da ich beispielsweise über die Datei /index/header.tpl in meinem Template den Block Description ändern kann. 

Was hier seltsam ist, dass ich über einen Block in der /index/header.tpl die description für die Startseite, Formulare, … ändern kann, wenn ich aber auf controller “detail” abfrage, wird der Block auch wieder nicht überschrieben. 

 

index/header.tpl

{block name='frontend_index_header_meta_description'}
	{if $Controller=='index'}
	
	{s name='IndexMetaDescriptionStandard'}{/s}
	
	{elseif $Controller=='detail'}
				Test der Description | {config name=sShopname}
	
	{elseif $Controller=='custom' & $sCustomPage.id == '1'}
				Kontakt / Support | {config name=sShopname}
    {/if}

{/block}

Noch jemand eine Idee? 

 

VG,

Achim

Hallo,

habe nun mal folgendes erfolgreich getestet: 

  1. Erweiterung des Bare - Templates /index/header.tpl um den Block:

    {block name=“frontend_index_header_meta_description_test”}

    {/block}

  2. “mein Template”/detail/header.tpl um den Code: 

    {extends file=‘parent:frontend/index/header.tpl’}

    {block name=“frontend_index_header_meta_description_test”}
    {if $sArticle.additionaltext!=""}

     			{else}	
     				
     			{/if}
    

    {/block}

Dies funktioniert nun ohne Probleme und der Block wird im Header ausgegeben. 

 

Daher die Frage, da ich mein Bare-Template gerne Updatefähig halten möchte: Kann es sein, dass das Fehlverhalten am Block innerhalb des Blocks liegt oder habe ich evtl. etwas übersehen? 

Gruß,

Achim

 

Hallo,

 

noch mal „hochschieben“… Hat niemand eine Idee? Ist es möglich, dass es sich um einen Bug handelt? 

 

VG,

Achim

Genau an dem gleichen Problem hänge ich derzeit auch. Die Meta-description lässt sich auf der Index-Seite problemlos ändern, jedoch nicht auf anderen Seiten.

Shopware ignoriert die Änderungen in meiner header.tpl im detail Ordner.

 

 

 

Habs gelöst:

 

{extends file="parent:frontend/plugins/seo/index.tpl"}

{block name='frontend_index_header_meta_description'}
    {if $Controller=='detail'}
        Mein Seo Text für die Detailseite
    {elseif $SeoMetaDescription}
        {$SeoMetaDescription|truncate:150:"...":true}
    {else}
        {$smarty.block.parent}
    {/if}
{/block}

 

Ich habe auch erstmal in der ‚‚falschen‘‘ Datei gesucht bzw. der header.tpl im details Ordner. Aber in der Bootstrap.php wird abgefragt welche Variable vorhanden ist und dieser Wert wird dann an die $metaDescription übergeben:

 

        if (!empty($config['sSEOMETADESCRIPTION'])) {
            if (!empty($view->sArticle['metaDescription'])) {
                $metaDescription = $view->sArticle['metaDescription'];
            } elseif (!empty($view->sArticle['description'])) {
                $metaDescription = $view->sArticle['description'];
            } elseif (!empty($view->sArticle['description_long'])) {
                $metaDescription = $view->sArticle['description_long'];
            } elseif (!empty($view->sCategoryContent['metaDescription'])) {
                $metaDescription = $view->sCategoryContent['metaDescription'];
            } elseif (!empty($view->sCategoryContent['cmstext'])) {
                $metaDescription = $view->sCategoryContent['cmstext'];
            }
            if (!empty($metaDescription)) {
                $metaDescription = html_entity_decode($metaDescription, ENT_COMPAT, 'UTF-8');
                $metaDescription = trim(preg_replace('/\s\s+/', ' ', strip_tags($metaDescription)));
                $metaDescription = htmlspecialchars($metaDescription);
            }
        }

 

Viele Grüße

Ziney

2 „Gefällt mir“

Hallo Ziney,

vielen Dank für deinen Tipp und die Lösung. Hab’s nun genauso umgesetzt. 

Mir ist nur aufgefallen, daß in diesem Fall die Ausgabe im Quelltext mit Zeilenumbrüchen erfolgt. Nehme an, dass das kein Problem sein dürfte. Oder ?

Quelltext-Ausgabe im Browser:

VG
spiro

Hallo Ziney,

vielen Dank für den Tipp mit der index.tpl unter /plugins/seo

Auch ich wollte jetzt meine meta-description automatisch ausgeben lassen und hier noch etwas hinzufügen:

{extends file="parent:frontend/plugins/seo/index.tpl"}

{block name='frontend_index_header_meta_description'}
   {if $Controller=='detail'}
      {if $sArticle.description}{$sArticle.description|escapeHtml}{else}{$sArticle.name {s name="MyOwnDescription" namespace="fontend/detail/header"}{/s}|strip_tags|trim|escapeHtml}{/if}
   {elseif $SeoMetaDescription}{$SeoMetaDescription|truncate:160:"...":true}
      {else}{$smarty.block.parent}{/if}
{/block}

Meine description soll also den Artikelnamen automatisch an den Anfang setzen und einen Textbaustein anfügen, wenn nicht schon eine description im Artikel angelegt ist.

Wenn ich die Datei allerdings hochlade, geht der ganze Shop down.

Irgendwelche Ideen?

Danke vorab!!