Multishop - Bug in Navigation (EE 4.2.0_23610) ?

Hallo,

bei der Navigationsdarstellung in Subshops (1 Kategorieebene) werden mir auch Kategorien vom Elternshop als auch von den Schwesternshops dargestellt.

[B]Hier der Aufbau der Mulit-Shops:[/B]

Elternshop: [ul]
[li] hat alle Artikel[/li][li] hat alle Kategorien wie im Demo-Shop[/li][/ul]
Subshop: [ul]
[li] hat Topkategorie Topcat1[/li][li] hat Subkategorie Subcat1[/li][li] erbt alle Produkte von Elternshop[/li][/ul]
Subshop2: [ul]
[li] hat Topkategorie Top1[/li][li] hat Subkategorie Sub1[/li][li] erbt alle Produkte von Elternshop[/li][/ul]
Wenn ich jetzt in Subshop bin, sehe ich auf der Startseite in der Navigation nur Topcat1 als Kategorie der 1.Ebene.
Wenn ich nun in Topcat1 reingehe, werden mir in der 1. Navigationsebene alle Kategorien der 1.Ebene aus allen 3 Shops angzeigt.

[B]Meine Frage:[/B]
Ist das ein Bug ?
Habe ich im Admin-Tool vergessen etwas einzustelllen ?

[B]Meine Teil-Lösung für das Problem:[/B]
Im Navigations-Code im Template prüfe ich vor Darstellung einer Top-Kategorie, ob die aktuelle Top-Kategorie die gleiche Shop-ID hat wie die aktuelle Shop-ID.

Leider funktioniert das nur, wenn ich auf eine Top-Kategorie klicke. Nach Klick auf einer Sub-Kategorie wird mir in der Navigation nichts mehr gezeigt, da er für $ocat->oxcategories__oxshopid->value keinen Wert mehr erhählt

[{if $oViewConf->getActiveShopId() == $ocat->oxcategories__oxshopid->value}]
      [{* Links zu Top-Kat ausgeben*}]
[{/if}]

[B]UPDATE:[/B]

Dachte das wäre die Lösung. Zeigt aber leider bei aktiver Subkategorie nur deren Parent-Kategorie.
Von daher verwerfe ich die Lösung

Hallo,

hier mein Workaround:

Ich habe die Navigation in den inc-Ordner als eigene Template-Datei ausgelagert.

Beim Aufruf der Navigationsdatei in _header.tpl:


[{ include file="inc/navigation.tpl" [B]act=$oxcmp_categories->getClickCat() [/B]}]

[B]In der navigation.tpl prüfe ich dann:[/B]


[{assign var="clickParent" value="empty"}]
[{if isset($act)}]
 [{assign var="clickParent" value="`$act->oxcategories__oxparentid->value`"}]            	         
[{/if}]
....
[{foreach from=$oxcmp_categories item=ocat key=catkey name=root}]         
  [{if $ocat->getIsVisible() }]              	
    [{ if ($clickParent == "oxrootid" && isset($act) && $act->getId() == $ocat->getId()) || $clickParent == "empty" || ($clickParent == $ocat->getId()) }]
	   CODE FÜR AUSGABE NAVIPUNKT
	[{/if}]
  [{/if}]
[{/foreach}] 


Trotzdem interessiert es mich immer noch, ob das jetzt ein Bug ist oder nicht.

Hi,

sorry, mohakl, habe das Problem nicht verstanden. Kommst Du nochmal frisch rein mit einer Kurzbeschreibung?

Danke und Gruß

Hallo Marco,

danke, dass Du Dich dem Thema annimmst.

[B]Problembeschreibung:[/B]
Wir verwenden 3 Sub-Shops in unserer Enterprise Version. Alle 3 erben die Produkte vom Eltern-Shop.

Das Problem ist die Darstellung der Navigation. Sobald ich in eine Top-Kategorie gehe, werden mir alle Top-Kategorien [B]aller[/B] Shops angezeigt.

[B]Beispiel:[/B]
Shop A hat Top-Kategoiren: Audi,BMW,Mercedes
Shop B hat Top-Kategorien: Tische, Stühle, Küchen
Shop C hat Top-Kategorien: Pop, Rock, Klassik

Ich befinde mich in Shop A auf der Startseite. Ich sehe alle Top-Kategorien in der Navigation (Audi, BMW, Mercedes). Jetzt gehe ich in die Audi-Kategorie rein.
Und [B]von nun an[/B] werden mir alle Top-Kategorien aller Shops angezeigt, also: Audi, BMW, Mercedes, Tische, Stühle, Küchen, Pop, Rock, Klassik.

[B]Erster Lösungsversuch[/B]
Das Problem wollte ich mit folgendem Code-Snippet lösen:

[QUOTE=mohakl;18613]

[{if $oViewConf->getActiveShopId() == $ocat->oxcategories__oxshopid->value}]
      [{* Links zu Top-Kat ausgeben*}]
[{/if}]

[/QUOTE]

Hier war das Problem, dass $ocat->oxcategories__oxshopid->value mir keinen Wert zurückgibt, obwohl es die Spalte in der Tabele oxcategories gibt.
Hier kenne ich mich aber auch noch nicht so richtig gut aus. Vielleicht ist das ja ganz normal, dass es nichts zuückgibt. Das verstehe ich noch nicht so ganz, ist aber ein anderes Thema.

[B]Aktuelle Lösung:[/B]
Wir haben ein Modul geschrieben, dass aufgrund einer CategoryID die dazugehörige Shop-ID zurückgibt. Dies ersetzt $ocat->oxcategories__oxshopid->value in der obigen if-Abfrage.

Die Navigation funktioniert jetzt zwar, aber ich denke das ist ein Bug. Außer ich habe etwas im Adminbereich falsch eingestellt.

Hi,

ein Bug ist natürlich nicht ausgeschlossen aber die Wahrscheinlichkeit der falschen Einstellungen im Admin ist größer. Um ganz ehrlich zu sein, stecke ich auch in der EE- und Mandanten-Problematik nicht mehr so drin; hab mir das in der 4er kaum anschauen können. Ich hab Olli informiert, der auf Dich zukommen wird. Ich hoffe, das ist für Dich ok…

Gruß

[QUOTE=mohakl;19144]
Hier war das Problem, dass $ocat->oxcategories__oxshopid->value mir keinen Wert zurückgibt, obwohl es die Spalte in der Tabele oxcategories gibt.
Hier kenne ich mich aber auch noch nicht so richtig gut aus. Vielleicht ist das ja ganz normal, dass es nichts zuückgibt. Das verstehe ich noch nicht so ganz, ist aber ein anderes Thema.[/QUOTE]
Ich vermute mal, dass “$ocat” nicht diesen Wert enthält…

Setze doch mal eine “[{debug}]”-Anweisung in das Template, um zu sehen, ob und und in welchem Objekt sich “oxcategories__oxshopid->value” versteckt.

Hallo Marco, hallo avenger,

danke für Eure Hilfe.
[B]
Also es scheint so, dass sich der Fehler von alleine gelöst hat.[/B] Wir mussten demletzt nocheinmal eine Neuinstallation machen. Seitdem hatte ich das Problem nicht mehr angeschaut, da wir ja schon eine Ersatzlösung gefunden hatten.

Jetzt habe ich das beschriebene Problem nicht mehr :slight_smile:

Der Tip mit [{debug}] war auch super. Ich hatte das zwar mal in der Doku gelesen aber wohl schon wieder vergessen. Das wird mir zukünftig die Arbeit erleichtern.

Danke.