Delete button minibasket

Hallo zusammen,

ich sitze nun mehrere Tage vor dem gleichen Problem, in dem es darum geht, dass ich das Oxid-Standart-Template umgebaut habe und nun auch der MiniBasket als liste am kompletten Bildschirmrand angezeigt wird.

Soweit passt alles, auch die Linkst zu den jeweiligen Artikeln passen wie sie sollen. Nun möchte ich jedoch hinter jeden Artikel, der im Warenkorb ist, einen Button mit einer Löschen-Funktion setzen (Das ganze MUSS ohne Checkbox funktionieren).

Und das ist auch schon das Problem. :rolleyes: Platziert ist alles schon nur kann ich mit den Buttons keine Aktion auslösen und so die Artikel aus dem Warenkorb UND aus dem MiniBasket löschen.

Hat von euch vielleicht jemand bereits das Problem gehabt, wenn ja wie habt Ihr das gelöst ?

Wie bereits gesagt, ich möchte dem User die Möglichkeit geben, die Artikel bereits im MiniBasket zu löschen, und nicht erst im Warenkorb kurz vor dem Check-Out. Ich würde mich sehr freuen, wenn ihr mir mit meinem Problem weiter helfen könntet.

Codebeispiele sind gerne gesehen. :slight_smile:

MfG

welche Oxid Version ist bei Dir im Einsatz? Welches Template hast Du verwendet?
ansonsten, so ganz ohne selber nachzusehen, würde ich meinen, die gleiche Funktion aufzurufen, wie das Löschen beim Check-Out (also in basketcontents.tpl nachschauen wie umgesetzt, vor allem wie der itemkey übergeben wird, und in Deinem Minibasket analog umsetzen).
Evtl nicht vergessen als AJAX, da sonst die Seite ganz neu geladen würde!

VERSION: 4.7.3
THEME: Azure

Ich habe es mit der gleichen Funktion bereits probiert, jedoch ist es mir nicht gelungen.

by the way, gibt es eine möglichkeit cookies auszulesen in denen die daten der Artikel gespeichert sind um diese dann direkt anzusprechen ?

Danke nochmals im Voraus für alle Antworten und hilfen. :smiley:

Ausschnitte aus basketcontents.tpl:

[{foreach key=basketindex from=$oxcmp_basket->getContents() item=basketitem name=basketContents}]
[{block name=“checkout_basketcontents_basketitem”}]
[{assign var=“basketproduct” value=$basketitemlist.$basketindex }]
[{assign var=“oArticle” value=$basketitem->getArticle()}]
[{assign var=“oAttributes” value=$oArticle->getAttributesDisplayableInBasket()}]

            <tr id="cartItem_[{$smarty.foreach.basketContents.iteration}]">
                [{block name="checkout_basketcontents_basketitem_removecheckbox"}]
                    [{if $editable }]
                        <td class="checkbox">
                            <input type="checkbox" name="aproducts[[{ $basketindex }]][remove]" value="1">

Hier wird der Itemkey des Produkts im Namen der Checkbox gespeichert.
Dieser wird in oxcmp_basket ab der Zeile 300 ausgelesen:

if (oxConfig::getParameter( ‘removeBtn’ ) !== null) {
//setting amount to 0 if removing article from basket
foreach ( $aProducts as $sProductId => $aProduct ) {
if ( isset($aProduct[‘remove’]) && $aProduct[‘remove’]) {
$aProducts[$sProductId][‘am’] = 0;
} else {
unset ($aProducts[$sProductId]);
}
}
}

        return $aProducts;

Damit wurde das Element gelöscht.
Das könnte inspirierend genug sein…

Betreffend Cookies habe ich keine Ahnung was Du genau meinst…

Mit den cookies meine ich, ob die artikel in einem cookie gespeichert und dann eben ausgegeben werden.

wenn das der Fall wäre, könnte man quasi eine seperate funktion schreiben und auf diese dann zugreifen …

Das codefragmet habe ich mir auch schon mehrmals angesehen allerdings komme ich auf keinen gemeinsamen Nenner mit dem MiniBasket, da es zwei verschiedene Templates sind und jedes Template eine andere Abfrage bildet.

Welche Informationen muss ich da mitgeben, dass ich vom minibasket auf diese function zugreifen kann?

Hast Du das minibasket.tpl abgeändert? => Du könntest Dein Minibasket Template als Zip Anhang posten. Dann kann ich Dir vielleicht weiterhelfen.

Im Checkout funktioniert mein remove button, allerdings nicht im minibasket.

In minibasket.tpl habe ich zur foreach den itemkey analog zum code (wie beschrieben) in basketcontens.tpl eingefügt:

[{foreach key=basketindex from=$oxcmp_basket->getContents() name=miniBasketList item=_product}]

All die assings werden wohl in der basketcontents.tpl erst später im Code benötigt, nicht aber beim remove-button.

Innerhalb der

    , genauer im
  • habe ich eine hinzugfügt:
    [{block name="widget_minibasket_product"}]
       [{assign var="minibasketItemTitle" value=$_product->getTitle() }]
       <li>
          <form name="basket[{$basketindex}]" action="[{$oViewConf->getSelfActionLink()}]" method="post">
    

    Last but not least habe ich die den remove button in die hinzugefügt:

    <div class="ctrl-buttons">
       <div class="checkbox">
          <input type="hidden" name="removeBtn" value="1">
          <input class="textButton" type="submit" name="aproducts[[{ $basketindex }]][remove]" value="remove">
       </div>
    </div>
    

    Alles sieht wunderbar aus. Wenn ich aber auf den remove button klicke, werde NUR auf die Startseite weitergeleitet!!

    Wenn jemand ne Lösung hat, dann bitte her damit.