Hallo,
ich habe leider keinen passenden Thread zu dem Thema gefunden, deshalb frag ich mal hier:
Ich nutze das Flow Theme und möchte in dem MiniBasket im Header bei den jeweiligen Produkte auch den Hersteller anzeigen lassen. Die Stelle im minibasket.tpl um die es mir geht beginnt folgendermaßen:
[{foreach from=$oxcmp_basket->getContents() name=miniBasketList item=_product}]
[{assign var="minibasketItemTitle" value=$_product->getTitle()}]
<a href="[{$_product->getLink()}]" title="[{$minibasketItemTitle|strip_tags}]">[{$minibasketItemTitle|strip_tags}]</a>
Nun war mein Ansatz dass ich wie in anderen Templates auch, über das Produkt auf den Hersteller zugreife mit:
[{assign var=“sManufacturer” value=$_product->getManufacturer()}]
und ihn anschließend wie folgt ausgebe:
[{$smanufacturer->oxmanufacturers__oxtitle->value}]
Leider funktioniert das hier nicht. Kann mir da einer von euch helfen? Es sieht für mich aus als ob ich aus den einzelnen Produkten in der $oxcmp_basket keinen Zugriff auf die Herstellerinformationen erhalte…
die Methode getManufacturer gibts nur im oxArticle Objekt oder im oxwArticleDetails Widget.
Im Warenkorb liegen jedoch keine oxArticles, sondern oxBasketItems. Du brauchst zuerst den Artikel eines Basketitems und dann kannst du den Hersteller holen.
Vielleicht so:
[{assign var="oArticle" value="oxArticle"|@oxNew}]
[{if $oArticle->load($_product->oxarticles__oxid->value)}]
[{assign var="sManufacturer" value=$oArticle->getManufacturer()}]
[{$sManufacturer->oxmanufacturers__oxtitle->value}]
könnte man machen, aber man sollte $_product->getArticle() verwenden, um an oxArticle Objekt zu kommen. Diese Methode ist für Performance optimiert.
Wow schnelle Antwort - vielen Dank dafür!
Also habe es jetzt so umgesetzt:
[{assign var="bArticle" value=$_product->getArticle()}]
[{assign var="sManufacturer" value=$bArticle->getManufacturer()}]
[{$sManufacturer->oxmanufacturers__oxtitle->value}]
an der Stelle sollte ich noch die Bedeutung der ersten Buchstaben im Namen einer Variable erklären, bevor es zu Missverständnissen führt.
Es geht nicht nach Alphabet oder Lust und Laune, sondern nach Datentyp:
$aArticles -> a = array (ein Array mit irgendwelchen Sachen drin)
$oArticle -> o = object (ein Objekt mit Funktionen und Eigenschaften)
$sManufacturerId -> s = string ( Wort, Zeichenkette)
$iItemNr -> i = integer ( Zahl)
$blActive -> bl = boolean = true/false ( ja / nein)
$_product deutet auf eingeschränkte Verfügbarkeit der Variable (scope), in dem Fall nur innerhalb der Foreach-Schleife und nicht überall auf der Seite
Dabei können nur strings und integer im Template ausgegeben werden [{ $sIrgendwas }] [{ $iIrgendwas }]
Objekte und Arrays würden zu Fehlern führen und ein boolean Wert wird entweder als eine 1 ausgegeben, wenn “true” oder gar nicht, wenn “false”.