Warenkorb soll sich von unten nach oben füllen

karlheinz

Gut bekanntes Mitglied
4. November 2012
567
11
Da wir viele Bestellungen haben mit mehr als 20 Positionen wäre es wichtig, dass im Warenkorb der zuletzt in der Warenkorb gelegter Artikel oben steht und nicht unten. Ebenso im Pupup Fenster Warenkorb und die Button sollten nicht unten stehen, sondern oben. Hat das schon einer realisiert?
 

martinwolf

Offizieller Service Partner
SPBanner
6. September 2012
3.716
355
AW: Warenkorb soll sich von unten nach oben füllen

warenkorb_custom.tpl

Code:
{foreach name=positionen from=$Warenkorb->PositionenArr[COLOR=#ff0000][B]|@array_reverse[/B][/COLOR] item=oPosition}

warenkorb_mini_custom.tpl

Code:
{foreach from=$smarty.session.Warenkorb->PositionenArr[B][COLOR=#ff0000]|@array_reverse[/COLOR][/B] item=oPosition}

Das rote fette jeweils ergänzen.
 

karlheinz

Gut bekanntes Mitglied
4. November 2012
567
11
AW: Warenkorb soll sich von unten nach oben füllen

Das letzte in den Warenkorb nach oben haut prima hin. Danke. Die Button im Warenkorb mini sollen auch nach oben. ich nehme an die stecken auch mit in warenkorb_mini_custom.tpl
 

martinwolf

Offizieller Service Partner
SPBanner
6. September 2012
3.716
355
AW: Warenkorb soll sich von unten nach oben füllen

Richtig, finden sich ganz unten in der letzten "<tr class="bottom">". Diese vier Zeilen entsprechend vor die {foreach} packen.
 

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.774
830
AW: Warenkorb soll sich von unten nach oben füllen

warenkorb_custom.tpl

Code:
{foreach name=positionen from=$Warenkorb->PositionenArr[COLOR=#ff0000][B]|@array_reverse[/B][/COLOR] item=oPosition}

warenkorb_mini_custom.tpl

Code:
{foreach from=$smarty.session.Warenkorb->PositionenArr[B][COLOR=#ff0000]|@array_reverse[/COLOR][/B] item=oPosition}

Cool danke ...
 

karlheinz

Gut bekanntes Mitglied
4. November 2012
567
11
AW: Warenkorb soll sich von unten nach oben füllen

Hallo Martin,
ich musste die Dateien warenkorb_custom.tpl und warenkorb_mini_custom.tpl wieder löschen.
Mit diesen geänderten Dateien war es nicht möglich gezielt einen Artikel zu löschen. Wenn ich also irgend einen Artikel löschen wollte, hat er immer den zuletzt in den Warenkorb gelegten Artikel gelöscht.
Schade, da sich das mit dem von unten nach oben befüllen sehr gut gemacht hat, zumal wenn man 10 oder mehr Artikel in den Warenkorb gelegt hat.
Oder gibt es eine andere, bessere Lösung?
Gruß Karlheinz
 

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.774
830
AW: Warenkorb soll sich von unten nach oben füllen

Nicht nachvollziehbar, klappt einwandfrei bei mir ... macht für mich auch keinen Sinn, dass diese Sortierung einen Zusammenhang mit Löschen hat.
 

martinwolf

Offizieller Service Partner
SPBanner
6. September 2012
3.716
355
AW: Warenkorb soll sich von unten nach oben füllen

Nicht nachvollziehbar, klappt einwandfrei bei mir ... macht für mich auch keinen Sinn, dass diese Sortierung einen Zusammenhang mit Löschen hat.

Richtig, zumal die Keys auch erhalten bleiben, lediglich die Reihenfolge dieser wird geändert. Die Löschenfunktion greift ja auf den Key der Position zu. Sprich, wenn beispielsweise Position 4 die neueste ist, also ganz oben, dann müsste auch das Löschen auf Position 4 greifen. @karlheinz: Hast du mal einen Link wo man sich das anschauen kann?
 

martinwolf

Offizieller Service Partner
SPBanner
6. September 2012
3.716
355
AW: Warenkorb soll sich von unten nach oben füllen

Ich hatte einen Denkfehler. Auf der Ansicht werden zwar die Positionen neu arrangiert, aber in der Session haben Sie logischerweise noch die alte Reihenfolge. Ergo müssen wir den Index der foreach an bestimmten Stellen umkehren. Hier die Lösung:

warenkorb_custom.tpl:

Code:
[B][COLOR=#ff0000]{assign var='posIndex' value=$Warenkorb->PositionenArr|@count|intval}[/COLOR][/B]
{foreach name=positionen from=$Warenkorb->PositionenArr|@array_reverse item=oPosition}
[B][COLOR=#ff0000]  {$posIndex--|truncate:0:""}[/COLOR][/B]
...
  <a class="droppos" href="warenkorb.php?dropPos={[COLOR=#ff0000][B]$posIndex[/B][/COLOR]}">{lang key="delete" section="global"}</a>
...
  <select name="anzahl[{[COLOR=#ff0000][B]$posIndex[/B][/COLOR]}]" class="quantity_sel" ref="{[B][COLOR=#ff0000]$posIndex[/COLOR][/B]}">
...
    <option value="{$fAnzahl}" {if $smarty.section.anzahl.last}id="quantity_lst{[B][COLOR=#ff0000]$posIndex[/COLOR][/B]}"{/if} {if $oPosition->nAnzahl == $fAnzahl}selected="selected"{/if}>{$fAnzahl}</option>
...
    <option value="0" id="quantity_opt{[B][COLOR=#ff0000]$posIndex[/COLOR][/B]}">{lang key="more"}...</option>
...
{elseif $oPosition->nPosTyp == $C_WARENKORBPOS_TYP_GRATISGESCHENK}
    <input name="anzahl[{[B][COLOR=#ff0000]$posIndex[/COLOR][/B]}]" type="hidden" value="1" />
{/if}

Das fette rote ergänzen.
 

karlheinz

Gut bekanntes Mitglied
4. November 2012
567
11
AW: Warenkorb soll sich von unten nach oben füllen

Besten Dank, jetzt funktioniert auch das Löschen des gewünschten Artikels. Nur gut, dass man Kunden hat, die einem so etwas mitteilen.
 

casim

Sehr aktives Mitglied
26. Juni 2012
5.934
10
AW: Warenkorb soll sich von unten nach oben füllen

Nur gut dass du hier kompetente SP hast, die dir mal eben so den Code liefern
 

Ähnliche Themen