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: ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"

    lordstuffi

    • Neu im Forum
    • Beiträge: 13
    Hallo liebe Community,

    Seit kurzer Zeit beschäftige ich mich mit dem Shopsystem. Ich habe sehr viel Spaß damit. Es ist wirklich sehr gut.

    Nun möchte ich gerne etwas erweitern:

    Wie bekomme ich es hin, ein 2. Kommentarfeld in "checkout_shipping" einzubauen. Ein ersten Kommentarfeld ist ja bereits in der "checkout_payment". Kopieren reicht leider nicht, da die Informationen ja auch irgendwie in die Datenbank gelangen müssen. Doch leider weiß ich nicht wie.
    Liebe Community, könnt ihr mir dabei helfen?

    [EDIT Tomcraft 28.03.2011: Hier geht es direkt zur Anleitung von Hendrik.]



    Linkback: https://www.modified-shop.org/forum/index.php?topic=11659.0
    rechtstexte für onlineshop

    lordstuffi

    • Neu im Forum
    • Beiträge: 13
    ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #1 am: 28. März 2011, 11:18:45
    Hat jemand schon ansatzweise eine Ahnung wie das funktioniert?

    hendrik

    • Experte
    • Beiträge: 2.038
    ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #2 am: 28. März 2011, 12:21:44
    checkout_shipping.php

    Finde:

    Code: PHP  [Auswählen]
    if ($_SESSION['cart']->show_total()> 0 ) {
      if ($_SESSION['cart']->show_total() <$_SESSION['customers_status']['customers_status_min_order'] ) {
        xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART));
      }
    }
    //EOF - Dokuman - 2009-06-06 - checkout only if minimum order value is reached

    Füge an:

    Code: PHP  [Auswählen]
    if ($_POST['comments_added'] != '')  {
      $_SESSION['comments_shipping'] = xtc_db_prepare_input($_POST['comments_shipping']);
    }

    Suche:

    Code: PHP  [Auswählen]
    $smarty->assign('FORM_END', '</form>');

    füge darunter ein:

    Code: PHP  [Auswählen]
    $smarty->assign('COMMENTS_SHIPPING', xtc_draw_textarea_field('comments_shipping', 'soft', '60', '5', $_SESSION['comments_shipping']) . xtc_draw_hidden_field('comments_added', 'YES'));

    checkout_process.php

    Finde:

    Code: PHP  [Auswählen]
    unset ($_SESSION['billto']);
    unset ($_SESSION['shipping']);
    unset ($_SESSION['payment']);
    unset ($_SESSION['comments']);

    Füge an:

    Code: PHP  [Auswählen]
    unset ($_SESSION['comments_shipping']);

    lang/german/lang_german.conf

    Finde:

    Code: PHP  [Auswählen]
    [checkout_shipping]

    Füge an:

    Code: PHP  [Auswählen]
    title_comments = 'Fügen Sie hier Ihre Anmerkungen zu dieser Bestellung ein:'

    templates/<template>/module/checkout_shipping.html

    Finde:

    Code: PHP  [Auswählen]
    <p>{$SHIPPING_BLOCK}</p>

    Füge an:

    Code: PHP  [Auswählen]
    <h2>{#title_comments#}</h2>
    <p class="checkoutcomment">{$COMMENTS_SHIPPING}</p>

    includes/classes/order.php

    Finde:

    Code: PHP  [Auswählen]
    $tax_address_query = xtc_db_query("select ab.entry_country_id, ab.entry_zone_id from " . TABLE_ADDRESS_BOOK . " ab left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id) where ab.customers_id = '" . $_SESSION['customer_id'] . "' and ab.address_book_id = '" . ($this->content_type == 'virtual' ? $_SESSION['billto'] : $_SESSION['sendto']) . "'");
    $tax_address = xtc_db_fetch_array($tax_address_query);

    Füge an:

    Code: PHP  [Auswählen]
    $comment          = isset($_SESSION['comments']) ? $_SESSION['comments'] : '';
    $comment_shipping = isset($_SESSION['comments_shipping']) ? "\n\n".$_SESSION['comments_shipping'] : '';  

    Finde kurz darunter:

    Code: PHP  [Auswählen]
    'comments' => isset($_SESSION['comments']) ? $_SESSION['comments'] : '',

    Ersetze gegen:

    Code: PHP  [Auswählen]
    'comments' => $comment.$comment_shipping,

    Shipping- und Paymentkommentare werden im Ergebnis zusammengefügt.
    Nicht eingehend getestet.

    Gruß
    Hen

    [EDIT Tomcraft 30.03.2011: Anleitung ergänzt, Danke an lordstuffi für den Hinweis.]

    lordstuffi

    • Neu im Forum
    • Beiträge: 13
    ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #3 am: 28. März 2011, 15:30:38
    Genial, vielen dank für die schnelle Antwort! Und großen Dank, dass du mir hilfst. Leider wird mir aber das Kommentarfeld, wo ich etwas eintragen kann, nicht angezeigt. Habe ich etwas vergessen?

    hendrik

    • Experte
    • Beiträge: 2.038
    ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #4 am: 28. März 2011, 15:45:23
    template/.../checkout_shipping.html hast du angepasst? Und auch nicht das Template verwechselt?
    Hmmm  :?

    lordstuffi

    • Neu im Forum
    • Beiträge: 13
    ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #5 am: 28. März 2011, 19:33:30
    Nee, alles so gemacht, wie beschrieben.

    Wenn ich im Template statt:

    Code: PHP  [Auswählen]
    <p class="checkoutcomment">{$COMMENTS_SHIPPING}</p>
     
    das hier einfüge:

    Code: PHP  [Auswählen]
    <p class="checkoutcomment">{$COMMENTS}</p>
     
    funktioniert's.

    Also dann wird das Feld an gezeigt. Aber das ist ja nicht der Sinn der Sache. Hast du noch eine Idee?

    lordstuffi

    • Neu im Forum
    • Beiträge: 13
    ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #6 am: 28. März 2011, 21:55:54
    Hi, ich hab es hin bekommen. Nachdem ich den folgenden Code in die "checkout_shipping.php" eingefügt habe:

    Code: PHP  [Auswählen]
    $smarty->assign('COMMENTS_SHIPPING', xtc_draw_textarea_field('comments_shipping', 'soft', '60', '5', $_SESSION['comments_shipping']) . xtc_draw_hidden_field('comments_added', 'YES'));
    den gleichen Code findet man im checkout_payment.php bloß anstatt comments_shipping = comments.

    Wie kann ich nun die beiden Kommentare bei der "checkout_confirmation.php" separat anzeigen lassen?

    lordstuffi

    • Neu im Forum
    • Beiträge: 13
    ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #7 am: 30. März 2011, 10:51:06
    Jemand eine Idee?

    hendrik

    • Experte
    • Beiträge: 2.038
    ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #8 am: 30. März 2011, 12:06:21
    Ups.
    Genau! Diese Einfügung hab ich beim Copy&Paste'n vergessen. Richtig erkannt und ergänzt. sry.

    Wegen separater Anzeige. Das folgende ist aus freier Hand. Nicht getestet.

    includes/classes/order.php

    Finde die eingefügte Zeile:

    Code: PHP  [Auswählen]
    $comment_shipping = isset($_SESSION['comments_shipping']) ? "\n\n".$_SESSION['comments_shipping'] : '';
    Ersetze gegen:

    Code: PHP  [Auswählen]
    $comment_shipping = isset($_SESSION['comments_shipping']) ? "---\n\n".$_SESSION['comments_shipping'] : '';
     
    checkout_confirmation.php

    Finde:

    Code: PHP  [Auswählen]
    if (xtc_not_null($order->info['comments'])) {
            $smarty->assign('ORDER_COMMENTS', nl2br(htmlspecialchars($order->info['comments'])) . xtc_draw_hidden_field('comments', $order->info['comments']));

    }
    Füge an:

    Code: PHP  [Auswählen]
    $comments_arr = explode('---', $order->info['comments']);
    $comment_1 = $comments_arr[0];
    $comment_2 = $comments_arr[1];

    $smarty->assign('ORDER_COMMENT_1', nl2br($comment_1) );
    $smarty->assign('ORDER_COMMENT_2', nl2br($comment_2) );
    /templates/..dein template../module/checkout_confirmation.html

    Darin kannst du nun die Variable:

    Code: PHP  [Auswählen]
    {$ORDER_COMMENTS}
     
    ersetzen gegen:

    Code: PHP  [Auswählen]
    {$ORDER_COMMENT_1}
     
    und

    Code: PHP  [Auswählen]
    {$ORDER_COMMENT_2}
     
    Die Kommentare sollten nun separat erscheinen.

    Gruß
    Hen

    lordstuffi

    • Neu im Forum
    • Beiträge: 13
    ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #9 am: 30. März 2011, 13:01:23
    vielen lieben dank, jetzt klappt es :D ohne dich, hätte ich das nie hinbekommen. Ich hoffe ich kann hier auch ein paar Leuten helfen, wenn ich mich besser damit auskenne.

    Eine kleine Sache ist noch. Über der {$ORDER_COMMENT_2} Variablen ist nun eine weiße Leerfläche, wo vorher {$ORDER_COMMENT_1} war. Wie kann ich die noch entfernen? Wie 'nen Absatz ist das.

    DeLu

    • Neu im Forum
    • Beiträge: 3
    ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #10 am: 03. April 2011, 18:12:49
    Bei mir funktioniert das ganze leider nicht so. Hendrik, könntest du den internen Ablauf von den Feldübergaben in den verschiedenen Schritten etwas genauer beschreiben?

    Liebe Grüße

    Dennis

    lordstuffi

    • Neu im Forum
    • Beiträge: 13
    ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #11 am: 09. April 2011, 11:15:35
    Hallo Hendrik,

    ich muss dich noch mal nerven.
    1.) Wie kann ich im "/template<dein-template>/module/print_order.html" nun die beiden Comments anzeigen lassen.
    2.) Wie kann ich im "/template<dein-template>/module/print_order.html" die shipping_method anzeigen lassen.

    Liebe Grüße

    NicoDeluxe

    • Fördermitglied
    • Beiträge: 987
    • Geschlecht:
    Re: ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #12 am: 16. November 2012, 16:25:27
    Wie kann ich denn dass Kommentarfeld im checkout_payment kopieren? Diese Anleitung geht nicht und is sehr durcheinander

    NicoDeluxe

    • Fördermitglied
    • Beiträge: 987
    • Geschlecht:
    Re: ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #13 am: 16. November 2012, 18:33:46
    läuft...

    da isn Fehler drin

    Code: PHP  [Auswählen]
    'comments' => $comment.$comment_shipping,

    muss heißen
    Code: PHP  [Auswählen]
    'comments' => $comments.$comment_shipping,
    s fehlt

    NicoDeluxe

    • Fördermitglied
    • Beiträge: 987
    • Geschlecht:
    Re: ANLEITUNG: Ein 2. Kommentarfeld in "checkout_shipping"
    Antwort #14 am: 23. Dezember 2012, 13:25:14
    Hat jemand nen Plan, wie ich im Kommentarfeld eine mindestanzahl an Zeichen (8) hinterlegen kann? Sollten es weniger als 8 Zeichen sein > Errormeldung.

    Wäre für Hilfe dankbar, bin schon seit langem am probieren aber es will nicht so recht
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware