|
|||
|
Manchmal reicht es nicht aus, dass das Kontaktformular nur unter dem Link "Kontakt" zu finden ist - Man kann es auch hinter (?ber den ContentManager verwaltete) Seiten h?ngen.
In Zeile 45 bis 54 der Datei "shop_content.php" (im Hauptverzeichnis des Shops) wird festgelegt, welcher Content-Seite das Kontaktformular angeh?ngt werden soll. Voreingestellt ist hier die Nummer 7. Orginal Code:
if ($_GET['coID'] != 7) {
require (DIR_WS_INCLUDES.'header.php');
}
if ($_GET['coID'] == 7 && $_GET['action'] == 'success') {
require (DIR_WS_INCLUDES.'header.php');
}
$smarty->assign('CONTENT_HEADING', $shop_content_data['content_heading']);
if ($_GET['coID'] == 7) {
Ge?ndert Code:
if ($_GET['coID'] != 7 && $_GET['coID'] != 9) { // "9" = ID der zus?tzlichen Seite mit Kontaktformular
require (DIR_WS_INCLUDES.'header.php');
}
if (($_GET['coID'] == 7 && $_GET['action'] == 'success')||($_GET['coID'] == 9 && $_GET['action'] == 'success')) {
require (DIR_WS_INCLUDES.'header.php');
}
$smarty->assign('CONTENT_HEADING', $shop_content_data['content_heading']);
if ($_GET['coID'] == 7 || $_GET['coID'] == 9) {
Das ist nat?rlich ein bisschen aufw?ndiger... Vielleicht hilft's ja jemandem, der vor ?hnlichen Aufgaben steht - deshalb hier der Code der von mir ge?nderten Dateien. VERSION: xt:Commerce 3.04 23.03.06: FEHLER ENTDECKT!! --> Bitte NICHT die "xtc_php_mail.inc.php" bearbeiten! Die muss so bleiben, wie sie ist, sonst gibt's Probleme bei Bestellungen! Sorry. Hier jetzt die korrigierte Anleitung! Schritt 1) Erweiterung der Datei "shop_content.php" (im Hauptverzeichnis) - die ge?nderten Stellen sind durch Kommentarzeichen gekennzeichnet Code:
<?php /* ----------------------------------------------------------------------------------------- $Id: shop_content.php 1303 2005-10-12 16:47:31Z mz $ XT-Commerce - community made shopping [url=http://www.xt-commerce.com]http://www.xt-commerce.com[/url] Copyright ? 2003 XT-Commerce ----------------------------------------------------------------------------------------- based on: ? 2000-2001 The Exchange Project (earlier name of osCommerce) ? 2002-2003 osCommerce(conditions.php,v 1.21 2003/02/13); www.oscommerce.com ? 2003 nextcommerce (shop_content.php,v 1.1 2003/08/19); www.nextcommerce.org Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ require ('includes/application_top.php'); // create smarty elements $smarty = new Smarty; // include boxes require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php'); // include needed functions require_once (DIR_FS_INC.'xtc_validate_email.inc.php'); if (GROUP_CHECK == 'true') { $group_check = "and group_ids LIKE '%c_".$_SESSION['customers_status']['customers_status_id']."_group%'"; } $shop_content_query = xtc_db_query("SELECT content_id, content_title, content_heading, content_text, content_file FROM ".TABLE_CONTENT_MANAGER." WHERE content_group='".(int) $_GET['coID']."' ".$group_check." AND languages_id='".(int) $_SESSION['languages_id']."'"); $shop_content_data = xtc_db_fetch_array($shop_content_query); $breadcrumb->add($shop_content_data['content_title'], xtc_href_link(FILENAME_CONTENT.'?coID='.(int) $_GET['coID'])); if ($_GET['coID'] != 7 && $_GET['coID'] != 9) { // "9" = Gruppe von Rezept-Info require (DIR_WS_INCLUDES.'header.php'); } if (($_GET['coID'] == 7 && $_GET['action'] == 'success')||($_GET['coID'] == 9 && $_GET['action'] == 'success')) { // "9" = Gruppe von Rezept-Info require (DIR_WS_INCLUDES.'header.php'); } $smarty->assign('CONTENT_HEADING', $shop_content_data['content_heading']); if ($_GET['coID'] == 7 || $_GET['coID'] == 9) { // "9" = Gruppe von Rezept-Info $error = false; if (isset ($_GET['action']) && ($_GET['action'] == 'send')) { if (xtc_validate_email(trim($_POST['email']))) { 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 // einige ?nderungen, um erzeugte Mail ?bersichtlich zu gestalten ( "Name: ". $_POST['name'] . "\n" . "eMail-Adresse: ". $_POST['email'] . "\n" . "Straße: ". $_POST['street'] . "\n" . "PLZ und Ort: ". $_POST['city'] . "\n" . "Telefonnummer: ". $_POST['phone'] . "\n" . "\n\nNachricht: ". $_POST['message_body'] ), "Name: ". $_POST['name'] . "\n" . "eMail-Adresse: ". $_POST['email'] . "\n" . "Straße: ". $_POST['street'] . "\n" . "PLZ und Ort: ". $_POST['city'] . "\n" . "Telefonnummer: ". $_POST['phone'] . "\n" . "\n\nNachricht: ". $_POST['message_body'] ); if (!isset ($mail_error)) { xtc_redirect(xtc_href_link(FILENAME_CONTENT, 'action=success&coID='.(int) $_GET['coID'])); } else { $smarty->assign('error_message', $mail_error); } } else { // error report hier einbauen $smarty->assign('error_message', ERROR_MAIL); $error = true; } } $smarty->assign('CONTACT_HEADING', $shop_content_data['content_title']); 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'); $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))); /* EINGEF?GT */ $smarty->assign('INPUT_STREET', xtc_draw_input_field('street', ($error ? $_POST['street'] : $from_street))); $smarty->assign('INPUT_CITY', xtc_draw_input_field('city', ($error ? $_POST['city'] : $from_city))); $smarty->assign('INPUT_PHONE', xtc_draw_input_field('phone', ($error ? $_POST['phone'] : $from_phone))); /* EINGEF?GT ENDE */ $smarty->assign('INPUT_TEXT', xtc_draw_textarea_field('message_body', 'soft', 50, 15, $_POST[''])); $smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_send.gif', IMAGE_BUTTON_CONTINUE));//$smarty->assign('BUTTON_SUBMIT', xtc_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE)); $smarty->assign('FORM_END', '</form>'); } $smarty->assign('language', $_SESSION['language']); $smarty->caching = 0; $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/contact_us.html'); } 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>'; $smarty->assign('file', ob_get_contents()); ob_end_clean(); } else { $content_body = $shop_content_data['content_text']; } $smarty->assign('CONTENT_BODY', $content_body); $smarty->assign('BUTTON_CONTINUE', '<a href="javascript:history.back(1)">'.xtc_image_button('button_back.gif', IMAGE_BUTTON_BACK).'</a>'); $smarty->assign('language', $_SESSION['language']); // set cache ID if (!CacheCheck()) { $smarty->caching = 0; $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/content.html'); } else { $smarty->caching = 1; $smarty->cache_lifetime = CACHE_LIFETIME; $smarty->cache_modified_check = CACHE_CHECK; $cache_id = $_SESSION['language'].$shop_content_data['content_id']; $main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/content.html', $cache_id); } } $smarty->assign('language', $_SESSION['language']); $smarty->assign('main_content', $main_content); $smarty->caching = 0; if (!defined(RM)) $smarty->load_filter('output', 'note'); $smarty->display(CURRENT_TEMPLATE.'/index.html'); ?> Schritt 3) Erweiterung der "lang_german.conf" (Ordner "lang"), damit man an den entsprechenden Stellen die "Beschriftung" mit Smarty bewerkstelligen kann Bereich "[contact us]" Code:
[contact_us] text_name = 'Ihr Name:' text_email = 'Ihre eMail-Adresse:' text_message = 'Ihre Nachricht:' text_success = 'Ihre Anfrage wurde erfolgreich zu uns gesendet.' #NEU EINGEF?GT text_street = 'Straße:' text_city = 'PLZ und Ort:' text_phone = 'Ihre Telefonnummer:' Code:
{config_load file="$language/lang_$language.conf" section="contact_us"}
<h2><span>{$CONTACT_HEADING}</span></h2>
<hr />
{if $error_message!=''}
<br />
<div style="border: 1px solid; border-color: #990000;" align="center">{$error_message}</div>
<br />
{/if}
{if $success!='1'}
{$FORM_ACTION}
<p>{$CONTACT_CONTENT}</p>
<div class="Linie"><hr /></div>
<table class="formArea" width="100%">
?<tr>
?<td width="30%">{#text_name#}</td>
?<td>{$INPUT_NAME}</td>
?</tr>
?<tr>
?<td>{#text_email#}</td>
?<td>{$INPUT_EMAIL}</td>
?</tr>
</table>
{php} if ($_GET['coID'] == 9) { {/php}
<table class="formArea" width="100%">
?<tr>
?<td width="30%">{#text_street#}</td>
?<td>{$INPUT_STREET}</td>
?</tr>
?<tr>
?<td>{#text_city#}</td>
?<td>{$INPUT_CITY}</td>
?</tr>
?<tr>
?<td>{#text_phone#}</td>
?<td>{$INPUT_PHONE}</td>
?</tr>
</table>
{php} } {/php}
<table class="formArea" width="100%">
?<tr>
?<td width="30%" valign="top">{#text_message#}</td>
?<td valign="top">{$INPUT_TEXT}</td>
?</tr>
</table>
<p style="text-align: right">{$BUTTON_SUBMIT}</p>
{$FORM_END}
{else}
<p>{#text_success#}</p>
<div class="Linie"><hr /></div>
<p style="text-align: right">{$BUTTON_CONTINUE}</p>
{/if}
--> Der Mailtext der erzeugten Mails sieht ungef?hr so aus: "Name: Theodor Testkunde eMail-Adresse: testname@testdomain.com Stra?e: Teststra?e 123 PLZ und Ort: 12345 Testnasenhausen Telefonnummer: 0 123 45 67 89 Nachricht: Testtext und eine Testnachricht. Sch?ne Gr??e" --> Die Adress-Daten sind keine Pflicht-Angaben. Auch findet keine ?berpr?fung der Eingaben statt - eMail-Adresse und Name sind jedoch weiterhin Pflichtfelder. :-) Viel Spa?! |
|
|||
|
Hallo pufaxx
ich habe heute Deine Anleitung perfekt umsetzen k?nnen. Ein grosses Dankesch?n f?r diese Anleitung :laugh: Noch eine Zwischenfrage. Hast du eine Ahnung wie man die zus?tzlichen Felder einer ?berpr?fung unterziehen kann? Momentan werden ja nur e-mail und Name gepr?ft. Ich w?rde jedoch gerne auch die neuen Felder ?berpr?fen. Falls du auch daf?r eine L?sung hast, bin ich nat?rlich ganz Ohr! Nochmals danke und Gruss Patrik |
|
|||
|
Ich habe das Formular eben mal eingebaut und ich muss sagen SUPER. Ich kann nur Danke sagen.
Mal als Anregung. Wie währe es denn mit einem Formular Generator? Oder eine Anleitung wie mal Dropdown Felder oder Radio buttons usw. einfügen kann. |
|
|||
|
erstmal danke für die anleitung, allerdings krieg ichs irgendwie nicht ganz gebacken
![]() hab den code soweit abgeändert und das normale kontakformular funktionier soweit auch (dh. ich sehe die zusätzlichen felder, wenn ich die If abfrage aus der contact_us.html rausnehme): http://www.steindesign-shop.de/Kontakt:_:7.html allerdings sieht die zweite seite, auf der das kontaktformular + zusatzfelder erscheinen sollte sehr komisch aus ... siehe: http://www.steindesign-shop.de/Konta...ntrag:_:9.html ich hab irgendwie keine ahnung woran das liegen kann ![]() MfG Daniel |
|
|||
|
Zitat:
die Fragezeichen bekommst du weg, indem du den code für die "contact_us.html" jeweils ohne "?" am beginn der zeile einfügst. MfG Daniel |
|
|||
|
habe die Änderungen eingebaut, aber es kommt nur die letzte Message an,
alle vorhergehenden ob Name, mail oder sonstige gehen verloren, auch der Text davor wie "Nachricht:" geht verloren, habe schon alles mögliche ausprobiert, aber es will nicht shop ist zwar noch beta aber in den dateien kann ich auch keinen unterschied zu 3.04 feststellen, auch nicht in den betreffenden inc's kann wer helfen ? hat sich erledigt hab meinen fehler gefunden (falscher Datei-link) Geändert von forest2 (27.10.2006 um 16:24 Uhr) |
![]() |
| Lesezeichen |
| Stichworte |
| erweitern, kontaktformular, mehrfach, nutzen |
| Themen-Optionen | |
| Ansicht | |
|
|