Gelöst Überschrift in productlist/header.tpl im 5er Shop wieder ausgeben

mobade

Sehr aktives Mitglied
27. Februar 2017
831
150
Chemnitz
Hi,
möchte gern wieder die Überschrift, die ich in der Wawi hinterlege ( siehe Foto ) im 5er Shop ausgeben.

ueberschrift-Kategorien.jpg

Im Shop 4 ging dies relativ einfach mit folgendem Code:
Code:
{if (isset($oNavigationsinfo->oKategorie->KategorieAttribute.ueberschrift) && $oNavigationsinfo->oKategorie->KategorieAttribute.ueberschrift|@strlen > 0)}
    <div class="title"><h1>{$oNavigationsinfo->oKategorie->KategorieAttribute.ueberschrift}</h1></div>
{else}
    <div class="title">{if $oNavigationsinfo->cName}<h1>{$oNavigationsinfo->cName}</h1>{/if}</div>
{/if}

im 5er Shop haben sich natürlich die Variablen bisl geändert
Code:
{if $oNavigationsinfo->getName()}
            <div class="title mb-4">
                {opcMountPoint id='opc_before_heading'}
                {block name='productlist-header-description-heading'}
                    <h1 class="h2">{$oNavigationsinfo->getName()}</h1>
                {/block}
            </div>
{/if}

wie lautet jetzt der Codeschnipsel ? damit man die Überschrift wieder ausgeben kann.

Da steh ich natürlich auf dem Schlauch :)

danke und grüssle Mario
 
  • Gefällt mir
Reaktionen: Theros

MHillmann

Moderator
Mitarbeiter
11. Oktober 2018
1.315
449
Hallo @basteldehs

Du kannst dir z. B. mit var_dump
Code:
{$oNavigationsinfo|var_dump}
den Inhalt von Variablen ausgeben lassen. Dort siehst du dann, dass die Variablen nur umbenannt wurden. Du kannst also mit
Code:
{$oNavigationsinfo->getCategory()->categoryFunctionAttributes.ueberschrift}
das gleiche erreichen wie vorher.

Viele Grüße
Michael
 

mobade

Sehr aktives Mitglied
27. Februar 2017
831
150
Chemnitz
Hi @MHillmann,
vielen Dank! hat funktioniert oder nicht ganz so hart, wird wie gewünscht ausgeführt :)
anbei den Kompletten Code, sollte es jemand benötigen.

datei öffnen in templates/novachild/productlist/header.tpl ab Zeile: 56

Code:
        {if isset($oNavigationsinfo->getCategory()->categoryFunctionAttributes.ueberschrift && $oNavigationsinfo->getCategory()->categoryFunctionAttributes.ueberschrift|strlen > 0)}
            <div class="title mb-4">
                {opcMountPoint id='opc_before_heading'}
                {block name='productlist-header-description-heading'}
                    <h1 class="h2">{$oNavigationsinfo->getCategory()->categoryFunctionAttributes.ueberschrift}</h1>
                {/block}
            </div>
        {else}
            <div class="title mb-4">
                {opcMountPoint id='opc_before_heading'}
                {block name='productlist-header-description-heading'}
                    <h1 class="h2">{$oNavigationsinfo->getName()}</h1>
                {/block}
            </div>
        {/if}

grüssle Mario


--- closed ---
 
Zuletzt bearbeitet:

apalusa

Sehr aktives Mitglied
22. Oktober 2018
247
55
Aber gibt es auch eine Lösung für die Herstellerseite?
Ich hab das so gelöst, dass ich prüfe ob die Beschreibung des Herstellers "<h1>" enthält, falls ja, wird die Überschrift gar nicht ausgegeben, so dass automatisch die Überschrift aus der Beschreibung die einzige ist.
Hierfür habe ich in dem Block {block name='productlist-header-description-heading'} folgende Abfrage (wobei "alternate_h1" bei mir das Funktionsattribut ist um die Überschrift wie weiter oben besprochen zu setzen):
Code:
{if empty($AktuelleKategorie->categoryFunctionAttributes['alternate_h1']) && strpos($oNavigationsinfo->oMerkmalWert->cBeschreibung, '<h1>') === false && strpos($oNavigationsinfo->getManufacturer()->cBeschreibung, '<h1>') === false}
    <h1>{$oNavigationsinfo->getName()}</h1>
{/if}
 
  • Gefällt mir
Reaktionen: ManuelAnger

ManuelAnger

Aktives Mitglied
17. Mai 2021
24
1
Ich hab das so gelöst, dass ich prüfe ob die Beschreibung des Herstellers "<h1>" enthält, falls ja, wird die Überschrift gar nicht ausgegeben, so dass automatisch die Überschrift aus der Beschreibung die einzige ist.
Hierfür habe ich in dem Block {block name='productlist-header-description-heading'} folgende Abfrage (wobei "alternate_h1" bei mir das Funktionsattribut ist um die Überschrift wie weiter oben besprochen zu setzen):
Code:
{if empty($AktuelleKategorie->categoryFunctionAttributes['alternate_h1']) && strpos($oNavigationsinfo->oMerkmalWert->cBeschreibung, '<h1>') === false && strpos($oNavigationsinfo->getManufacturer()->cBeschreibung, '<h1>') === false}
    <h1>{$oNavigationsinfo->getName()}</h1>
{/if}
Okay danke und wo genau hast du das bearbeitet? Also in welcher Datei?
 

apalusa

Sehr aktives Mitglied
22. Oktober 2018
247
55
Okay danke und wo genau hast du das bearbeitet? Also in welcher Datei?
Wie oben templates/novachild/productlist/header.tpl. Die genaue Zeile kann ich nicht sagen, da ich selbst zu viele Anpassungen schon drin habe, aber eine Suche nach {$oNavigationsinfo->getName()} sollte dabei helfen.

Deswegen habe ich auch in einer Zeile 3 Konditionen, einmal für normale Kategorien mit Funktionsattributen, einmal für den Fall das es sich um eine Merkmalseite handelt (bei Merkmalen arbeite ich genauso wie bei Herstellern mit "<h1>" in der Beschreibung), und einmal für den Fall das es sich um eine Herstellerseite handelt. Alle drei dieser Seiten verwenden dieselbe Datei für den Header Bereich. Im Standard fällt das nicht auf, weil die Zeile <h1>{$oNavigationsinfo->getName()}</h1> alleine vollumfänglich alle Fälle abdeckt, aber bei Anpassung wie in unserem Fall muss hier entsprechend eine Abfrage abgreifen welche Art von Seite es gerade ist.
 

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.823
525
Hier das ganze mal mit Sprachen und Freifeld für die Kategorientitel. Also die Überschrift , wenn vorhanden aus dem Freifeld, sonst die normale Überschrift:

Code:
                {block name='productlist-header-description-heading'}
                    {if $lang == 'ger'}
                        {assign var=lang_neu value="kategorietitel"}
                    {else}
                        {assign var=lang_neu value="kategorietitel_en"}
                    {/if}
                  
                    {assign var=kattitel value="`$lang_neu`"}
                        {if $AktuelleKategorie->categoryFunctionAttributes.$kattitel != ""} 
                            <h1 class="h2">{$AktuelleKategorie->categoryFunctionAttributes.$kattitel}</h1>
                        {else}
                            <h1 class="h2">{$oNavigationsinfo->getName()}</h1>
                        {/if}
                {/block}
 

ChrisTS

Sehr aktives Mitglied
15. Oktober 2010
371
61
Nochmals zur Vervollständigung und 2 sprachig, für alle die nicht gleich klarkommen.

1. In JTL Admin> Eigene Felder>Bereich Kategorie>2 Felder anlegen
- kategorietitel
- kategorietitel_en

2. /templates/child/productlist/header.tpl änder

Suchen:

{if $oNavigationsinfo->getName() && $showTitle}
<div class="title">
{opcMountPoint id='opc_before_heading'}
{block name='productlist-header-description-heading'}
<h1 class="h2">{$oNavigationsinfo->getName()}</h1>
{/block}
</div>
{/if}

Ersetzen:

{block name='productlist-header-description-heading'}
{if $lang == 'ger'}
{assign var=lang_neu value="kategorietitel"}
{else}
{assign var=lang_neu value="kategorietitel_en"}
{/if}

{assign var=kattitel value="`$lang_neu`"}
{if $AktuelleKategorie->categoryFunctionAttributes.$kattitel != ""}
<h1 class="h2">{$AktuelleKategorie->categoryFunctionAttributes.$kattitel}</h1>
{else}
<h1 class="h2">{$oNavigationsinfo->getName()}</h1>
{/if}
{/block}