Neu Abfrage der Kategorie FunctionAttributes JTL 5 Shop Nova-Template

lemondo

Mitglied
10. Oktober 2020
3
1
Hallo zusammen 🙂

Ich habe ein Problem mit den Eigenen Feldern für die Kategorie. Ich kriege einfach keine Ausgabe im Template hin.

Folgenden Abfrage habe ich ausprobiert ohne Ergebnis:

{$Kategorie->categoryFunctionAttributes.meinAttributeName}

Kann mir einer auf die Sprünge helfen? Ich werde noch Wahnsinnig 🙂

Die Ausgabe der Artikel Attribute mit {$Artikel->FunktionsAttribute.meinAttributeName} läuft problemlos.

Liebe Grüße lemondo
 
Zuletzt bearbeitet:

Patrick Gugelsberger

Moderator
Mitarbeiter
1. Februar 2019
454
78
Hi @lemondo,

die richtige Variable wäre hier:

$AktuelleKategorie->KategorieAttribute.meinEigenesFeld oder halt $AktuelleKategorie->categoryFunctionAttributes.meinEigenesFeld

Wird beides befüllt 🙂 Ich kann dir bei sowas das Plugin "JTL-Debug" empfehlen, sobald du dieses aktiviert hast kannst du im Frontend durch drücken von "STRG+Enter" bequem nach Variablen und entsprechenden Werten suchen.
 
  • Gefällt mir
Reaktionen: lemondo

ple

Sehr aktives Mitglied
20. August 2019
913
196
Kann das sein, dass die Unterkat, die es im Shop 4 noch gib, im Shop 5 entfernt wurden? Die fehlen mir anscheinend im Shop 5, bin gerade damit angefangen und das wäre mein erstes Problem.
 

ple

Sehr aktives Mitglied
20. August 2019
913
196
Im Shop 4 lasse ich mir eigene Felder in der Auflistung der Unterkategorien mit anzeigen und hänge das mit an den Namen
1610450955521.png

Dafür gab es die Variable
$oUnterKategorien_arr
die scheint es aber im Shop 5 nicht mehr zu geben.
 

MHillmann

Moderator
Mitarbeiter
11. Oktober 2018
1.376
547
Die Smarty-Variable $oUnterKategorien_arr gibt es auch weiterhin im Shop. Lass sie dir vielleicht einfach mal im Template ausgeben mit

Code:
{$oUnterKategorien_arr|var_dump}
Dann siehst du auch gleich die Struktur. Suchst du die Attribute?

Code:
{foreach $oUnterKategorien_arr as $subCategory}
   {$subCategory->getAttributes()|var_dump}
   {$subCategory->getFunctionalAttributes()|var_dump}
{/foreach}
 

ple

Sehr aktives Mitglied
20. August 2019
913
196
Kurz davor, den Inhalt der Variable habe ich jetzt gefunden, aber wie kann ich mir die Ausgeben lassen?
Code:
{$subCategory->FunctionAttributes['suffix de']}
klappt leider nicht.
Das kommt davon, wenn man sich nur alle halbe Jahre sich mit den Shop beschäftigt.

Gruß und Danke
 

MHillmann

Moderator
Mitarbeiter
11. Oktober 2018
1.376
547
probier es mal so:

Code:
{$functionalAttributes=$subCategory->getFunctionalAttributes()}
{if isset($functionalAttributes['suffix de'])}
    {$functionalAttributes['suffix de']}
{/if}
 

ple

Sehr aktives Mitglied
20. August 2019
913
196
Jo, das klappt, besten Dank.
Ist ein wenig länger als im Shop 4, aber na gut, hauptsache es läuft.
 

lemondo

Mitglied
10. Oktober 2020
3
1
Hi @lemondo,

die richtige Variable wäre hier:

$AktuelleKategorie->KategorieAttribute.meinEigenesFeld oder halt $AktuelleKategorie->categoryFunctionAttributes.meinEigenesFeld

Wird beides befüllt 🙂 Ich kann dir bei sowas das Plugin "JTL-Debug" empfehlen, sobald du dieses aktiviert hast kannst du im Frontend durch drücken von "STRG+Enter" bequem nach Variablen und entsprechenden Werten suchen.

Vielen Dank Patrick

Ich hab rausgefunden das die folgende Variable auch zum Ziel führt: {$oNavigationsinfo->oKategorie->categoryFunctionAttributes.meinEigenesFeld}

Bei deiner Variablen besteht das Problem das die Abfrage auch beim Aufruf der Artikel in der jeweiligen Kategorie ausgegeben wird.

Das Heist in meinem Fall wird der im Footer befindliche SEO Content nicht nur im Footer der Jeweiligen Kategorie ausgegeben sondern auch im Footer in den Artikeln die sich in dieser befinden.

lg lemondo

ps. Das "JTL-Debug" Plugin werde ich ausprobieren Danke für den Tip 🙂
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Patrick Gugelsberger

edding18

Sehr aktives Mitglied
10. August 2018
173
25
Genauso hab ich's auch gemacht. Statt wie beim JTL Shop 4

Code:
{$AktuelleKategorie->KategorieAttribute.meinFunktionsAttribut}

hab ich jetzt beim JTL Shop 5:

Code:
{$oNavigationsinfo->oKategorie->categoryFunctionAttributes.meinFunktionsAttribut}
 

edding18

Sehr aktives Mitglied
10. August 2018
173
25
So müsste es bei dir gehen:

{$oNavigationsinfo->getCategory()->getCategoryFunctionAttribute('zweite_beschreibung_kategorie')}

Wir haben auch ein eigenes Funktionsattribut für eine Kurzbeschreibung und das klappt, das im Template auszugeben.

Im Smarty Debug vermisse ich es aber auch!
 
  • Gefällt mir
Reaktionen: csaeum

edding18

Sehr aktives Mitglied
10. August 2018
173
25
Über den Code

{$catFunctAttribs = $oNavigationsinfo->getCategory()->getCategoryFunctionAttributes()}
{$catFunctAttribs|@print_r}

Kannst Du dir testweise auf einer Kategorie-Seite alle Funktions-Attribute auf einmal ausgeben lassen.
 
  • Gefällt mir
Reaktionen: csaeum

csaeum

Sehr aktives Mitglied
23. Juli 2011
1.347
147
Küps
Danke hat geklappt.

Auf den Kategorieseiten wird nun alles angezeigt wie ich es möchte.

Frage mich nur gerade warum auf den Merkmalseiten ich nun diesen Fehler bekomme:

Fatal error: Uncaught Error: Call to a member function getCategoryFunctionAttributes() on null in /var/www/html/jtl5-Projekt/templates_c/NOVAChild/96521857e687e38ee51aa50decd0f25bc0ac073c_0.file.header.tpl.php:151 Stack trace: #0 /var/www/html/jtl5-Projekt/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_inheritance.php(248): Block_88299591966786a67a9f818_20316533->callBlock(Object(JTL\Smarty\JTLSmartyTemplateClass)) #1 /var/www/html/jtl5-Projekt/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_inheritance.php(184): Smarty_Internal_Runtime_Inheritance->callBlock(Object(Block_88299591966786a67a9f818_20316533), Object(JTL\Smarty\JTLSmartyTemplateClass)) #2 /var/www/html/jtl5-Projekt/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_inheritance.php(186): Smarty_Internal_Runtime_Inheritance->process(Object(JTL\Smarty\JTLSmartyTemplateClass), Object(Block_88299591966786a67a9f818_20316533), Object(Block_133754000666786425721192_65853973))
Ich mach eigentlich eine Abfrage per IF ob das Attribut gesetzt ist
{if $oNavigationsinfo->getCategory()->getCategoryFunctionAttribute('zweites_bild_kategorie') != ""}
auch mit isset keine Besserung

Wie gesagt auf den Kategorien klappt allles aber nicht bei den Merkmalen
 

edding18

Sehr aktives Mitglied
10. August 2018
173
25
Ich bin jetzt nicht 100% im Thema drin, aber es sieht so aus, als gäbe es kein "Kategorie"-Objekt. Ist eine "Merkmalseite" denn eine "Kategorie-Seite"?
 

csaeum

Sehr aktives Mitglied
23. Juli 2011
1.347
147
Küps
Ja das stimmt. Aber die Merkmale werden über das gleiche Smarty Template geladen.

Daher habe ich hier nochmal nachgefragt.

Dann muss ich mal schauen was morgen vielleicht ein paar sagen.
 

NoOne

Sehr aktives Mitglied
16. März 2024
678
233
Du kannst nicht mit dem getter für das Attribut an sich testen, ob das Element überhaupt existiert. Du kannst z.B. über das Array prüfen, ob das Funktionsattribut existiert:

Code:
{if array_key_exists('zweites_bild_kategorie', $oNavigationsinfo->getCategory()->categoryFunctionAttributes)}Existiert!{/if}
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.705
2.732
Berlin
Firma
css-umsetzung
Danke hat geklappt.

Auf den Kategorieseiten wird nun alles angezeigt wie ich es möchte.

Frage mich nur gerade warum auf den Merkmalseiten ich nun diesen Fehler bekomme:


Ich mach eigentlich eine Abfrage per IF ob das Attribut gesetzt ist
{if $oNavigationsinfo->getCategory()->getCategoryFunctionAttribute('zweites_bild_kategorie') != ""}
auch mit isset keine Besserung

Wie gesagt auf den Kategorien klappt allles aber nicht bei den Merkmalen
Du solltest auch abfragen ob es sich überhaupt um eine Kategorie handelt 😉

PHP:
{if $oNavigationsinfo->getCategory() !== null && $oNavigationsinfo->getCategory()->getCategoryFunctionAttribute('zweites_bild_kategorie') != ""}
 

Ähnliche Themen