Leicht anpassbares deutsches Plugin Kontakt_form

Hilfe zu Modulen und Tags
Post Reply
piratos

Leicht anpassbares deutsches Plugin Kontakt_form

Post by piratos »

Es haben wohl einige Probleme mit dem normal vorhandenen Kontakt - Plugin, deswegen hier das Plugin was ich für mich geschrieben habe und was sehr leicht anpassbar ist zur allgemeinen Verwendung.

Ergänzung:

Code kopieren, in einem Editor aufnehmen und in den Ordner plugins als function.kontakt_form.php speichern, dann ist es verwendbar.

Code: Select all

<?php



function smarty_cms_function_kontakt_form($params, &$smarty) {
// Die Inhalte von $kls können Sie nach Ihren Wünschen ändern wie sie wollen.
// Insbwsondere interessant dürften size, rows,cols und style sein
//Damit ist eine leichte Anpassung der Form und auch der Sprache möglich

$kls['empty_email']='<p><b>Es wurde keine Empfängeradresse als Parameter bei der Seiteneinbindung angegeben.</b></p><p>Sie sollten sich die Frage stellen, wohin der Kontakt denn geschickt werden soll!</p>';
$kls['name']='Bitte geben Sie Ihren Namen an !';
$kls['email']='Bitte geben Sie Ihre Emailadresse an !';
$kls['subject']='Bitte geben Sie einen Betreff an !';
$kls['message']='Ohne eine Nachricht von Ihnen macht es keinen Sinn !';
$kls['validemail']='Ihre Emailadresse scheint ungültig zu sein !';
$kls['send']='Ihre Nachricht wurde erfolgreich an uns abgeschickt. Wir werden uns in Kürze bei Ihnen melden.';
$kls['not_send']='Ihre Nachricht konnte nicht verschickt werden, der Server ist wahrscheinlich nicht bereit oder überlastet.<p> Versuchen Sie es später noch einmal.</p>';
$kls['your_name']='Ihr Name:';
$kls['your_email']='Ihre Emailadresse:';
$kls['your_subject']='Betreff:';
$kls['your_message']='Ihre Nachricht:';
$kls['submit']='Nachricht abschicken';
$kls['reset']='Alle Felder leeren';
$kls['size']=50;
$kls['rows']=10;
$kls['cols']=40;
$kls['style']='style="width: 350px; border: solid 1px black; display: block; margin-bottom: 7px;"';
$kls['style2']='style="font-weight: bold; color: red;"';


	$to = $params['email'];
	$style = true;
	if (!empty($params['style']))$style = $params['style'];
	$name = '';
	if (!empty($_POST['name'])) $name = trim($_POST['name']);
	$email = '';
	if (!empty($_POST['email'])) $email = trim($_POST['email']);
	$subject = '';
	if (!empty($_POST['subject'])) $subject = trim($_POST['subject']);
	$message = '';
	if (!empty($_POST['message'])) $message = trim($_POST['message']);
	
	if($_SERVER['REQUEST_METHOD']=='POST'){
		$extra = "From: $name <$email>\r\nReply-To: $email\r\n";
		echo '<div class="KontaktNachricht"';
		echo ($style)? $kls['style2']:'';
		echo '>';

		if (empty($name)) {
			echo $kls['name'];
		}elseif (empty($email)) {
			echo $kls['email'];
		}elseif (!preg_match("/^([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)$/i", $email)){
			echo $kls['validemail'];
		}elseif (empty($subject)) {
			echo $kls['subject'];
		}elseif (empty($message)) {
			echo $kls['message'];
		}elseif (@mail($to, $subject, $message, $extra)){
			echo $kls['send'].'</div>';
			return;
		}else{
			echo $kls['not_send'].'</div>';
			return;
		}

		echo '</div>';

	}
	?>
	<?php
        if (!$to) {echo $kls['empty_email'];}
        ?>
	<form action="<?php $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'] ?>" method="post" name="KontaktForm"<?php echo ($style)?' style="font-weight: bold;"':''; ?>>
	<?php echo $kls['your_name']?><input type="text" name="name" value="<?php echo $name; ?>" size="<?php echo $kls['size']?>"<?php echo ($style)? $kls['style']:''; ?> />
	<?php echo $kls['your_email']?><input type="text" name="email" value="<?php echo $email; ?>" size="<?php echo $kls['size']?>"<?php echo ($style)? $kls['style']:''; ?> />
	<?php echo $kls['your_subject']?><input type="text" name="subject" value="<?php echo $subject; ?>" size="<?php echo $kls['size']?>"<?php echo ($style)? $kls['style']:''; ?> />
	<?php echo $kls['your_message']?><textarea name="message" cols="<?php echo $kls['cols']?>" rows="<?php echo $kls['rows']?>"<?php echo ($style)?$kls['style']:''; ?>><?php echo $message; ?></textarea>
	<input type="submit" value="<?php echo $kls['submit']?>" /><input type="reset" value="<?php echo $kls['reset']?>" />
	</form>

<?php
}

function smarty_cms_help_function_kontakt_form() {
	?>
	<h3>Kontakt Formular</h3>
	<p>Es zeigt ein Kontaktforumlar an, dass es allen Webbesuchern ermöglicht, Ihnen per Email direkt eine Nachricht zu schicken.</p>
	<h3>Wie wird es eingesetzt?</h3>
	<p>Sie müssen lediglich eine Tag in die gewüschte Seite setzen oder auch in ihr Template  <code>{kontakt_form email="dasbinich@meine.de"}</code></p>
	<p>Wenn Sie eien solche Nachricht an mehrere Empfängeradressen versenden wollen, geben Sie einfach durch ein Komma getrennt vor. <code>{kontakt_form email="dasbinich@meine.de,dasbistdu@deine.de"}</p>
	<h2>Besonderheiten</h2>
	<p>Im Script selbst sind alle Inhalte des Formulares in Variablen gesetzt. Damit kann das komplette Forumlar optimal seinen Wünschen angepasst werden.</p>
	<p>Das gilt für den Style genau wie für die Größe der Felder und natürlich kann durch Änderung auch jede Sprache verwendet werden. </p>
	<h3>Was für Parameter gibt es und welche sind nötig?</h3>
	<ul>
		<li>email - An diese Adresse(en) wird die Nachricht verschickt - erforderlich !.</li>
		<li><em>(optional)</em>style - true/false, bestimmt die Nutzung des voreingestellten Styles. Voreinstellung ist true.</li>
	</ul>
	</p>
	<?php
}

function smarty_cms_about_function_kontakt_form() {
	?>
	<p>Author: Piratos (Jan Czarnowski)<piratos@coftware.de></p>
	<p>Version: 1.0</p>

	<?php
}


?>
Last edited by piratos on Thu May 26, 2005 10:31 am, edited 1 time in total.
User avatar
maggy
Forum Members
Forum Members
Posts: 37
Joined: Wed May 04, 2005 10:27 am

Re: Leicht anpassbares deutsches Plugin Kontakt_form

Post by maggy »

hab es auch mit deiner variante hier versucht, weil das genau das wäre, was ich benötige, aber da da bringt er mir die Fehlermeldung nach dem abschicken
Ihre Nachricht konnte nicht verschickt werden, der Server ist wahrscheinlich nicht bereit oder überlastet ......

Diese Meldung kommt mir irgendwie bekannt vor, als ich versuchen wollte das originale function.contact_form.php meinen bedürfnissen anzupassen. Auch da hat er immer diese Meldung gebracht, offensichtlich, weil ihm ein Feld was ich zugefügt hatte (telefonummer) nicht gepasst hat.
piratos

Re: Leicht anpassbares deutsches Plugin Kontakt_form

Post by piratos »

Wenn du local experimentierst wird die Meldung immer dann kommen müssen, wenn du nicht noch neben einem Webserver auch einen Mailserver installiert hast.
Ein Webserver ist kein Mailserver und kann überhaupt nicht einen Mailtransport durchziehen.

Wenn du das bereits auf einem echten Webserver arbeitest und es kommt die Meldung, dann unterstützt dein Provider die Mailfunktion nicht - in dem Fall hast Du leider Pech gehabt , dann läßt sich nichts verwenden, was auf Mailfunktion basiert.
User avatar
maggy
Forum Members
Forum Members
Posts: 37
Joined: Wed May 04, 2005 10:27 am

Re: Leicht anpassbares deutsches Plugin Kontakt_form

Post by maggy »

ich habe das auf einem echten Webserver zu laufen bzw, installiert.
bei dem normalen function.contact_form.php geht das auch und ich bekomme die Mails auch, nur das ich das Teil nicht auf meine Bedürfnisse angepasst bekomme.

Wo liegt der Unterschied zwischen Deinem und dem Original, was den Mailversand betrifft ?
piratos

Re: Leicht anpassbares deutsches Plugin Kontakt_form

Post by piratos »

Da gibt es keinen Unterschied 100% identisch:

Original:
}elseif (@mail($to, $subject, $message, $extra)){

Meine Versin:
}elseif (@mail($to, $subject, $message, $extra)){


Ändere mal die Zeilen wie folgt ab:

Code: Select all

}elseif (@mail($to, $subject, $message, $extra)){
			echo $kls['send'].'</div>';  echo "--->".$to;
			return;
		}else{
			echo $kls['not_send'].'</div>';echo "--->".$to;
			return;
		}
Dann wird bei Erfolg oder Nichterfolg die Mailadresse ausgegeben, an der die Mail geschickt werden sollte.

Das wird durch den Zusatz  echo "--->".$to; bewirkt.

Sieht dann in etwas so aus:

Ihre Nachricht wurde erfolgreich an uns abgeschickt. Wir werden uns in Kürze bei Ihnen melden.
--->postmaster@localhost
Cyberpoint

Re: Leicht anpassbares deutsches Plugin Kontakt_form

Post by Cyberpoint »

Hallo, hatte das Problem auch.

Lösung gefunden:

Beim Einfügen in eine neue Seite habe ich auf " Edit HTML Source" umschalten dann den Link:
{kontakt_form email="dasbinich@meine.de"}

einfügen.

Sonst hat er immer das format geändert.

Jetzt läufts
Oh Daesu

Re: Leicht anpassbares deutsches Plugin Kontakt_form

Post by Oh Daesu »

vielen herzlichen dank für das post. hab den abgeänderten code erfolgreich bei www.jugendratebikon.ch eingesetzt.
Post Reply

Return to “Module und Tags”