Doppelte Bilder in Bestellübersicht

Hallo Liebe Oxid Community, Frohe Weihnachten euch allen :),

ich habe wiedermal ein Problem und bräuchte da einen Anhaltspunkt wo mein Fehler genau liegt.

Ich versuche dem Kunden bei einer Gastbestelung seine Bestellübersicht bereit zu stellen. Dies klappt auch wunderbar, bis auf das Problem das wenn er 2 oder mehr Artikel gekauft hat das Thumbnail vom 1. Artikel bei allen anderen Artikeln mitangezeigt wird. Der Rest stimmt allerding, selbst der Link fürs Bild stimmt .

mein Template

[{assign var="aArticle" value=$oView->getArticle()}] [{*******oxarticles - gets articel from oxorderarticle*******}]
            [{assign var="OrderId" value=$oView->getOrder()}]    [{*******oxorderarticles - gets articel from oxarticles*******}]
            [{assign var="sArticleId" value=$OrderId->oxorderarticles__oxartid->value}]
            [{foreach from=$order->getOrderArticles(true) item=orderitem name=testOrderItem}]
            <div id="body_extend" style="text-align: left;border-top: solid #eceeef 1px;">
                <div id="product_image">
                    <div class="productimage">
                        [{if method_exists($oViewConf, 'account_extend_article_out_of_order')}]
                        [{assign var="blOutOfOrder" value=$oViewConf->account_extend_article_out_of_order($aArticle->oxarticles__oxactive->value, $currentStockAmt)}]
                        [{elseif method_exists($oViewConf, stock_management_oxviewconfig_parent')}]
                        [{assign var="bOutOfOrder" value=$oViewConf->stock_management_oxviewconfig_parent($aArticle->oxarticles__oxstockflag->value, $currentStockAmt)}]
                        [{else}]
                        [{assign var="blOutOfOrder" value=false}]
                        [{/if}]
                        [{block name="listitem_flex_button_add_to_cart"}]
                        [{if !$blOutOfOrder}]
                        <a href="index.php?cl=details&anid=[{$orderitem->oxorderarticles__oxartid->value}]"><img src="[{$aArticle->getThumbnailUrl()}]" alt="[{$_sTitle.value}]" style="width: 80px;height: 80px"></a>
                        [{elseif $aArticle->getThumbnailUrl()}]
                    <img src="[{$aArticle->getThumbnailUrl()}]" alt="[{$_sTitle.value}]" style="width: 80px;height: 80px">
                        [{else}]
                    <img id="gmpic" src="out/pictures/master/nopic.jpg" style="width: 80px;height: 80px">
                        [{/if}]
                        [{/block}]
                    </div>
                </div>
                <div id="product_description">
                    <div>
                        [{if $aArticle->oxarticles__oxid->value && $aArticle->isVisible()}]
                        <a id="accOrderLink_[{$order->oxorder__oxordernr->value}]_[{$smarty.foreach.testOrderItem.iteration}]" href="index.php?cl=details&anid=[{$orderitem->oxorderarticles__oxartid->value}]">
                            [{/if}]
                            [{$orderitem->oxorderarticles__oxtitle->value|truncate:50:"..."}]
                            [{if $aArticle->oxarticles__oxid->value && $aArticle->isVisible()}]</a>[{/if}]
                        <br/>
                        <span>[{oxmultilang ident="ST_PRODUCT_NUMBER"}]: [{$orderitem->oxorderarticles__oxartnum->value}]</span>
                    </div>
                </div>
                <div id="product_amount"><span class="amount">[{$orderitem->oxorderarticles__oxamount->value}] [{if $orderitem->oxorderarticles__oxamount->value > 1}][{oxmultilang ident="PAGE_ACCOUNT_ORDERHISTORY_QNT"}][{else}][{oxmultilang ident="PAGE_ACCOUNT_ORDERHISTORY_QNT_ONE"}][{/if}]</span></div>
                <div id="product_price" ><strong class="price">[{oxprice price=$orderitem->getPrice() currency=$currency}]</strong></div>
            </div>
            [{/foreach}]

Über ein kleinen Anstups wäre ich sehr Dankbar

Du nutzt mit

$aArticle->getThumbnailUrl()

ja gar nicht das item deiner foreach-Schleife. Nach meinem Verständnis müsstest du doch hier folgendes nutzen:

$orderitem->getThumbnailUrl()

Wenn ich das tue bekomme ich ein redirect auf die Startseite, und im Log steht dann folgendes

oxSystemComponentException-oxException (time: 2019-12-24 12:23:00): [0]: Function 'getThumbnailUrl' does not exist or is not accessible! (fcPayOneOrderarticle)
 
 Stack Trace: #0 /var/www/html/tmp/smarty/8178e178152e31ed336e6eb9305b6830^%%2D^2D1^2D1F5E8B%%subtel_account_extend_bill_details_guest.tpl.php(498): oxSuperCfg->__call('getThumbnailUrl', Array)
#1 /var/www/html/core/smarty/Smarty.class.php(1264): include('/var/www/html/t...')
#2 /var/www/html/core/oxshopcontrol.php(508): Smarty->fetch('subtel_account_...', 'ox|1|0|0|0|ssl')
#3 /var/www/html/modules/subtel_mods/core/subtel_oxshopcontrol_over.php(181): oxShopControl->_render(Object(subtel_account_extend_bill_details_guest))
#4 /var/www/html/core/oxshopcontrol.php(126): subtel_oxshopcontrol_over->_process('subtel_account_...', NULL, NULL, NULL)
#5 /var/www/html/core/oxid.php(40): oxShopControl->start()
#6 /var/www/html/index.php(30): Oxid::run()
#7 {main}

 Faulty component --> 
---------------------------------------------

in der fcPayOneOrderarticle habe ich dann spaßes halber die getthumbnailURL() Funktion nochmal reingeschrieben aber die Bilder brachte es mir leider trotzdem nicht, es kam dann unser nopic. Bild

guck mal wo dein $aArticle definiert wird.

“Innerhalb von foreach”: Neues Feld in Backend: Inhalt wird nicht gespeichert

1 Like

Hallo, sorry das ich nun wieder so spät Antworte (Prüfung und co kamen dazwischen)

ich habe die schleife nun angepasst nach euren tips

  [{foreach from=$order->getOrderArticles(true) item=orderitem name=testOrderItem}]
  [{assign var="OrderId" value=$oView->getOrder()}] 
  [{assign var="aArticle" value=$OrderId->getArticle()}] 

durch diese schleife bekomme ich das letzte bild jetzt aus der bestellung dann nur angezeigt das so oft wie bestellte artikel da sind

über [{$orderitem->getThumbnailUrl()}] bekam ich jedoch nur eine shop offline meldung ohne das in unsern Logs etwas steht.

ich probierte es daher mit [{$orderitem->oxarticles__oxpic1->value|@var_dump}] so bekomme ich immerhin den string des Bildes rausgelesen, ich dachte vlt kann man den string wieder umwandeln in ein img ? wäre das möglich ? Oder mach ichs mir zu Kompliziert wie immer ?

[{foreach from=$order->getOrderArticles(true) item=orderitem name=testOrderItem}]
[{assign var=“oProduct” value=“oxArticle”|@oxNew}]
[{if $oProduct->load($orderitem->oxorderarticles__oxartid->value)}]
<img src="[{ $oProduct->getThumbnailUrl() }]" style="width: 80px;height: 80px">
[{ /if}]
2 Likes

Vielen Dank, es klappt wunderbar.

Dann habe ich das aus deiner letzten Antwort wohl nicht richtig verstanden bzw umsetzen können.
Ich bedanke mich bei allen für die Hilfe

2 Likes

Gerne, dann einfach als erledigt markieren.

PS: Es gibt hierbei mehrere Wege nach Rom. Das Bsp. ist Q&D, aber für den Bereich ausreichend.

1 Like

Mag keine Abkürzungen am besten immer ausschreiben, dass jeder nachvollziehen kann was meinst mit Q&D = Quick & Dirty :slight_smile:

Joooo :innocent:

1 Like