Hallo,
ich arbeite im Auftrag für die Website - nicht für die Wawi (mit der Wawi hab ich absolut nix am Hut).
Mein Auftraggeber hat seit bestehen des Shop die o.g. Einstellung auf "nein". Template basiert auf Tiny.
Die letzten Tage hat er neue Kategorieboxen auf dem Live-Shop angelegt und entsprechend verschiedenen Kategoriezweigen die Box-ID in der Wawi als Kategorie-Attribut hinzugefügt.
Das funktioniert so, wie es soll:
Ich bau gerade ein HTML5 responsive Theme ebenfalls basierend auf Tiny. In der funktions.php hatte ich nur paar CSS-Klassen getauscht. Beim entwickeln fand ich die Page-Requests auf Smartphones nervig, die man eben hat, wenn man von Unterkategorie zu Unterkategorie hüpft.
Problem gelöst: Auf dem Test-Shop *alle cats aufklappen = "ja"*
Bei kleinen Display fang ich dort jeweils die Elternkategorie mit JS ab, damit der User tatsächlich durch ein Menü klicken kann, währen der Desktop-User hingegen bei Klick auf den selben Link die Seiten der Unterkategorien aufruft.
Mein Auftraggeber hat heut beschlossen den gesamten Live-Shop in den Test-Shop zu laden. Mit einem Unterschied: *alle cats aufklappen = "ja"*
Jede Box, die irgendwo als Kategoriebox geladen wird und der Kategoriezweige explizit zugewiesen sind, rendert mit der Einstellung "ja" den gesamten Baum beginnend ab root. Das sieht dann so aus:
Debug (id und parentId als data-attr):
Standard-Tiny anmachen und guggen, was JTL als Standard definiert.
Beim Standard-Tiny passierte hier nur leider gar nichts:
DOM sieht in beiden Fällen so aus: *alle cats aufklappen = "ja"* und *alle cats aufklappen = "nein"*
Wenn ichs ganz abstrakt betrachte, arbeitet die Einstellung, vgl 1. Screenshot, richtig, weil es per Definition heißt: render alles, was Du nur finden kannst.
Ich hab jetzt eine Stunde lang geprüft wo der Fehler liegen könnte: JS, das Box-Template, das Live-Shop-Template... jeweil mit Einstellung "ja" und "nein".
Und komme zu folgendem Ergebnis: es fehlt ein zusätzliches if. Ein Filter, der dann greift, wenn minstestens einer Kategorie dieses Attribut vergeben wurde. Dort wird dann einfach abgefragt, ob die Kategorie eine abweichende Elternbox via Kategorie-Atrribut hat und wenn ja: klammer sie bei der StandardBox aus und zeige sie nur in der per Attribut zugewisenen KategorieBox-ID.
Expected:
Ich hab gerade nen Session-Dump gemacht, um die Struktur zu verstehen und ich hab ein paar Fragen (wie o. g. mit der Wawi hab ich nix zu tun):
Ich danke für eure Aufmerksamkeit und wünsche noch einen angenehmen Abend.
ich arbeite im Auftrag für die Website - nicht für die Wawi (mit der Wawi hab ich absolut nix am Hut).
Mein Auftraggeber hat seit bestehen des Shop die o.g. Einstellung auf "nein". Template basiert auf Tiny.
Die letzten Tage hat er neue Kategorieboxen auf dem Live-Shop angelegt und entsprechend verschiedenen Kategoriezweigen die Box-ID in der Wawi als Kategorie-Attribut hinzugefügt.
Das funktioniert so, wie es soll:
Code:
*alle cats aufklappen = "nein"*
<box4> - lade hersteller1 ID ohne Kinder hier rein, weil du kategorie-attr box4 hast
<box5> - lade hersteller2 ID ohne Kinder hier rein, weil du kategorie-attr box5 hast
Ich bau gerade ein HTML5 responsive Theme ebenfalls basierend auf Tiny. In der funktions.php hatte ich nur paar CSS-Klassen getauscht. Beim entwickeln fand ich die Page-Requests auf Smartphones nervig, die man eben hat, wenn man von Unterkategorie zu Unterkategorie hüpft.
Problem gelöst: Auf dem Test-Shop *alle cats aufklappen = "ja"*
Bei kleinen Display fang ich dort jeweils die Elternkategorie mit JS ab, damit der User tatsächlich durch ein Menü klicken kann, währen der Desktop-User hingegen bei Klick auf den selben Link die Seiten der Unterkategorien aufruft.
Mein Auftraggeber hat heut beschlossen den gesamten Live-Shop in den Test-Shop zu laden. Mit einem Unterschied: *alle cats aufklappen = "ja"*
Jede Box, die irgendwo als Kategoriebox geladen wird und der Kategoriezweige explizit zugewiesen sind, rendert mit der Einstellung "ja" den gesamten Baum beginnend ab root. Das sieht dann so aus:
Code:
*alle cats aufklappen = "ja"*
<box4>
- lade hersteller1 ID und seine Kinder hier rein
- lade hersteller2 ID und seine Kinder hier rein
<box5>
- lade hersteller1 ID und seine Kinder hier rein
- lade hersteller2 ID und seine Kinder hier rein
Debug (id und parentId als data-attr):
Standard-Tiny anmachen und guggen, was JTL als Standard definiert.
Beim Standard-Tiny passierte hier nur leider gar nichts:
DOM sieht in beiden Fällen so aus: *alle cats aufklappen = "ja"* und *alle cats aufklappen = "nein"*
Wenn ichs ganz abstrakt betrachte, arbeitet die Einstellung, vgl 1. Screenshot, richtig, weil es per Definition heißt: render alles, was Du nur finden kannst.
Ich hab jetzt eine Stunde lang geprüft wo der Fehler liegen könnte: JS, das Box-Template, das Live-Shop-Template... jeweil mit Einstellung "ja" und "nein".
Und komme zu folgendem Ergebnis: es fehlt ein zusätzliches if. Ein Filter, der dann greift, wenn minstestens einer Kategorie dieses Attribut vergeben wurde. Dort wird dann einfach abgefragt, ob die Kategorie eine abweichende Elternbox via Kategorie-Atrribut hat und wenn ja: klammer sie bei der StandardBox aus und zeige sie nur in der per Attribut zugewisenen KategorieBox-ID.
Expected:
Code:
*alle cats aufklappen = "ja"*
<box4>
- lade hersteller1 ID und seine Kinder hier rein, weil du kategorie-attr box4 hast
<box5>
- lade hersteller2 ID und seine Kinder hier rein, weil du kategorie-attr box5 hast
Ich hab gerade nen Session-Dump gemacht, um die Struktur zu verstehen und ich hab ein paar Fragen (wie o. g. mit der Wawi hab ich nix zu tun):
- Ich kann in der Wawi eine im Kategorie-Attribut "kategoriebox" mehrere KategorieBox-IDs zuweisen, oder nur eine (ist es immer int oder auch mal ein Array)?
Code:["KategorieAttribute"]=> array(2) { ["kategoriebox"]=> string(1) "2"
- in der box_kategorien.tpl steht das hier (reduziert):
PHP:{assign var="nID" value=$oBox->kCustomID} {if isset($cKategorielistenHTML_arr[$nID])} {if $Einstellungen.template.categories.sidebox_categories_full_category_tree == "Y"} {$full_category_tree} {* <- ursache *} {else} {$cKategorielistenHTML_arr[$nID]} {/if} {/if}
PHP:$smarty->assign('full_category_tree', get_categories($VerzweigungsKategorie, $RestArray, $tiefe, $current_cat_key, $KategorieBox, true));
Egal ob im Template oder an der PHP-Funktion rumschnitzen: beides setzt vorraus, dass man die Session kennt. - Wie ist das Standard-Verhalten, wenn mein Kunde einer Kind-Kategorie ein "kategoriebox"-Atrribut zuweißt?
Annahme:
Code:box4 hersteller1 produktserie1
wird zu (A)?
Code:box4 hersteller1 box5 produktserie1
Oder passiert dann das hier (B)?
Code:box4 hersteller1 box5 hersteller1 produktserie1
- Ich such einen Ansatz von jemandem der die Session kennt und mir sagen kann, wie ich mein if einbaue um Konflikte (auch etwaige zukünftige) auszuschließen. Der einzige Grund, warum ich mich, ohne vorher hier zu fragen, weigere, an den PHP-Files rumzufummeln, ist der Umstand, dass ich auf dieses PHP4-Gematsch nicht klarkomme und nix kaputt machen will. Der Shop-Code ist zerbrechlich wie eine Glasvase.
- Wie auch immer das Ergebnis auf diesen Thread ausfällt, möchte ich vorschlagen, diesen, eigentlich zusätzlichen, Filter direkt im Tiny-Template zu verankern. Denn wenn ich das auf dem Testshop richtig sehe, hat jeder Tiny-Benutzer das Problem?
Ich danke für eure Aufmerksamkeit und wünsche noch einen angenehmen Abend.