Seite 1 von 1

Kontaktformular AMR

Verfasst: Di 13. Jul 2010, 02:40
von Peer
Hallo,

ich habe hier ein veralteres Kontaktformular mit der Funktion Empfänger auszuwählen.
Leider funktioniert es nicht in der AMR Version.

Hat jemand eine Idee oder eine Alternative ??

Hier der Code

Input

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :       Mailkontakt
* Author      :     agon
* Copyright   :     Contenido - four for business
* Created     :     05-11-2003
* Modified    :     05-11-2003
************************************************/

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
        <tr>
          <td>Adressaten-Namen:</td>
          <td><input type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\" size=70></td>
        </tr>
        <tr>
          <td>Adressaten-Emails:</td>
          <td><input type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\" size=70></td>
        </tr>
        <tr>
          <td colspan=2>Notieren Sie in den beiden Eingabefeldern eine gleiche Anzahl von Adressaten und Email-Adressen;
           trennen Sie die Einträge jeweils mit Kommata.</td>
        </tr>
      </table>";
Output

Code: Alles auswählen

<?php
$email_to_name = explode(",","CMS_VALUE[8]");
$email_to_mail = explode(",","CMS_VALUE[9]");
if($mail == 1 && count($email_to)!==0)
{
$header='From:'.$email_from_name.'<'.$email_from_mail.'>';
for($x=0;$x<count($email_to_name);$x++){
  if(in_array($x,$email_to)) {
   $mailto .= $email_to_name[$x]." <".$email_to_mail[$x].">,";
   $adressat .= $email_to_name[$x]." ";
  }
}
mail("$mailto",$betreff,$kommentar,$header);
echo '<small1>Folgende Nachricht wurde versendet:</small1>
<table border="0" cellpadding="3" cellspacing="0" width="100%">
<tr>



  <td class="fliesstext"><small>Absender:</small></td>
  <td width="80%" class="fliesstext">';
if ($email_from_mail=="") { echo '<small>keine Absenderangabe</small>'; }
else { echo $email_from_name.' &l'.'t;'.$email_from_mail.'&g'.'t;'; }
echo '</td>
</tr>
<tr>
  <td class="fliesstext"><small>Adressat(en):</small></td>
  <td width="80%" class="fliesstext">'.$adressat.'</td>
</tr>
<tr>
  <td class="fliesstext"><small>Betreff:</small>
  <td width="80%" class="fliesstext">'.$betreff.'</td>
</tr>
<tr>
  <td colspan="2" class="fliesstext">'.nl2br($kommentar).'</td>
</tr>
</table>';
} else




{
echo '<form name="mail" action="'.$auth->url().'" method="post">
   <table border="0" cellpadding="0" cellspacing="0" width="100%">
   <form name="mail" action="'.$auth->url().'" method="post">
   <tr>
    <td class="fliesstext"><small><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Dein Name:</font></small></td>
    <td class="fliesstext">&nbsp;</td>
    <td class="fliesstext"><input type="text" name="email_from_name" size="30" value="'.$email_from_name.'" class="Input" style="width:250px"></td>
   </tr>
   <tr>
    <td class="fliesstext"><small><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">E-Mail Adresse:</font></small></td>
    <td class="fliesstext">&nbsp;</td>
    <td class="fliesstext"><input type="text" name="email_from_mail" size="30" value="'.$email_from_mail.'" class="Input" style="width:250px"></td>
   </tr>
   <tr>
    <td valign="top" class="fliesstext"><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular"><small>Adressat:</small><br>
         <small>(Mehrfachauswahl möglich)</small></font></td>
    <td class="fliesstext">&nbsp;</td>
    <td class="fliesstext"><select name="email_to[]" size="'.count($email_to_name).'" multiple class="Input">';
for($x=0;$x<count($email_to_name);$x++){
  echo '<option value="'.$x.'">'.$email_to_name[$x].'</option>';
}
echo '     </select>';
if ($mail == 1) {
  echo '<br><br><small>Du musst mindestens einen Adressaten auswählen,<br>um die Nachricht abschicken zu können.</small><br><br>'; }
echo '  </td>
   </tr>
   <tr>
    <td class="fliesstext"><small><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Betreff:</font></small></td>
    <td class="fliesstext">&nbsp;</td>
    <td class="fliesstext"><input type="text" name="betreff" size="40" value="'.$betreff.'" class="Input" style="width:250px"></td>
   </tr>
   <tr>
    <td valign="top" class="fliesstext"><small><font size="2" face="Arial,Helvetica,Geneva,Swiss,SunSans-Regular">Deine Nachricht:</font></small></td>
    <td class="fliesstext">&nbsp;</td>
    <td class="fliesstext"><textarea cols="45" rows="10" name="kommentar" style="width:250px" class="InputArea">'.$kommentar.'</text'.'area></td>
   </tr>
   <tr>
    <td colspan="3" align="left" class="fliesstext"><input type="submit" value="eMail Senden" name="submit" class="InputButton"></td>
    <input type="hidden" name="mail" value="1">
   </tr>
  </table>
</fo'; echo 'rm>';
}
?>

Re: Kontaktformular AMR

Verfasst: Di 13. Jul 2010, 07:58
von Oldperl
Hallo Peer,
Peer hat geschrieben:Hat jemand eine Idee oder eine Alternative ??
Warum nimmst du nicht das aus dem Demomandanten, das sollte auch mit AMR funktionieren.

Gruß aus Franken

Ortwin

Re: Kontaktformular AMR

Verfasst: Di 13. Jul 2010, 10:18
von Peer
Hallo,

weil ich beim Demo Mandanten nur einen Empfänger habe. Ich brauche aber die Möglichkeit aus mehreren Empfängern zu wählen.

Gruß aus Ostwestfalen-Lippe

Re: Kontaktformular AMR

Verfasst: Di 13. Jul 2010, 10:29
von Oldperl
Hallo Peer,

aus mehreren Empfängern wählen? Oder an mehrere Empfänger senden, so wie es dein gepostetes Formular macht?

Gruß aus Franken

Ortwin

Re: Kontaktformular AMR

Verfasst: Di 13. Jul 2010, 10:52
von Oldperl
Hallo Peer,

versuch mal diesen Output für das Kontaktformular des Demomandanten. Du kannst nun eine kommaseparierte Liste der Empfängeremails eingeben, so wie es bei deinem Formular auch ist/war.

Code: Alles auswählen

<?php
/**
* $RCSfile$
*
* Description: Contact Form Output
*
* @version 1.1.0
* @author Andreas Lindner
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2005-08-12
* modified 2008-04-11 Rudi Bieller Changes concerning new layout
* modified 2010-07-13 Ortwin Pinke add possibility to send emails to more recipients
* }}
*
* $Id$
*/

#Includes
cInclude("classes", "class.phpmailer.php");

if (!isset($tpl) || !is_object($tpl)) {
    $tpl = new Template();
}

if (!isset ($_POST['send'])) {
	#Form has not been sent yet
	cInclude('classes', 'class.article.php');
	cInclude('classes', 'class.template.php');

	#Create contact form
    $sFormAction = $sess->url("front_content.php?idcat=$idcat&idart=$idart&parentid=$parentid");
    $tpl->set("s", 'form_action', $sFormAction);
	$tpl->set("s", "ANREDE", mi18n("Anrede"));
	$tpl->set("s", "ANREDE_OPTION1", mi18n("Herr"));
	$tpl->set("s", "ANREDE_OPTION2", mi18n("Frau"));
	$tpl->set("s", "NACHNAME", mi18n("Name"));
	$tpl->set("s", "VORNAME", mi18n("Vorname"));
	$tpl->set("s", "FIRMA", mi18n("Firma"));
	$tpl->set("s", "STRASSE", mi18n("Straße/Nr."));
	$tpl->set("s", "PLZORT", mi18n("PLZ/Ort"));
	$tpl->set("s", "TELEFON", mi18n("Telefon"));
	$tpl->set("s", "EMAIL", mi18n("E-Mail"));
	$tpl->set("s", "ANLIEGEN", mi18n("Nachricht"));
	$tpl->set("s", "PFLICHTFELDER", mi18n("Bitte alle Felder ausfüllen"));
	$tpl->set("s", "ABSCHICKEN", mi18n("abschicken"));
	$tpl->set("s", "LOESCHEN", mi18n("löschen"));

	$tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/kontaktformular.html");
} elseif ($_POST['send'] == 1) {
	#Form has been sent

	#Check user input
	$noerrors = true;
	$msg = '';
	if ($_POST['Vorname'] == '') {
		$noerrors = false;
		$msg .= mi18n("Bitte geben Sie Ihren Vornamen ein!")."<br/>";
	}
	if ($_POST['Nachname'] == '') {
		$noerrors = false;
		$msg .= mi18n("Bitte geben Sie Ihren Namen ein!")."'<br/>";
	}
	if ($_POST['EMail'] == '') {
		$noerrors = false;
		$msg .= mi18n("Bitte geben Sie Ihre E-Mail-Adresse ein!")."<br/>";
	}
	if ($_POST['Strasse'] == '') {
		$noerrors = false;
		$msg .= mi18n("Bitte geben Sie Ihre Stra&szlig;e ein!")."<br/>";
	}
	if ($_POST['PLZOrt'] == '') {
		$noerrors = false;
		$msg .= mi18n("Bitte geben Sie Ihre PLZ/Ort ein!")."<br/>";
	}

	if ($noerrors == false) {
		echo "<p>";
		#Errors have been found
		echo "<strong>".mi18n("Beim Versenden sind folgende Fehler aufgetreten:")."</strong><br/>";
		echo $msg.'<br/>';
		echo '<a href="javascript:history.back();">&lsaquo; '.mi18n("zur&uuml;ck").'</a>';
	} else {
		#No errors, create and send mail
		$mail = new phpmailer;
		$mail_body = '<html><head></head><body bgcolor="#ffffff"><table cellspacing="0" cellpadding="2" border="0">';

		if (is_array($_POST)) {
			foreach ($_POST as $key => $value) {
				if ($key != 'send') {
					$mail_body .= "<tr><td>$key</td><td>$value</td></tr>";
				}
			}
		}

		$mail_body .= '</table></bo'.'dy></html>';
		$mail->Host = "localhost";
		$mail->IsHTML(true);

		#Get mailer from settings
		switch (strtolower("CMS_VALUE[4]")) {
			case "smtp" :
				$mail->IsSMTP();
				$host = "CMS_VALUE[5]";
				$user = "CMS_VALUE[6]";
				$password = "CMS_VALUE[7]";
				if (($host != '') && ($user != '') && ($password != '')) {
					$mail-> $SMTPAuth = true;
					$mail->Host = $host;
					$mail->Username = $user;
					$mail->Password = $password;
				}
				break;
			case "mail" :
				$mail->IsMail();
				break;
			case "sendmail" :
				$mail->IsSendmail();
				break;
			case "qmail" :
				$mail->IsQmail();
				break;
			default :
				}
		$mail->From = "CMS_VALUE[0]";
		$mail->FromName = "CMS_VALUE[2]";
		
		// modification to send email to more reciptients, 13.07.2010 Ortwin Pinke 
		$sReciptientEmails = "CMS_VALUE[1]";
		$aReciptientEmail = explode(",", $sReciptientEmails);
		$iCountReciptientEmail = (int) count($aReciptientEmail);
		$iCount = 0;		
		for($iCount;$iCount < $iCountReciptientEmail; $iCount++) {
            $mail->AddAddress($aReciptientEmail[$iCount], "");
        }
        // end mod		
		$mail->Subject = "CMS_VALUE[3]";
		$mail->Body = $mail_body;
		$mail->WordWrap = 50;
		$mail->Send();
	
		#Display message after mail is sent
		echo mi18n("Ihr Anliegen wurde uns übermittelt. Vielen Dank!")."<br/>";
	}
}
?>
Ungetestet, hoffe es funktioniert. :-)

Gruß aus Franken

Ortwin

Re: Kontaktformular AMR

Verfasst: Di 13. Jul 2010, 23:12
von Peer
Hallo Ortwin,

danke für deine Hilfe.
Ich brauche die Funktion das der Besucher der Homepage aussuchen kann an wenn die Mail gesendet werden soll, von den mir Vorgegebenen Empängern.

Gruß

Peer

Re: Kontaktformular AMR

Verfasst: Mi 14. Jul 2010, 07:59
von Oldperl
Hallo Peer,

das kann er aber noch mit dem von mir modifizierten Kontaktformular, ich habe das Senden an mehrere Empfänger eingebaut, aber keine Auswahlmöglichkeit. Ist wohl doch etwas heiß die letzten Tage. 8)

Na ich schau nochmal, gib mir etwas Zeit. :-)

Gruß aus Franken

Ortwin