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: Artikel Anfrage

    gmos

    • Neu im Forum
    • Beiträge: 15
    Re: MODUL: Artikel Anfrage
    Antwort #180 am: 07. Dezember 2011, 19:47:05
    Mir ist noch ein kleiner Fehler aufgefallen.

    in product_info

    Code: PHP  [Auswählen]
    {$language}/YOUR_BUTTON.gif"" alt="{#text_product_question#}" /></a></p> {*Link von noRiddle verbessert und Bild für Button eingefügt*}

    Hinter YOUR_BUTTON.gif ist ein " zu viel.

    [EDIT Tomcraft 07.12.2011: Fehler in Modul version 1.02 aus Beitrag 1 korrigiert.]

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #181 am: 07. Dezember 2011, 20:01:44
    Uupss, sorry, danke für die Mitteilung.
    Kannst du das verbessern Tomcraft ?

    Merci,
    noRiddle

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.161
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #182 am: 07. Dezember 2011, 20:32:15
    Argh... sei so lieb und besser das im Paket aus, ich hänge es dann wieder in Beitrag 1 an. ;-)

    Grüße

    Torsten

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #183 am: 07. Dezember 2011, 20:44:54
    Okay, here you go.
    Sorry für die hervorgerufene Arbeit.
    Du machst ja wirklich schon genug hier.

    Greetings,
    noRiddle

    [EDIT Tomcraft 07.12.2011: Modul in Beitrag 1 aktualisiert.]

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.161
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #184 am: 07. Dezember 2011, 21:31:25
    Danke dir! :thx:

    Grüße

    Torsten

    Makrolibelle

    • Neu im Forum
    • Beiträge: 35
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #185 am: 19. Dezember 2011, 21:04:52
    [...] Bevor wieder die Frage kommt warum die Artikelnummer nicht angezeigt wird, die muß natürlich auch vergeben sein. ;-)
    [...]

    Auch auf die Gefahr hin das ich mich ganz doll beliebt mache. ;) Meine Artikel-Nummer wird leider nicht mit in das Form Field übergeben Artikelnamen wird übergeben.
    Bin die Anleitung nun mehrmals durch gegangen habe auch die Dateien von Tomcraft ein paar Posts weiter vorne genutzt und meine damit ersetzt, aber auch damit leider kein Erfolg erzielt.

    Livepreview unter http://www.1stalphanet.com/shopmodified eCommerce Shopsoftware/

    In der "product_info.html" scheint alles korrekt eingebaut zu sein denn der Link der zum Kontaktformular verweist enthält den Produktnamen und Artikelnummer

    Code: PHP  [Auswählen]
    http://www.1stalphanet.com/shopmodified eCommerce Shopsoftware/shop_content.php?coID=7&products_id=2&products_name=Edelstahl%20Ring%20-%20Testartikel&products_model=Art.Nr.:8154713713

    hier mal der Code von der "contact_us.php":

    Code: PHP  [Auswählen]
    <?php
    //include by shop_content.php
           
            //BOF - web28 - 2010-07-17 - move language definition on top
        require (DIR_WS_LANGUAGES.$_SESSION['language'].'/contact_us.php');
            //EOF - web28 - 2010-07-17 - move language definition on top
       
            $error = false;
            if (isset ($_GET['action']) && ($_GET['action'] == 'send')) {
                   
                    //BOF - web28 - 2010-07-17 - move language definition on top
                    //require (DIR_WS_LANGUAGES.$_SESSION['language'].'/contact_us.php');
                    //EOF - web28 - 2010-07-17 - move language definition on top           
           
                    //BOF - web28 - 2010-04-03 - New error handling for required fileds
                    //jedes Feld kann hier auf die gewünschte Bedingung getestet und eine Fehlermeldung zugeordnet werden
                    //BOF error handling
                    $err_msg = '';         
                    if (!xtc_validate_email(trim($_POST['email']))) $err_msg .= ERROR_EMAIL;
                    if ((strtoupper($_POST['vvcode']) != $_SESSION['vvcode']) || $_SESSION['vvcode']=='') $err_msg .= ERROR_VVCODE;
                    if (trim($_POST['message_body']) == '') $err_msg .= ERROR_MSG_BODY;
                    //EOF error handling
                           
                    $smarty->assign('error_message', ERROR_MAIL . $err_msg);
                   
                    if ($err_msg != '') $error = true;
                   
                    //Wenn kein Fehler Email formatieren und absenden
                    if (!$error) {                 
                            // Datum und Uhrzeit
                            $datum= date("d.m.Y");
                            $uhrzeit= date("H:i");                                 
                           
                            // BOF - Tomcraft - 2009-11-05 - Advanced contact form (additional fields)
                            $additional_fields = '';                       
                            if (isset($_POST['company']))  $additional_fields =  EMAIL_COMPANY. $_POST['company'] . "\n" ;
                            if (isset($_POST['street']))   $additional_fields .= EMAIL_STREET . $_POST['street'] . "\n" ;
                            if (isset($_POST['postcode'])) $additional_fields .= EMAIL_POSTCODE . $_POST['postcode'] . "\n" ;
                            if (isset($_POST['city']))     $additional_fields .= EMAIL_CITY . $_POST['city'] . "\n" ;
                            if (isset($_POST['phone']))    $additional_fields .= EMAIL_PHONE . $_POST['phone'] . "\n" ;
                            if (isset($_POST['products_name']))      $additional_fields .= "Frage zum Artikel: " . $_POST['products_name'] . "\n";
                            // EOF - Tomcraft - 2009-11-05 - Advanced contact form (additional fields)
                           
                            // BOF - Tomcraft - 2009-11-05 - Advanced contact form (check for USE_CONTACT_EMAIL_ADDRESS)
                            $use_contact_email_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'USE_CONTACT_EMAIL_ADDRESS'");
                            $use_contact_email = xtc_db_fetch_array($use_contact_email_query);
                            if ($use_contact_email['configuration_value'] == 'true') {
                                $email = trim(CONTACT_US_EMAIL_ADDRESS);
                                    $name = CONTACT_US_NAME;
                                    $notify =  EMAIL_NOTIFY . "\n\n";                              
                            } else {
                                    $email = trim($_POST['email']);
                                    $name = $_POST['name'];
                                    $notify =  '';                                 
                            }
                            // EOF - Tomcraft - 2009-11-05 - Advanced contact form (check for USE_CONTACT_EMAIL_ADDRESS)
                           
                            $email_layout = sprintf(EMAIL_SENT_BY, CONTACT_US_NAME, CONTACT_US_EMAIL_ADDRESS, $datum , $uhrzeit) . "\n" .
                                                            "--------------------------------------------------------------" . "\n" . $notify .
                                                            EMAIL_NAME. $_POST['name'] . "\n" .
                                                            EMAIL_EMAIL. trim($_POST['email']) . "\n" .
                                                            // BOF - Tomcraft - 2009-11-05 - Advanced contact form (additional fields)
                                                            $additional_fields .
                                                            // EOF - Tomcraft - 2009-11-05 - Advanced contact form (additional fields)
                                                            "\n".EMAIL_MESSAGE."\n ". $_POST['message_body'] . "\n";

                            xtc_php_mail($email,
                                                     $name,
                                                     CONTACT_US_EMAIL_ADDRESS,
                                                     CONTACT_US_NAME,
                                                     CONTACT_US_FORWARDING_STRING,
                                                     $email,
                                                     $name,                                                                                  
                                                     '',
                                                     '',
                                                     CONTACT_US_EMAIL_SUBJECT,
                                                     nl2br($email_layout),
                                                     $email_layout
                                                     );
                           
                            if (!isset ($mail_error)) {
                                    xtc_redirect(xtc_href_link(FILENAME_CONTENT, 'action=success&coID='.(int) $_GET['coID']));
                            } else {
                                    $smarty->assign('error_message', $mail_error);
                            }
                    }
                    //EOF - web28 - 2010-04-03 - New error handling for required fileds
            }

            $smarty->assign('CONTACT_HEADING', $shop_content_data['content_heading']);
            if (isset ($_GET['action']) && ($_GET['action'] == 'success')) {
                    $smarty->assign('success', '1');
                    $smarty->assign('BUTTON_CONTINUE', '<a href="'.xtc_href_link(FILENAME_DEFAULT).'">'.xtc_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE).'</a>');

            } else {
                    if ($shop_content_data['content_file'] != '') {
                            ob_start();
                            if (strpos($shop_content_data['content_file'], '.txt'))
                                    echo '<pre>';
                            include (DIR_FS_CATALOG.'media/content/'.$shop_content_data['content_file']);
                            if (strpos($shop_content_data['content_file'], '.txt'))
                                    echo '</pre>';
                    $contact_content = ob_get_contents();
                    ob_end_clean();
                    } else {
                            $contact_content = $shop_content_data['content_text'];
                    }
                    require (DIR_WS_INCLUDES.'header.php');
                   
                    // BOF - Tomcraft - 2009-11-05 - Advanced contact form (fix override by error request)
                    if (isset ($_SESSION['customer_id']) && !$error) {
                    // EOF - Tomcraft - 2009-11-05 - Advanced contact form (fix override by error request)
                            $customers_name = $_SESSION['customer_first_name'].' '.$_SESSION['customer_last_name'];
                            // BOF - Dokuman - 2009-09-04: preallocate email address on contact form
                            //$email_address = $_SESSION['customer_email_address'];
                            $c_query = xtc_db_query("SELECT * FROM ".TABLE_CUSTOMERS." WHERE customers_id='".$_SESSION['customer_id']."'");
                            $c_data = xtc_db_fetch_array($c_query);
                            $email_address = stripslashes($c_data['customers_email_address']);
                            // EOF - Dokuman - 2009-09-04: preallocate email address on contact form
                            // BOF - Tomcraft - 2009-11-05 - Advanced contact form (additional fields)
                            $phone = stripslashes($c_data['customers_telephone']);
                            $company = stripslashes($c_data['entry_company']);
                            $street = stripslashes($c_data['entry_street_address']);
                            $postcode= stripslashes($c_data['entry_postcode']);
                            $city = stripslashes($c_data['entry_city']);
                            // EOF - Tomcraft - 2009-11-05 - Advanced contact form (additional fields)
                    }

             //BOF PRODUKT QUESTION
             $products_info = '';
             $products_name_field = '';

             if (trim($_GET['products_name'] != '')) {
               //$products_info = trim($_GET['products_name']);
               $products_name_field = trim($_GET['products_name']);
             }
             if (trim($_GET['products_model'] != '')) {
               //$products_info = trim($products_info . ' - ' . trim($_GET['products_model']));
               $products_name_field = trim($products_name_field . ' - ' . trim($_GET['products_model']));
             }
             if ($products_info != '') {
               $products_info = trim($_GET['question'])."\n" . $products_info . "\n";
             }
             if (!$error) $message_body = $products_info . "\n";
             //EOF PRODUKT QUESTION
                   
                    $smarty->assign('CONTACT_CONTENT', $contact_content);
                    //BOF - Dokuman - 2009-12-23 - send contact form information with SSL
                    //$smarty->assign('FORM_ACTION', xtc_draw_form('contact_us', xtc_href_link(FILENAME_CONTENT, 'action=send&coID='.(int) $_GET['coID'])));
                    $smarty->assign('FORM_ACTION', xtc_draw_form('contact_us', xtc_href_link(FILENAME_CONTENT, 'action=send&coID='.(int) $_GET['coID'], 'SSL')));
                    //EOF - Dokuman - 2009-12-23 - send contact form information with SSL
                    //BOF - web28 - 2009-07-14 - FIX SSL capchta image path
                    $smarty->assign('VVIMG', '<img src="'.FILENAME_DISPLAY_VVCODES.'" alt="Captcha" />');
                    //EOF - web28 - 2009-07-14 - FIX SSL capchta image path
                    $smarty->assign('INPUT_CODE', xtc_draw_input_field('vvcode', '', 'size="8" maxlength="6"', 'text', false));
                    $smarty->assign('INPUT_NAME', xtc_draw_input_field('name', ($error ? $_POST['name'] : $customers_name), 'size="30"'));
                    $smarty->assign('INPUT_EMAIL', xtc_draw_input_field('email', ($error ? $_POST['email'] : $email_address), 'size="30"'));
                    // BOF - Tomcraft - 2009-11-05 - Advanced contact form (additional fields)
                    $smarty->assign('INPUT_PHONE', xtc_draw_input_field('phone', ($error ? $_POST['phone'] : $phone), 'size="30"'));
                    $smarty->assign('INPUT_COMPANY', xtc_draw_input_field('company', ($error ? $_POST['company'] : $company), 'size="30"'));
                    $smarty->assign('INPUT_STREET', xtc_draw_input_field('street', ($error ? $_POST['street'] : $street), 'size="30"'));
                    $smarty->assign('INPUT_POSTCODE', xtc_draw_input_field('postcode', ($error ? $_POST['postcode'] : $postcode), 'size="30"'));
                    $smarty->assign('INPUT_CITY', xtc_draw_input_field('city', ($error ? $_POST['city'] : $city), 'size="30"'));
                    $smarty->assign('INPUT_PRODUCTS_NAME', xtc_draw_input_field('products_name', ($error ? xtc_db_input($_POST['products_name']) : $products_name_field), 'size="30" ')); //eventuelle readonly
                    // EOF - Tomcraft - 2009-11-05 - Advanced contact form (additional fields)
                    // BOF - Tomcraft - 2009-09-29 - fixed word-wrap in contact-form
                    //$smarty->assign('INPUT_TEXT', xtc_draw_textarea_field('message_body', 'soft', 50, 15, ($error ? xtc_db_input($_POST['message_body']) : $first_name)));
                    // BOF - Tomcraft - 2010-02-18 - Fixed width of textarea in FireFox under Linux.
                    //$smarty->assign('INPUT_TEXT', xtc_draw_textarea_field('message_body', 'soft', 50, 15, ($error ? $_POST['message_body'] : $message_body)));
                    $smarty->assign('INPUT_TEXT', xtc_draw_textarea_field('message_body', 'soft', 45, 15, ($error ? $_POST['message_body'] : $message_body)));
                    // EOF - Tomcraft - 2010-02-18 - Fixed width of textarea in FireFox under Linux.
                    // EOF - Tomcraft - 2009-09-29 - fixed word-wrap in contact-form
                    $smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_send.gif', IMAGE_BUTTON_SEND));
                    $smarty->assign('FORM_END', '</form>');
            }

            $smarty->assign('language', $_SESSION['language']);

            $smarty->caching = 0;
            $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/contact_us.html');
    ?>

    In der lnguage file sind die Sachen auch drinn und in meiner "product_info" ist der Link so verbaut:

    Code: PHP  [Auswählen]
    <a href="{php}echo xtc_href_link(FILENAME_CONTENT,'coID=7','NONSSL',true,false);{/php}&products_id={$PRODUCTS_ID}&products_name={$PRODUCTS_NAME}&products_model={#model#}{$PRODUCTS_MODEL}" class="product_question" title="{#text_product_question#}"><img src="{$tpl_path}img/frage.png" alt="{#text_product_question#}" /></a>

    Hatte den Cache geleert hab die Artikelnummer nochmals extra neu vergeben da ich die Testartikel alle nur kopiert hatte und somit mehrmals vergeben waren. Auch das hat keine abhilfe geschaffen.

    Also wenn jemand eine Idee hat an was es liegen könnte wäre ich dankbar.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #186 am: 20. Dezember 2011, 00:29:14
    Hi Makrolibelle.

    Mach mal aus:

    Code: PHP  [Auswählen]
    $smarty->assign('INPUT_PRODUCTS_NAME', xtc_draw_input_field('products_name', ($error ? xtc_db_input($_POST['products_name']) : $products_name_field), 'size="56"'));

    folgendes:

    Code: PHP  [Auswählen]
    $smarty->assign('INPUT_PRODUCTS_NAME', xtc_draw_input_field('products_name_field', ($error ? xtc_db_input($_POST['products_name_field']) : $products_name_field), 'size="56"'));

    Dann sollte auch die Artikelnummer ins Feld eingetragen werden.

    Ich hatte das nicht überprüft, weil ich in meiner Testumgebung keine Artikenummern vergeben hatte, sorry.
    Ist aber ja auch nicht mein "Modul", hatte ja lediglich die Einbaubescheibung korrigiert.

    Ich finde die Implementation hat ohnehin eine Schwäche.
    Wenn ein Kunde nämlich einen Error hervorruft, beispielsweise den Captcha-Code verkehrt eingibt, ist danach der Eintrag "Frage zu Artikel"  leer, da die Daten ja über die URL übertragen wurden und diese beinhaltet dann ja die Parameter nicht mehr...

    Gruß,
    noRiddle

    Makrolibelle

    • Neu im Forum
    • Beiträge: 35
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #187 am: 20. Dezember 2011, 00:42:51
    Vielen vielen Dank noRiddle, hat prima funktioniert.

    Selbst wenn es noch besser gestaltet werden kann so sieht es doch aus Kundensicht doch gleich etwas Service-orientiert aus.  ;-)

    Und ich bin froh, dass solche Tools zur Verfügung gestellt werden, da ich dies leider selbst nicht schreiben kann.

    Bei mir geht alles nach try & error.  :-D

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #188 am: 20. Dezember 2011, 13:07:56
    So liebe Leute.

    Nachdem Makrolibelle mich auf einen noch vorhandenen Fehler aufmerksam gemacht hat, hier nochmals eine überarbeitete Version.

    1. Nach einer Error-Meldung bleibt der Artikelname nun im Feld erhalten
    2. Gab es noch einiges an überflüssigem Code. Es wurden beispielsweise die GET-Variablen von products_name und products_model getrennt in einer if-Funktion abgefragt, was unsinnig ist, da:

    Code: PHP  [Auswählen]
    $_GET['products_model']

    nie leer ist wenn

    Code: PHP  [Auswählen]
    $_GET['products_name']

    nicht leer ist.

    Die Konstruktion des Links:

    Code: PHP  [Auswählen]
    <a href="{php}echo xtc_href_link(FILENAME_CONTENT,'coID=7','NONSSL',true,false);{/php}&products_id={$PRODUCTS_ID}&products_name={$PRODUCTS_NAME}&products_model={#model#}{$PRODUCTS_MODEL}" class="product_question"><img src="{$tpl_path}buttons/{$language}/YOUR_BUTTON.gif" alt="{#text_product_question#}" /></a>

    bewirkt, daß zumindest die Sprachkonstante #model# ja immer vergeben ist und somit ist

    Code: PHP  [Auswählen]
    $_GET['products_model']

    ja nie leer wenn der Link angeklickt wird.

    Ist keine Artikelnummer vergeben, steht halt in der gesendeten E-Mail etwas wie:

    Zitat
    Frage zu Artikel: Blablablabla - Art.Nr.:

    Ist sie vergeben, steht die Nummer dann auch da.

    Lange Rede kurzer Sinn:
    Im Anhang erneut die Verbesserung (please Tomcraft), :-) diesmal auch mit der kompletten "contact_us.php", welche man einfach ersetzen kann insofern man folgende Versionen laufen hat:
    Version 1.05 SP1a
    Version 1.05 SP1b

    Grüsse,
    noRiddle

    [EDIT Tomcraft 20.12.2011: Modul in Beitrag 1 angehängt.]

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.161
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #189 am: 20. Dezember 2011, 13:28:26
    Danke dir, aber bring deine Copyright Hinweis bitte nicht im Modulnamen unter und auch nicht im Namen von Dateien innerhalb des Paketes, sondern setze dich einfach innerhalb der "Artikel_Anfrage_1.03_Installation" mit rein.

    Grüße

    Torsten

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #190 am: 20. Dezember 2011, 13:33:33
    Oh, sorry, kommt nicht wieder vor.

    noRiddle

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.161
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #191 am: 03. Januar 2012, 20:50:29
    Ich habe Modul-Version 1.03 in Beitrag 1 aktualisiert.

    Es gab ein Problem, wenn ein Artikelname Sonderzeichen enthielt, dann wurde der Artikelname nicht übernommen. Das habe ich mittels |htmlentities abgefangen, also:

    Code: PHP  [Auswählen]
    <p><a href="{php}echo xtc_href_link(FILENAME_CONTENT,'coID=7','NONSSL',true,false);{/php}&products_id={$PRODUCTS_ID}&products_name={$PRODUCTS_NAME|htmlentities}&products_model={#model#}{$PRODUCTS_MODEL}" class="product_question"><img src="{$tpl_path}buttons/{$language}/YOUR_BUTTON.gif" alt="{#text_product_question#}" /></a></p>

    Grüße

    Torsten

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #192 am: 04. Januar 2012, 06:55:22
    Hi Tomcraft.

    Das ist gut, danke.

    Allerdings ist das mit den Sonderzeichen im Artikelnamen allgemein ein Problem.
    Nehmen wir nur Gänsefüsschen, welche z.B. bei Zollangaben schonmal vorkommen.
    Da der Artikelname auch als alt-tag für "images" benutzt wird führt dies immer zu invalidem Code, bzw. Codesalat (siehe Firebug).
    Man muß also ohnehin html entities benutzen.
    Es sei denn, ja es sei denn, da fällt einem Durchblicker, welcher den Shop in und auswendig kennt 'ne andere Lösung für ein.

    Grüsse,
    noRiddle

    eXcite

    • Fördermitglied
    • Beiträge: 23
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #193 am: 20. Januar 2012, 17:57:00
    Hier wurde schon mehrfach nach einer Tab-Integration gefragt, leider gab es noch keine Antwort darauf.

    Hat jemand die Anfrage als eigenen Tab realisiert? Ich würde es gern umsetzen, weiß aber leider nicht wie.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.707
    • Geschlecht:
    Re: MODUL: Artikel Anfrage
    Antwort #194 am: 23. Januar 2012, 17:04:46
    Dafür müsstest du ein extra Kontaktformular anlegen (ähnlich wie bei Produkterinnerung, vielleicht nur professioneller) und dieses dann in einen Tab integrieren.
    Als Vorlage oder Idee könnte dir vielleicht auch xtc-callback dienen...

    Gruß,
    noRiddle
    97 Antworten
    40490 Aufrufe
    13. März 2019, 12:34:42 von goair
    4 Antworten
    1612 Aufrufe
    16. Januar 2020, 12:55:41 von hpzeller
    2 Antworten
    155 Aufrufe
    29. November 2023, 09:10:16 von Timm