Sie sind hier:  LinkpfeilPowerCMS LinkpfeilPlugins und Co LinkpfeilPlugins »Kontakt_form


Plugin kontakt_form

Dieses Plugin ermöglicht es dem Besucher Kontakt zum Webbetreiber aufzunehmen.

Parameter

Das Plugin kennt mehrere Parameter:

  • empfaenger - muss die Emailadresse des Empfängers beinhalten (Standard: kein eMail-Adresse)
  • template1 - das ist das vom Besucher auszufüllende Formular (Standard: kontakt.tpl)
  • template2 - das ist die Rückmeldung bei erfolgreichem Versand (Standard: kontakt_ok.tpl)
  • template3 - das ist die Rückmeldung wenn die IP-Sperre einsetzt (Standard: kontakt_sperre.tpl)
  • prefix - alle Felder des Formulares müssen diesen Prefix haben (Standard: pw_kontakt_)
  • test - wenn 1 befindet sich das Plugin im Testmodus, gesendete Mails gehen alle an den Empfänger (Standard: 0)
  • Sperrzeit - die Sperrzeit (in Sekunden) zu der IP nach dem ersten Versand (Standard: 1800)

Standardeinsatz

Aufruf innerhalb einer Seite mit

{kontakt_form empfaenger='meinemail@meinedomain'}

Bei diesem Aufruf werden die Defaulteinstellungen eingesetzt, ansonsten sind die gewünschten Parameter zu übergeben.

Funktionsweise

Der Besucher kann ein Formular nur erfolgreich senden, wenn die IP - Sperre nicht in Kraft ist und wenn die Felder ausgefüllt sind, die minimal erforderlich sind.

Die erforderlichen Felder sind immer Name, Email, Betreff und Nachricht.

Enthält ein Formular mehr Felder sind diese optional, aber nicht zwingend erforderlich.

Füllt ein Besucher in einem Formular nicht die Zwangsfelder aus und versucht zu senden, kehrt das Plugin mit Hinweisen zur Eingabe zurück.

Sind alle Voraussetzungen erfüllt , wird das Formular gesendet - es geht an den Empfänger.

Eine Kopie der Mail geht als Beleg an den Absender.

Es wird eine Erfolgsmeldung ausgegeben und die IP - Sperre wird aktiviert.

Formulare

Die Formulare bzw. die Templates sind im Ordner Templates abgelegt.

Kontakt.tpl

{if isset($mailok) and $mailok neq 1} <h4>Die angegebene Mailadresse scheint nicht korrekt zu sein !</h4>{/if}
{if !isset($ok) or $ok eq 0 or $ok eq 3}

<h3>Bitte in allen Feldern die passende Information eintragen !</h3>
<form action="{$action}" method="post">
<table border="0" cellpadding="1" cellspacing="2" summary="">
<tr>
<td>Name:<input type="hidden" name="formname" value="kontakt.tpl"/> </td>

<td><input name="pw_kontakt_Name" size="40" type="text" value="{$pw_kontakt_Name}"/></td>
</tr>
<tr>
<td>eMail:</td>
<td><input name="pw_kontakt_Email" size="40" type="text" value="{$pw_kontakt_Email}"/></td>

</tr>
<tr>
<td>Betreff:</td>
<td><input name="pw_kontakt_Betreff" size="40" type="text" value="{$pw_kontakt_Betreff}"/></td>
</tr>
<tr>

<td>Nachricht:</td>
<td><textarea cols="50" name="pw_kontakt_Nachricht" id="pw_kontakt_Nachricht" rows="10">{$pw_kontakt_Nachricht|nl2br}</textarea></td>
</tr>
<tr>
<td>W&uuml;nsche Antwort:</td>

<td>Ja <input name="pw_kontakt_Antwort" checked="checked" type="radio" value="Ja"/> Nein <input name="pw_kontakt_Antwort" type="radio" value="Nein"/></td>
</tr>
<tr>
<td>
Bitte diese Zeichen eingeben:</td><td>{captcha}&nbsp;&nbsp;&nbsp;<input name="captchatext" size="32" type="text" value="" /> <br />

<a onmouseover="window.status=''; return true;" href="javascript:captchaMp3();void(0)">Hier k&ouml;nnen Sie sich den Kode anh&ouml;ren</a>
<div style="width: 1px; position: absolute; height: 1px" id="playcode"></div>

</td>
</tr>
<tr>
<td>

Neue Sicherheitsabfrage?
</td>
<td>
Ja <input name="newcaptcha" type="radio" value="Ja"/> Nein <input name="newcaptcha" checked="checked" type="radio" value="Nein"/>
</td>

</tr>

<tr>
<td align="center" colspan="2"><input name="Send" type="submit" value="Senden"/> <input name="Reset" type="reset" value="L&ouml;schen"/></td>
</tr>


</table>
</form>

{/if}

Wie bei Smarty üblich besteht ein solches Template aus einer Mischung von HTML - und Smartyanweisungen.

{if isset($mailok) and $mailok neq 1}
<h4>Die angegebene Mailadresse scheint nicht korrekt zu sein !</h4>{/if}

Das ist die Warnung, wenn eine angegebene EMailadresse nicht funktioniert oder nicht vorhanden ist.

{if !isset($ok) or $ok eq 0 or $ok eq 3}

Das ist eine interne Überprüfung und die Einleitung des eigentlichen Formulares.

Die Anweisung wird am Ende des Formulares mit einem

{/if}

abgeschlossen.

Zwischen diesen beiden Tags befindet sich das eigentliche Formular.

<h3>Bitte in allen Feldern die passende Information eintragen !</h3>
<form action="{$action}" metod="post">
<table border="0" cellpadding="1" cellspacing="2" summary="">
<tr>

<td>Name:<input type="hidden" name="formname" value="kontakt.tpl"/> </td>
<td><input name="pw_kontakt_Name" size="40" type="text" value="{$pw_kontakt_Name}"/></td>
</tr>
<tr>
<td>eMail:</td>

<td><input name="pw_kontakt_Email" size="40" type="text" value="{$pw_kontakt_Email}"/></td>
</tr>
<tr>
<td>Betreff:</td>
<td><input name="pw_kontakt_Betreff" size="40" type="text" value="{$pw_kontakt_Betreff}"/></td>

</tr>
<tr>
<td>Nachricht:</td>
<td><textarea cols="50" name="pw_kontakt_Nachricht" id="pw_kontakt_Nachricht" rows="10">{$pw_kontakt_Nachricht|nl2br}</textarea></td>
</tr>

<tr>
<td>W&uuml;nsche Antwort:</td>
<td>Ja <input name="pw_kontakt_Antwort" checked="checked" type="radio" value="Ja"/> Nein <input name="pw_kontakt_Antwort" type="radio" value="Nein"/></td>

</tr>
<tr>
<td>
Bitte diese Zeichen eingeben:</td><td>{captcha}&nbsp;&nbsp;&nbsp;<input name="captchatext" size="32" type="text" value="" /> <br />

<a onmouseover="window.status=''; return true;" href="javascript:captchaMp3();void(0)">Hier k&ouml;nnen Sie sich den Kode anh&ouml;ren</a>
<div style="width: 1px; position: absolute; height: 1px" id="playcode"></div>

</td>
</tr>
<tr>
<td>

Neue Sicherheitsabfrage?
</td>
<td>
Ja <input name="newcaptcha" type="radio" value="Ja"/> Nein <input name="newcaptcha" checked="checked" type="radio" value="Nein"/>
</td>

</tr>

<tr>
<td align="center" colspan="2"><input name="Send" type="submit" value="Senden"/> <input name="Reset" type="reset" value="L&ouml;schen"/></td>
</tr>


</table>
</form>

Das Formular ist ein ganz normales HTML - Formular und kann beliebig geändert werden.

Wichtig sind dabei folgende Dinge:

<form action="{$action}" metod="post">

Diese Einleitung des Formulares muss erhalten bleiben, da das Plugin in {$action} weitere Kontrollvariable usw. speichert.

Es muss ein input Feld vorhanden sein,

<input type="hidden" name="formname" value="kontakt.tpl"/>

in dem als value der Name des Kontaktformulares enthalten ist.

Die Feldnamen müssen aus dem Prefix und dem Namensanteil bestehen.

Als Value ist {$prefix_Namensanteil einzusetzen} da das Plugin über $_REQUEST die Feldnamen so abprüft und auch über Smarty speichert, damit sie bei einem Fehler nicht verloren gehen.

Die Zwangsfelder müssen vorhanden sein.

Ansonsten ist es völlig egal wie das Formular aufgebaut ist und wie viele Felder es enthält.

Gestalterisch ist es reines HTML und da kann jeder machen was er will.

Die Captcha - Teile kann man einsetzen oder es auch lassen.

Wer es ermöglichen will, das der Captchacode auch hörbar sein soll, der muss neben den Formularteil auch im Haupttemplate für die Seite im Headerbereich folgendes eintragen:

<script language="javascript" type="text/javascript"><!--

var mp3url = "captchasound.php";
var mp3player = '<embed src="'+mp3url+'" hidden="true" autostart="true" />';
function captchaMp3() {
if (document.all) {
document.all('bgsound').src = mp3url;
} else if (document.getElementById) {
document.getElementById('playcode').innerHTML = mp3player;
}
}
//--></script>

Die beiden anderen Templates enthalten nur Textmeldungen und keinerlei Steuerfunktionen.

Das kann beliebig geändert werden.


Erforderlichen Kenntnisse

HTML

Hinweise

Die Seite in dem das Plugin eingesetzt wird, darf nicht im Supercache liegen !!

Die nachfolgende Demo stammt aus PowerSite - sie ist optisch identisch mit PowerCMS .

LinkpfeilDemo  LinkpfeilZurück

 

Letzte Änderung auf dieser Seite am: 28.01.2008 15:05:21


Vorherige Seite: LinkpfeilKommentar  | Nächste Seite: LinkpfeilLoad_pages