Neu CSS-Klasse aus den Kategorieattributen werden nicht im Shop integriert

Mander

Aktives Mitglied
25. Oktober 2016
42
1
Hallo Community,

eines vorweg: das Thema berührt sowohl die WaWi als auch den JTL Shop (V4.04), jedoch vermute ich, dass das Problem mehr von Seiten der WaWi kommt, daher platziere ich das Thema hier im Forum.

Ich möchte gerne einem Item in meinem Hauptmenü eine css-Klasse verpassen. Da der komplette JTL-Shop über die WaWi gesteuert wird, habe ich also für die entsprechende Kategorie die Kategoriedetails aufgerufen und dort unter "Attribute" eine css-Klasse angelegt. Leider erscheint die css-Klasse nicht im Shop.

Dinge, die ich bereits gemacht habe:
  1. Shop-Update von der WaWi aus
  2. Cache komplett geleert
  3. "Attributwert überschreiben für ONLINESHOP" in den Kategorieattribut-Einstellungen sind aktiviert
Möglicherweise stehe ich auch total auf dem Schlauch, jedoch wäre ich für jede Hilfe sehr dankbar!

Schon mal einen guten Start ins Wochenende!
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.650
2.702
Berlin
Firma
css-umsetzung
Also wenn ich mir das Menü Template anschaue, sehe ich nicht, das dieses Attribut abgefragt wird.
In der Beschreibung die ich grade gelesen hatte steht, das es im Link eingesetzt wird, aber die klassen dort sind nicht dynamisch.
 

Mander

Aktives Mitglied
25. Oktober 2016
42
1
Danke für die Antwort!
Gibt es eine andere Möglichkeit, Links in der Hauptnavigation eine css-Klasse oder wenigstens eine Regel zu verpassen?
 

zentiva

Aktives Mitglied
18. März 2014
36
2
Viersen
Firma
eSales4u
Wie wird denn das Attribut abgefragt? In der Beschreibung habe ich gelesen, dass es mit

PHP:
$Kategorien = new KategorieListe();
$Kategorien->getAllCategoriesOnLevel( 0 );
foreach ($Kategorien->elemente as $Kategorie) {
  $Kategorie->KategorieAttribute["meinkategorieattribut"];
}

in der functions.php (Child-Template: php/functions.php) gehen soll.
Im Template "categories_mega.tpl" muss dann wohl noch der folgende Code eingebaut werden:
PHP:
{$oNavigationsinfo->oKategorie->KategorieAttribute.meinkategorieattribut}

Für "meinkategorieattribut" habe ich nun "css_klasse" eingesetzt, weil ja genau diesen Eintrag möchte ich dann im Link als "class= .x." haben.
Soweit so gut, nur bleibt das Feld leer.

Wo steckt denn der Fehler?
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.650
2.702
Berlin
Firma
css-umsetzung
Du musst doch da gar nichts machen?

gib der Kategorie das vorgegebene Attribut css_klasse

in deinem Template erweiterst du dann das li mit

Code:
{if isset($category->categoryFunctionAttributes.css_klasse)} {$category->categoryFunctionAttributes.css_klasse} {/if}  kat-number-{$category->kKategorie}

Ich habe auch die ID der Kategorie eingebunden, damit man wenn man möchte,, diese auch extra ansprechen könnte, ich halte das für Sinnvoll.

dann sieht mein li der obersten ebene beispielsweise so aus:

Code:
<li class="{if isset($category->categoryFunctionAttributes.css_klasse)} {$category->categoryFunctionAttributes.css_klasse} {/if}  kat-level-{$category->kKategorie} {if $isDropdown}dropdown megamenu-fw{/if}{if $category->kKategorie == $activeId || (isset($activeParents[0]) && $activeParents[0]->kKategorie == $category->kKategorie)} active{/if}">

Du musst da nichts in der functions rumfummeln.
 
  • Gefällt mir
Reaktionen: zentiva

zentiva

Aktives Mitglied
18. März 2014
36
2
Viersen
Firma
eSales4u
Oh vielen Dank für die rasche Antwort....

Die ID der Kategorie wird nun angezeigt, die CSS-Klasse leider immer noch nicht.
Mit der ID kann ich aber auch leben. 🙂

Nochmal vielen Dank!
 

zentiva

Aktives Mitglied
18. März 2014
36
2
Viersen
Firma
eSales4u
nochmals vielen Dank für die Mühe!
Auch das Häkchen ist nun gesetzt.... alles übertragen... und ging immer noch nicht.

Nach einigen Tests und Spielereien mit den Variablen habe ich eine Lösung gefunden:
anstatt
$category->categoryFunctionAttributes.css_klasse
funktioniert dies
$category->KategorieAttribute.css_klasse

viele Grüße
PS: Wo kann man denn mehr erfahren über die Zusammensetzung der Variablen?
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.650
2.702
Berlin
Firma
css-umsetzung
Ja, es gibt zwei arrays die gefüllt werden (bei mir, daher habe ich die erste genommen die vorhanden war)

Es gibt dafür keine echte Docu, alles ist TryAndError. Nutze dafür am besten den mitgelieferten debugger oder gib in deinem Template einfach die Variable aus,
das könntest du wenn das system live und du aber trotzdem debug Sachen ausgeben möchtest, ist beispielsweise so regeln:

Code:
{if isset($smarty.get.zeigewas)}
 <pre>
   {$category|print_r}
 </pre>
{/if}

das $category jetzt die BeispielsVariable, das könnte auch $Artikel oder etwas anderes sein wenn du in den Artiklen bist.

wenn du jetzt deine Seite aufrufst und als zusatz ?zeigewas hinten dran hängst, dann bist du der einzige der sieht was ales in der variable enthalten ist.
DIe User würden das nicht sehen.

für IchMöchteSchnellMalSchauen Admins ist meins die schnellere Lösung als ständig den Debugger zu starten.
 

zentiva

Aktives Mitglied
18. März 2014
36
2
Viersen
Firma
eSales4u
Okay... dann hab ich mit der Spielerei ja alles richtig gemacht! 😉

Vielen Dank für deinen Tipp mit dem Eigenbau-Debugger-Schnipsel! 🙂
 

Ähnliche Themen