Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: Attribute und Mengeneingabe in product_listing

    karsta.de

    • Experte
    • Beiträge: 3.082
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #60 am: 23. Juni 2012, 13:22:41
    Vielen Dank web0null, habe mich über den Lösungsvorschlag sehr gefreut. Hab es gleich getestet. Leider bekam ich nach dieser Änderung die Error Meldung: "Unable to determine the page link!".
    Habe jetzt den Link so abgeändert:
    Code: PHP  [Auswählen]
    'FORM_ACTION' => xtc_draw_form('cart_quantity', xtc_href_link(basename($_SERVER['SCRIPT_FILENAME']), xtc_get_all_get_params(array ('action')).'action=add_product')),
               'FORM_END' => '</form>',
    und jetzt funktionierts. Aber da ich nur ein Hauch Ahnung habe, muß ich jetzt noch mal fragen, ob der Link so richtig ist?

    LG kgd

    web0null

    • Experte
    • Beiträge: 1.998
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #61 am: 23. Juni 2012, 14:37:28
    ja, sry,

    mach das wieder so wie ich Beitrag #56 geschrieben habe, und mach folgendes:

    Suche in der root\includes\classes\product.php

    Code: PHP  [Auswählen]
    function buildDataArray(&$array,$image='thumbnail') {
        global $xtPrice,$main;

    Ersetze es mit:

    Code: PHP  [Auswählen]
    function buildDataArray(&$array,$image='thumbnail') {
        global $xtPrice,$main,$PHP_SELF;

    Gib mir bitte Bescheid (bevor ich ein neues Paket hoch lade), jetzt müsste es klappen.

    Gruß web0null

    karsta.de

    • Experte
    • Beiträge: 3.082
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #62 am: 23. Juni 2012, 17:18:57
    Ja jetzt geht der Link in die richtige Richtung. Die entsprechenden Atikel befinden sich im Warenkorb.
    Allerdings, wenn ich mehrere Artikel in den Warenkorb lege, steht in der breadcrumb-Navigation der zuerst ausgewählte Artikel egal wieviele Artikel ich in den Warenkorb lege.
    Das ist wohl auch so noch nicht ganz richtig oder?

    LG kgd

    web0null

    • Experte
    • Beiträge: 1.998
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #63 am: 23. Juni 2012, 17:57:39
    Hi.
    Das liegt an dieser Zeile in der \includes\cart_actions.php

    Code: PHP  [Auswählen]
    xtc_redirect(xtc_href_link($goto, 'products_id=' . (int) $_POST['products_id'] . '&' . xtc_get_all_get_params($parameters)));

    Wenn man die so abändert:

    Code: PHP  [Auswählen]
    xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params($parameters), 'NONSSL'));

    Ist das weg.

    @Team
    Aber das sollte bitte einer vom Team bestätigen, ob das sonstige Nachwirkungen hat, ich konnte keine feststellen.

    Ich glaube das ist sowieso ein Fehler, denn im Original sp1c, wenn man in der product_info den Artikel in den Korb legt, hängt er die products_id 2x als Parameter an.

    Gruß web0null

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.199
    • Geschlecht:
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #64 am: 23. Juni 2012, 19:18:42
    Ich habe das mal nach intern weiter geleitet, danke für den Hinweis. :thx:

    Für eventuelle Fehler bitte auch gerne die "Moderator informieren"-Funktion benutzen. ;-)

    Grüße

    Torsten

    web28

    • modified Team
    • Beiträge: 9.404
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #65 am: 23. Juni 2012, 20:43:41
    Zitat
    @Team
    Aber das sollte bitte einer vom Team bestätigen, ob das sonstige Nachwirkungen hat, ich konnte keine feststellen.

    Ich glaube das ist sowieso ein Fehler, denn im Original sp1c, wenn man in der product_info den Artikel in den Korb legt, hängt er die products_id 2x als Parameter an.

    Dieser Code ist Original xtc. Bei xtc_get_all_get_params($parameters) werden die übergebenen $parameters gefiltert. Deshalb wird products_id nicht 2mal als Parameter angehängt!
    $goto und $parameter sind je nach Aufruf immer anders und deshalb ist der Code auch richtig.

    Gruss Web28

    web0null

    • Experte
    • Beiträge: 1.998
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #66 am: 24. Juni 2012, 14:58:25
    Doch die products_id wird 2x angehängt.

    Denn wenn du dir diesen Code in der \includes\cart_actions.php mal genau ansiehst:
    Code: PHP  [Auswählen]
    xtc_redirect(xtc_href_link($goto, 'products_id=' . (int) $_POST['products_id'] . '&' . xtc_get_all_get_params($parameters)));
    wirst du ja erkennen dass die Parameter für die products_id,

    1x durch diesen Code:
    Code: PHP  [Auswählen]
    'products_id=' . (int) $_POST['products_id']
    und
    1x durch diesen Code:
    Code: PHP  [Auswählen]
     xtc_get_all_get_params($parameters)
    generiert werden, somit werden die Parameter für die products_id 2x angehängt.

    Du könntest es auch ganz leicht selbst überprüfen:

    Stelle im Admin:
    https://demo.modified-shop.org/trunk/
    • Soll Warenkorb nach dem Einfügen angezeigt werden? auf false
    • Suchmaschinenfreundliche URLs benutzen? auf false

    Dann öffne diesen Link:
    https://demo.modified-shop.org/trunk/product_info.php?products_id=4

    und drücke auf den Button In den Warenkorb,
    und dann sieh in die Adressleiste, jetzt wirst du folgendes sehen:
    https://demo.modified-shop.org/trunk/product_info.php?products_id=4&products_id=4

    und das kommt davon, weil die Parameter für die products_id mit dem oben beschriebenen, 2x generiert werden.

    Somit würde dieses ausreichen:

    Code: PHP  [Auswählen]
    xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params($parameters), 'NONSSL'));

    Gruß web0null

    web28

    • modified Team
    • Beiträge: 9.404
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #67 am: 25. Juni 2012, 11:02:06
    Doppelter Parameter tritt nur dann auf wenn

    Soll Warenkorb nach dem Einfügen angezeigt werden?

    auf false gesetzt wird.

    Da fehlt bei einer If Bedingung bei der Parameters Zuweisung der Eintrag products_id im Array.

    So ist es richtig:

    Code: PHP  [Auswählen]
                    } else {
                            $parameters = array (
                                    'action',
                                    'pid',
                                    'products_id',
                                    'BUYproducts_id',
                                    'info'
                            );
                    }

    Gruss Web28

    karsta.de

    • Experte
    • Beiträge: 3.082
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #68 am: 25. Juni 2012, 12:58:26
    Hallo web28, hallo web0null,
    ich habe die emfohlenen Änderungen 56 & 61 von web0null und deine vorgeschlagene Änderung in der includes/cart_actions.php eingefügt (also fehlenden Eintrag 'products_id',) und nun wechselt in der breadcrumb-Navigation der Artikel so wie er es muß, immer auf den Artikel den ich in den Warenkorb lege. Damit ist es für mich jetzt optimal und nach meinem Verständis korrekt und das Modul eine super Erweiterung.

    Danke an web0null und Danke web28.

    LG kgd

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #69 am: 26. Juni 2012, 13:10:05
    Hallo Web0null,

    danke für die tolle Erweiterung. habe jetzt SP1d neu installiert und bin dabei alles wieder aktuell nachzubauen. Dabei habe ich Deine Version 1.04 eingebaut und gleichzeitig die Dokumentation etwas verbessert (Zeilennummern und bei den Templatedateien die Unterschiede ergänzt). TXT Datei anbei.

    Gerd

    [EDIT Tomcraft 28.09.2012: Relevante Teile der neuen Anleitung in Modul in Beitrag 1 übernommen.]

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #70 am: 30. Juni 2012, 22:57:40
    Hallo,

    habe ein Problem mit meiner cart_actions.php nach Konfigurator Einbau. Sobald ein Artikel mit Attributen aus der Listing Ansicht in den Warenkorb gelegt wird habe ich dort keine Attribute mehr. Wird der Artikel aus der Produktansicht in den Warenkorb gelegt ist alles normal.

    Bin jetzt nach zig Rückbauten und Tests drauf gekommen, woran es liegt:

    includes/cart_actions.php

    Code: PHP  [Auswählen]
    suche (jetzt ca. Zeile 129):
                            if (isset ($_POST['products_id']) && is_numeric($_POST['products_id'])) {
                           
                                    $cart_quantity = xtc_remove_non_numeric($_POST['products_qty']);
                                   
                                    if ($cart_quantity > MAX_PRODUCTS_QTY)
                                            $cart_quantity = MAX_PRODUCTS_QTY;

    ersetze mit:
                            //print_r($_POST);
                            if (isset($_POST['products_id']))
                            {
                                    $pids = count($_POST['products_id']);
                                    for($i=$pids-1; $i>=0; $i--){
                                            if ($_POST['products_qty'][$i] > MAX_PRODUCTS_QTY)
                                                            $_POST['products_qty'][$i] = MAX_PRODUCTS_QTY;
                                    }

    ---------------------------------------------------------------------------------------------

    suche (jetzt ca. Zeile 140):
                                            $old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id']));
                                            $econda->_addProduct($_POST['products_id'], $cart_quantity, $old_quantity);

    ersetze mit:
                                            $old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'][0], $_POST['id']));
                                            $econda->_addProduct($_POST['products_id'][0], $_POST['products_qty'], $old_quantity);

    ---------------------------------------------------------------------------------------------

    suche (jetzt ca. Zeile 144):
                                    $_SESSION['cart']->add_cart((int) $_POST['products_id'], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'], $_POST['id'])) + $cart_quantity, $_POST['id']);
                                   
                            }
                            xtc_redirect(xtc_href_link($goto, 'products_id=' . (int) $_POST['products_id'] . '&' . xtc_get_all_get_params($parameters)));

    ersetze mit:
                                    for($i=$pids-1; $i>=0; $i--){
                                            if ($_POST['products_id'][$i] == $_GET['products_id']) {
                                                            $t_ids = $_POST['id'];
                                                            $config_comment = $_POST['config_comment'];
                                            } else {
                                                            $t_ids = array();
                                                            $config_comment = '';
                                            }
                                            if (isset($_POST['qty']) && !isset($_POST['acc_'.$_POST['products_id'][$i].'_id'])) {
                                                    if (isset($_POST['acc_'.$_POST['products_id'][$i].'_qty'])) {
                                                                    $attributes_quantities = $_POST['acc_'.$_POST['products_id'][$i].'_qty'];
                                                    } else {
                                                            $attributes_quantities = $_POST['qty'];
                                                    }
                                            } else {
                                                    if (isset($_POST['acc_'.$_POST['products_id'][$i].'_qty'])) {
                                                                    $attributes_quantities = $_POST['acc_'.$_POST['products_id'][$i].'_qty'];
                                                    } else {
                                                                    $attributes_quantities = false;
                                                    }
                                            }
                                            if (isset($_POST['acc_'.$_POST['products_id'][$i].'_id'])) {
                                                    if (isset($_POST['products_qty'][$i]))
                                                            $_SESSION['cart']->add_cart((int)$_POST['products_id'][$i], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'][$i], $_POST['acc_'.$_POST['products_id'][$i].'_id'])) + xtc_remove_non_numeric($_POST['products_qty'][$i]), $_POST['acc_'.$_POST['products_id'][$i].'_id'], true, $config_comment, $attributes_quantities);
                                                    else {
                                                            $_SESSION['cart']->add_cart((int)$_POST['products_id'][$i], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'][$i], $_POST['acc_'.$_POST['products_id'][$i].'_id'])) + xtc_remove_non_numeric($_POST['products_qty_'.$_POST['products_id'][$i]]), $_POST['acc_'.$_POST['products_id'][$i].'_id'], true, $config_comment, $attributes_quantities);
                                                    }
                                            } else {
                                                    if (isset($_POST['products_qty'][$i]))
                                                                    $_SESSION['cart']->add_cart((int)$_POST['products_id'][$i], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'][$i], $t_ids)) + xtc_remove_non_numeric($_POST['products_qty'][$i]), $t_ids, true, $config_comment, $attributes_quantities);
                                                    else {
                                                            $_SESSION['cart']->add_cart((int)$_POST['products_id'][$i], $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'][$i], $t_ids)) + xtc_remove_non_numeric($_POST['products_qty_'.$_POST['products_id'][$i]]), $t_ids, true, $config_comment, $attributes_quantities);
                                                    }
                                            }
                                    }
                            }
                    xtc_redirect(xtc_href_link($goto, 'products_id=' . (int) $_POST['products_id'][0] . '&' . xtc_get_all_get_params($parameters)));

    Könnte mir bitte jemand helfen? Was müsste gändert werden damit alles wieder richtig funktioniert?

    Danke

    Gerd

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #71 am: 17. Juli 2012, 18:08:05
    So, jetzt hab ich es geschafft - es geht gar nicht mehr - sobald ich von der Übersichtseite aus einen Artikel mit Attributen in den Warenkorb legen will öffnet der Warenkorb und es wir nichts mehr eingefügt.

    Ist der Warenkorb leer, wird er beim klicken auf in den Warenkorb aus der Listenansicht trotzdem geöffnet, bleibt aber leer.

    Von der Artikelseite aus klappt alles einwandrei.

    Hat jemand einen Lösungsansatz für mich?

    Danke

    Gerd

    Istvan

    • Neu im Forum
    • Beiträge: 16
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #72 am: 19. Juli 2012, 05:04:20
    Gerd, ich kann Dir mangels Erfahrung leider nicht helfen. Bei mir hat alles auf Anhieb geklappt. Bei anderen Sachen bin ich einfach wieder auf Anfang gegangen und hab von vorn begonnen. Nicht aufgeben :-/

    @web0null
    Dies hier hat (wie schon erwähnt) sehr gut geklappt.
    Kann es sein, dass durch die umfangreichen Änderungen eine zusätzliche Anzeige der Staffelpreise in der Product-Listing nun nicht mehr möglich ist?

    Ich habe es ein paar Mal mit dieser Variante: ANLEITUNG: Staffelpreise - Mengenangabe in Product Listing probiert, aber es klappt nicht.

    VG
    Istvan

    web0null

    • Experte
    • Beiträge: 1.998
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #73 am: 19. Juli 2012, 07:57:10
    Es müsste eigentlich schon klappen

    Istvan

    • Neu im Forum
    • Beiträge: 16
    Re: MODUL: Attribute und Mengeneingabe in product_listing
    Antwort #74 am: 19. Juli 2012, 08:08:51
    Die Problematik für mich ist, dass diverse Zeilen die zu ersetzen sind...nicht mehr da sind :-?
    Wenn ich dann einfach einfüge kommt nichts bei raus, eigentlich auch logisch.

    Ich probiere weiter :coffee:
    Managed Server
    9 Antworten
    3342 Aufrufe
    21. Juni 2017, 14:59:02 von awids
    6 Antworten
    4253 Aufrufe
    22. August 2014, 15:59:00 von web0null
    5 Antworten
    3477 Aufrufe
    26. Februar 2012, 14:16:21 von jannemann