GT Logo zurück zu good-tutorials.de
Tutorial eintragen | Registrieren | Login
Tutorial: Kontaktmail erweitern

Kommentare anzeigen | Tutorial anzeigen | Melde Dich an um das Tutorials zu deinen Favoriten hinzu zu fügen.

Kontaktmail erweitern

Man benötigt 3 Dateien:

- shop_content.php
- lang/german/lang_german.conf (bei mehr Sprachen müssen auch die entsprechenden Dateien angepasst werden)
- templates/(aktuelles Template)/module/contact_us.html

shop_content - 1

Sucht in etwa Zeile 60 nach folgendem Code:

xtc_php_mail($_POST['email'], $_POST['name'], CONTACT_US_EMAIL_ADDRESS, CONTACT_US_NAME, CONTACT_US_FORWARDING_STRING, $_POST['email'], $_POST['name'], '', '', CONTACT_US_EMAIL_SUBJECT, nl2br($_POST['message_body']), $_POST['message_body']);

if (!isset ($mail_error)) {

Dort fügt Ihr folgendes ein:

            xtc_php_mail
              (
              $_POST['email'],
              $_POST['name'],
              CONTACT_US_EMAIL_ADDRESS,
              CONTACT_US_NAME,
              CONTACT_US_FORWARDING_STRING,
              $_POST['email'],
              $_POST['name'],
              '',
              '',
              CONTACT_US_EMAIL_SUBJECT,
nl2br
                  (
                  "Name: ". $_POST['name'] . "\n" .
                  "eMail-Adresse: ". $_POST['email'] . "\n" .
                  "Rückruf: ". $_POST['rr'] . "\n" .
                  "Telefonnummer: ". $_POST['phone'] . "\n" .
                  "Rückrufzeit: ". $_POST['rrtime'] . "\n" .
                  "\n\nNachricht: ". $_POST['message_body']
                  ),
              "Name: ". $_POST['name'] . "\n" .
              "eMail-Adresse: ". $_POST['email'] . "\n" .
              "Rückruf: ". $_POST['rr'] . "\n" .
              "Telefonnummer: ". $_POST['phone'] . "\n" .
              "Rückrufzeit: ". $_POST['rrtime'] . "\n" .
              "\n\nNachricht: ". $_POST['message_body']
              );

            if (!isset ($mail_error)) {

Mit diesem Code wird die ganze Email etwas ansehnlicher :-) $_POST sind dabei dir Variablen, welche Ihr im folgenden Schritt angeben müst.

shop_content - 2

Sucht in Zeile 122 weiter nach diesem:

        require (DIR_WS_INCLUDES.'header.php');
        $smarty->assign('CONTACT_CONTENT', $contact_content);
        $smarty->assign('FORM_ACTION', xtc_draw_form('contact_us', xtc_href_link(FILENAME_CONTENT, 'action=send&coID='.(int) $_GET['coID'])));
        $smarty->assign('INPUT_NAME', xtc_draw_input_field('name', ($error ? $_POST['name'] : $first_name)));
        $smarty->assign('INPUT_EMAIL', xtc_draw_input_field('email', ($error ? $_POST['email'] : $email_address)));
        $smarty->assign('INPUT_TEXT', xtc_draw_textarea_field('message_body', 'soft', 50, 15, $_POST['']));
        $smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE));
        $smarty->assign('FORM_END', '</form>');
    }

Das ersetzt Ihr durch:

        require (DIR_WS_INCLUDES.'header.php');
        $smarty->assign('CONTACT_CONTENT', $contact_content);
        $smarty->assign('FORM_ACTION', xtc_draw_form('contact_us', xtc_href_link(FILENAME_CONTENT, 'action=send&coID='.(int) $_GET['coID'])));
        $smarty->assign('INPUT_NAME', xtc_draw_input_field('name', ($error ? $_POST['name'] : $first_name)));
        $smarty->assign('INPUT_EMAIL', xtc_draw_input_field('email', ($error ? $_POST['email'] : $email_address)));
        $smarty->assign('INPUT_TEXT', xtc_draw_textarea_field('message_body', 'soft', 50, 15, $_POST['']));
        $smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE));
//neue Variablen
        $smarty->assign('INPUT_PHONE', xtc_draw_input_field('phone', ($error ? $_POST['phone'] : $phone)));
        $smarty->assign('INPUT_RRTIME', xtc_draw_input_field('rrtime', ($error ? $_POST['rrtime'] : $rrtime), $parameters =' value="07:00" maxlength="5"'));
        $vals[]=array('id'=>1,'text'=>'ja');
        $vals[]=array('id'=>2,'text'=>'nein');
        $smarty->assign('INPUT_RR', xtc_draw_pull_down_menu('rr', $vals, $default = 2));
//neue Variablen Ende
        $smarty->assign('FORM_END', '</form>');
    }

Zur Erklärung:

$parameters sind weitere Eugenschaften des Feldes (hier input) z.B. height, width, value
xtc_draw_pull_down_menu erzeugt ein Drop-Down. Der Inhalt wird in $vals (array) angegeben. Benötigt man noch ein paar Felder müsste man z.B.
$vals[]=array('id'=>3,'text'=>'vielleicht'); usw. dazu schreiben.
$default ist die ID von der Standart mäßig eingestellten Variante.

lang/german/lang_german.conf

Hier gebt Ihr die Bezeichnungen für die Felder ein, welche in contact_us.html wieder verwendet werden. Je nach verfügbarer Sprache muss man dies auch in anderen abändern z.B. lang/english/lang_english.conf

Sucht nach [contact_us] und ergänzt (lt. Beispiel folgende Zeilen)

[contact_us]
text_name = 'Ihr Name:'
text_email = 'Ihre eMail-Adresse:'
text_message = 'Ihre Nachricht:'
text_success = 'Ihre Anfrage wurde erfolgreich zu uns gesendet.'


text_rr = 'R&uuml;ckruf:'
text_phone = 'Telefonnummer:'
text_rrtime = 'R&uuml;ckrufzeit:'

Um den Bezug herzustellen: text_rr heisst in der contact_us.html {#text_rr#}

templates/(aktuelles Template)/module/contact_us.html

Der letzte Schritt. Sobald diese Datei online ist sieht der Benutzer Eure Schandtaten.
Das ist jetzt fast reines HTML und sollte gut zu durchschauen sein.
Sucht euch folgenden Code:

<table width="100%" border="0" cellspacing="2" cellpadding="0">
        <tr>
          <td class="main">{#text_name#}</td>
          <td>{$INPUT_NAME}</td>
        </tr>
        <tr>
          <td class="main">{#text_email#}</td>
          <td>{$INPUT_EMAIL}</td>
        </tr>
        <tr>
          <td class="main" valign="top">{#text_message#}</td>
          <td>{$INPUT_TEXT}</td>
        </tr>
      </table>

nach Eurem Lieblings-<tr> fügt Ihr folgendes ein:

        <tr>
          <td class="main">{#text_rr#}</td>
          <td>{$INPUT_RR}</td>
        </tr>
        <tr>
          <td class="main">{#text_phone#}</td>
          <td>{$INPUT_PHONE}</td>
        </tr>
        <tr>
          <td class="main">{#text_rrtime#}</td>
          <td>{$INPUT_RRTIME}</td>
        </tr>

 

Das sieht bei mir z.B. so aus:

<table width="100%" border="0" cellspacing="2" cellpadding="0">
        <tr>
          <td class="main">{#text_name#}</td>
          <td>{$INPUT_NAME}</td>
        </tr>
        <tr>
          <td class="main">{#text_email#}</td>
          <td>{$INPUT_EMAIL}</td>
        </tr>
<!-- eingefügt -->
        <tr>
          <td class="main">{#text_rr#}</td>
          <td>{$INPUT_RR}</td>
        </tr>
        <tr>
          <td class="main">{#text_phone#}</td>
          <td>{$INPUT_PHONE}</td>
        </tr>
        <tr>
          <td class="main">{#text_rrtime#}</td>
          <td>{$INPUT_RRTIME}</td>
        </tr>
<!-- eingefügt ende -->       
        <tr>
          <td class="main" valign="top">{#text_message#}</td>
          <td>{$INPUT_TEXT}</td>
        </tr>
      </table>

Abspeichern, hoch laden und schon sollt das ganze funktionieren.

Das Endergebnis:

 

Viel Spass beim basteln wünscht André