Neu Artikel aus Unterkategorien in Oberkategorie anzeigen

  • Ersteller des Themas Ersteller des Themas zlep
  • Erstellungsdatum Erstellungsdatum

zlep

Aktives Mitglied
29. Juli 2019
21
0
Hallo,

gibt es eine Möglichkeit, per Template die Artikel aus den Unterkategorien auch in den jeweiligen Oberkategorien anzuzeigen? Normalerweise ist das bei anderen Shop-Softwaren Standard bzw. kann einfach im Backend eingestellt werden. Bei jtl scheint das aber nur direkt in der Wawi per Kopieren der Artikel in die jeweilige Oberkategorie machbar zu sein. Das ist keine gute Lösung, weswegen ich es per Template versuche.

In /templates/produclist/index.tpl habe ich die foreach-Schleife für die Darstellung der Produkte gefunden:

Code:
        {block name="productlist-results"}
        <div class="row {if $style !== 'list'}row-eq-height row-eq-img-height{/if} {$style}" id="product-list" itemprop="mainEntity" itemscope itemtype="http://schema.org/ItemList">
            {foreach name=artikel from=$Suchergebnisse->Artikel->elemente item=Artikel}
                <div class="product-wrapper {$grid}" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
                    <meta itemprop="position" content="{$smarty.foreach.artikel.iteration}">
                    {if $style === 'list'}
                        {include file='productlist/item_list.tpl' tplscope=$style}
                    {else}
                        {include file='productlist/item_box.tpl' tplscope=$style class='thumbnail'}
                    {/if}
                </div>
            {/foreach}
        </div>
        {/block}

Allerdings wüsste ich jetzt spontan nicht, wie ich die Schleife anpassen muss, um mein Ziel zu erreichen. Falls die Schleife dafür überhaupt zuständig ist.

Danke
 

zlep

Aktives Mitglied
29. Juli 2019
21
0
Hm, danke, aber das müsste sich doch defintiv per Template lösen lassen. Die functions.php enthält ja alle Funktionen und diese werden ja in den Templates aufgerufen. Man müsste also nur die richtige Funtion in einer foreach für die Kategorien durchlaufen lassen.
 

NETZdinge.de

Sehr aktives Mitglied
7. April 2010
2.670
420
Wenn du meinst... 😉 poste gern das Ergebnis... ich meine: über das Template geht es nicht...
 

zlep

Aktives Mitglied
29. Juli 2019
21
0
Dann wäre ein anderer Hinweis, als ein Plugin verkaufen zu wollen, dennoch hilfreicher. Irgendwie muss es ja gehen.
 

NETZdinge.de

Sehr aktives Mitglied
7. April 2010
2.670
420
Gerne: einfach selbst ein Plugin schreiben welches die MySQL Anfragen so manipuliert, dass auch die Artikel der Unterkategorien rekursiv geladen werden... die Hooks habe ich grad nicht im Kopf, aber einfach mal nach „docs JTL“ googlen, da steht dann alles zu Plugins...

Ob sich das lohnt, statt was fertiges mit Support zu kaufen, muss jeder natürlich selbst entscheiden. Aber alles andere greift in den core des Shops ein und damit ist keine Updatesicherheit gegeben...
 
  • Gefällt mir
Reaktionen: hula1499

martinwolf

Offizieller Service Partner
SPBanner
6. September 2012
3.724
355
Dann wäre ein anderer Hinweis, als ein Plugin verkaufen zu wollen, dennoch hilfreicher. Irgendwie muss es ja gehen.
Bitte hab Verständnis dafür, dass User wie etwa NETZdinge.de oder auch meine Wenigkeit mit solchen Anpassungen ihren Lebensunterhalt verdienen und wir hier out of the box keine fetigen Codes für solche, doch recht umfangreichen Änderungen publizieren, vor allem nicht kostenfrei.

Zu deiner Anmerkungen oben, "die functions.php enthält ja alle Funktionen": Nein, dem ist nicht so. Die functions.php ist eine eigene Funktiosndatei des Templates. Diese enthält folglich nur Funktionen, die innerhalb des Templates benötigt werden. Natürlich hat diese Zugriff auf viele Core-Funktionen und Klassen des Shops, aber für Dein Vorhaben funktiniert dieser Weg nicht.

Aber warum ist das so? Ganz einfach: Die Artikellsiten werden über den Shop-Core über die navi.php und die filter.php erzeugt. Diese ziehen sich, je nach Sichtbarkeit der Katgeorien und Artikel, alle Infos direkt aus der DB und erzeugen eine Liste von Artikeln. Diese Liste kannst Du NICHT auf Template-Ebene verändern, da hier zahlreiche Abhängigkeiten bestehen. Beispielsweise die ermittelte Anzahl der Artikel die nun für diese Kategorie verfügbar sind oder auch welche Filter für diese Ansicht zur Verfügung stehen sollen. Das kannst Du nur auf Pluginebene manipulieren indem Du dafür vorgefertigte HOOKs ansprichst und dich in den Core einklingst.
 

zlep

Aktives Mitglied
29. Juli 2019
21
0
Ok, danke, das ist zumindest eine Aussage, die weiterhilft. Schade, dass jtl eine so essenzielle Funktion nicht von Haus aus zur Verfügung stellt.

Was ich jetzt mal installiert habe, ist das smarty debug Plugin. Damit sehe ich zumindest mal, welche Variablen zur Verfügung stehen. Gibt es irgendwo noch hilfreiche Tipps, wie man bspw. eine Funktion und Werte aufruft? Also bspw.:

get_product_list -> Artikel -> Artikelname

Was ich bisher finden konnte, war

{get_product_list}

Diese enthält ja z.B. kArtikel

Edit: Habe es in der Dokumentation gefunden.
 
Zuletzt bearbeitet:

NETZdinge.de

Sehr aktives Mitglied
7. April 2010
2.670
420
Genau das wollte ich oben damit sagen. Nur nicht so aufgedröselt weil ohne Plugin kommt man da eben nicht sinnvoll ran.
 

zlep

Aktives Mitglied
29. Juli 2019
21
0
Ja, nur ist es halt meiner Meinung nach immer besser, wenn man wenigstens einen kurzen Grund angibt, damit andere es auch nachvollziehen können. Nichts für ungut.

Wie dem auch sei, ich habe mal das Beispiel aus der Doku getestet:

<h2>Unsere Verkaufsschlager aus dem Bereich Gemüse</h2>
{get_product_list kKategorie=21 nLimit=3 nSortierung=11 cAssign="myProducts"}
{if $myProducts}
<ul>
{foreach name=custom from=$myProducts item=oCustomArtikel}
<li>{$oCustomArtikel->cName}</li>
{/foreach}
</ul>
{/if}


Ich habe verschiedene Kategorie-Nummern (kKategorie=xx) getestet (die es bei mir gibt), dennoch werden keine Artikel angezeigt.
Woran könnte das liegen?
 

Ähnliche Themen