Alle Kategorien des Produktes in der details.tpl anzeigen

Hallo Leute,

ich bin auf der Suche nach einer Möglichkeit mir ALLE Kategorien eines Produktes in der details.php anzeigen zulassen.

[{ assign var="osubcat" value=$product->getCategory()}]
[{ $osubcat->oxcategories__oxtitle->value}]

Mit diesem Befehel kriege ich nur die Hauptkategorie ausgelesen und angezeit.

Über Hilfe würde ich mich freuen.

Grüße Gajel


[{assign var=oCat value='oxcategory'|@oxNew}]
[{foreach from=$product->getCategoryIds() item=sCatId}]
    [{capture}][{$oCat->load($sCatId)}][{/capture}]
    [{$oCat->oxcategories__oxtitle->value}]
[{/foreach}]

Ich danke vielmals :).

Jetzt muss ich das ganze nur noch formatiert kriegen.

Grüße Gajel

mach ein div drumrum und weise ne Klasse zu - die kannst Du dann via CSS stylen

oder verwende eine passende vorhandene Klasse

Alles erledigt. Perfekt. :slight_smile:

Der Superbonus wäre jetzt noch wenn ich die Kategorien mit sich selber verlinken könnte. Ich das machbar?

Grüße Gajel

[{$oCat->getLink()}]

Ich kriege es nur hin das jede Kategorie den glechen Link hat, also den Link der ersten Kategorien, da ich nicht weiß wie ich mit dem “Foreach” in Verbindung mit der Linkerzeugung umgehen soll.

Mein Ansatz:


<a id="[{$oCat->oxcategories__oxtitle->value }]" class="category" href="[{ $oCat->getLink() }]">[{ $oCat->oxcategories__oxtitle->value }]</a>

[{foreach from=$product->getCategoryIds() item=sCatId}]
    [{assign var=oCat value='oxcategory'|@oxNew}]
    [{capture}][{$oCat->load($sCatId)}][{/capture}]
    [{$oCat->oxcategories__oxtitle->value}]<br />[{$oCat->getLink()}]<br /><br />
[{/foreach}]

So gehts, finde ich nen Bug, dass errechnete Werte nach load erhalten bleiben.

So ist es perfekt:


<ul id="passend">
[{foreach from=$product->getCategoryIds() item=sCatId}]
    [{assign var=oCat value='oxcategory'|@oxNew}]
    [{capture}][{$oCat->load($sCatId)}][{/capture}]
       <li class="modelle"><a href="[{$oCat->getLink()}]">[{$oCat->oxcategories__oxtitle->value}]</a></li>
[{/foreach}]
</ul>

Grüße Gajel

Hi Gajel,

jetzt muss ich mal “dumm” nachfragen: Wofür brauchst Du das? Mit anderen Worten: Ich verstehe den Sinn des Ganzen noch nicht… :frowning:

best wüsches
oberleiner

Als Beispiel: Ein Lenkrad kann in mehrere Autos passen und ist daher in den verschiedenen Kategorien (Auto-Modellen) hinterlegt. Kurz gesagt der Kunden soll in der Details.tpl sehen für welche Auto-Modelle das Lenkrad auch noch passt ;).

Grüße Gajel

ah, jetzt iss klar…

best wüsches
oberleiner

Hallo,
hat das schon jemand für die aktuelle Oxid 4.7 bzw. 4.8 umgeschrieben bzw. am laufen? Habe $product durch $oView ersetzt,erhalte so nur einen redirect auf die Startseite:


<div><ul id="passend">
[{foreach from=$oView->getCategoryIds() item=sCatId}]
    [{assign var=oCat value='oxcategory'|@oxNew}]
    [{capture}][{$oCat->load($sCatId)}][{/capture}]
       <li class="modelle"><a href="[{$oCat->getLink()}]">[{$oCat->oxcategories__oxtitle->value}]</a></li>
[{/foreach}]
</ul>
</div>

So ist es richtig und funktioniert in details.tpl und productmain.tpl unter Oxid 4.7:


<ul id="passend">
[{foreach from=$oDetailsProduct->getCategoryIds() item=sCatId}]
    [{assign var=oCat value='oxcategory'|@oxNew}]
    [{capture}][{$oCat->load($sCatId)}][{/capture}]
       <li class="modelle"><a href="[{$oCat->getLink()}]">[{$oCat->oxcategories__oxtitle->value}]</a></li>
[{/foreach}]
</ul>

Hallo,

ich habe aktuell das gleiche Problem mit Oxid 6.1. Hier sollen auf der Detail-Seite alle dem Artikel zugewiesenen Kategorien aufgelistet werden. Bin schon seit einigen Stunden auf der Suche nach einer Lösung und komme einfach nicht weiter. Alle Code-Zeilen, welche ich bereits gefunden habe, beziehen sich auf ältere Oxid Versionen und funktionieren bei mir nicht.

Offenbar muss es zum Auslesen der Category-IDs auch in Oxid 6.1 eine entsprechende Klasse geben: https://docs.oxid-esales.com/sourcecodedocumentation/6.1.0/class_oxid_esales_1_1_eshop_community_1_1_application_1_1_model_1_1_article.html#a1f54e9fa7ba4c0badde87c4c38921681

Meine Entwicklerkenntnisse sind aber nicht tief genug um zu verstehen wie ich die Klasse nun in der details.tpl nutzen kann.

Wäre super, wenn mir Jemand einen hilfreichen Tipp geben könnte.

Beste Grüße
Tommy

Der Code für Oxid 4.7 aus dem letzten Post funktioniert prinzipiell auch in 6.1, z.B. in productmain.tpl oder fullproductinfo.tpl.

[{foreach from=$oDetailsProduct->getCategoryIds() item=sCatId}]
[{assign var="oCat" value='oxcategory'|@oxNew}]
  [{ if $oCat->load($sCatId) }]<li class="modelle"><a href="[{$oCat->getLink()}]">[{$oCat->oxcategories__oxtitle->value}]</a></li>[{/if}]
[{/foreach}]
1 Like

Super! Damit hat es funktioniert. Vielen vielen Dank :slight_smile: