Diese Seite beinhaltet veraltete Komponenten, die nicht mehr im Release 1.11 enthalten sind. Die Seite befindet sich deshalb bis zum Entfernen dieser Meldung in einem Bearbeitungszustand. Sollten Fragen auftauchen, können diese gerne im Forum gestellt werden.
Die aktuelle Art der Einbindung des Kontakt-Formulars ist in einem copy&paste-Tutorial im Wiki beschrieben.
/config/tools/form/taglib/{CONTEXT}/{ENVIRONMENT}_formconfig.ini/config/tools/form/taglib/sites/demosite/DEFAULT_formconfig.iniBitte geben Sie eine E-Mail-Adresse sein!Bitte geben Sie eine gültige E-Mail-Adresse sein!<form:validate
button="send"
field="email"
type="EMail"
msginputreq="Contact.EMail.InputRequired"
msginputwrg="Contact.EMail.InputWrong"
/>[de]
Contact.EMail.InputRequired = "Bitte geben Sie eine E-Mail-Adresse sein!"
Contact.EMail.InputWrong = "Bitte geben Sie eine gültige E-Mail-Adresse sein!"
[en]
Contact.EMail.InputRequired = "Please fill the field sender name!"
Contact.EMail.InputWrong = "Please provide a valid email address!"/config/modules/kontakt4/{CONTEXT}/{ENVIRONMENT}_language.ini;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Deutsche Texte ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[de]
; Header
header.title = "Kontakt"
; Hinweise zum Formular
formhint.text = "Wenn Sie mit mir in Kontakt treten möchten, dann benutzen Sie einfach dieses Formular. Geben Sie Ihre Nachricht ein und schon kann es los gehen. Ich werden mich dann umgehend mit Ihnen in Verbindung setzten. Bitte füllen Sie das Formular vollständig aus!"
; Formular
form.person = "Person / Gruppe: "
form.name = "Ihr Name:"
form.email = "Ihre E-Mail-Adresse:"
form.subject = "Ihr Betreff:"
form.comment = "Ihre Nachricht:"
form.button = "Senden"
form.captcha = "Bestätigungscode:"
; confirmation text
message.text = "Vielen Danke für Ihre Anfrage. Ich werde mich umgehend mit Ihnen in Verbindung setzen!"
; validation messages
form.name.error = "Bitte füllen Sie das Feld Absender-Name!"
form.email.error = "Bitte geben Sie eine gültige E-Mail-Adresse sein!"
form.subject.error = "Bitte füllen Sie das Feld Betreff!"
form.text.error = "Bitte füllen Sie das Feld Text!"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Englisch texts ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[en]
; header
header.title = "Contact"
; hints on the form
formhint.text = "If you want to contact me, please use the form provided below. Then I will immediately get in contact with you. Please fill all required fields!"
; form labels
form.person = "Person / group: "
form.name = "Your name:"
form.email = "Your email address:"
form.subject = "Your subject:"
form.comment = "Your message:"
form.button = "Send"
form.captcha = "Security code:"
; confirmation text
message.text = "Many thanks for your message. We will get in contact with you immediately!"
; validation messages
form.name.error = "Please provide a sender name!"
form.email.error = "Please provide a valid email address!"
form.subject.error = "Please fill the subject field!"
form.text.error = "The message may not be empty!"// Sprachabhängige Konfiguration laden
$Config = &$this->__getConfiguration('modules::kontakt4','language');
// Referenz auf das Button-Control holen
$Button = &$Form->getFormElementByName('KontaktSenden');
// Sprachabhängigen Text mit Hilfe von $this->__Language auslesen
$Button->setAttribute('value',$Config->getValue($this->__Language,'form.button'));/modules/
kontakt4/
biz/
data/
pres/
documentcontroller/
templates/<core:addtaglib namespace="tools::html::taglib" prefix="html" class="getstring" />
<font style="..."><html:getstring namespace="modules::kontakt4" config="language" entry="header.title" /></font>
<br />
<br />
<core:importdesign namespace="modules::kontakt4::pres::templates" template="[pagepart=formular]" /><@controller
namespace="modules::kontakt4::pres::documentcontroller"
file="kontakt_v4_controller"
class="kontakt_v4_controller"
@>
<core:addtaglib namespace="tools::form::taglib" prefix="html" class="form" />
<core:addtaglib namespace="tools::html::taglib" prefix="html" class="getstring" />
<html:getstring namespace="modules::kontakt4" config="language" entry="formhint.text" />
<br />
<div style="text-align: left; padding-left: 80px; font-size: 12px;">
<html:placeholder name="Inhalt" />
</div>
<html:form name="Kontakt" method="post">
<form:valgroup name="FormValGroup">
<br />
<div style="width: 400px; border: 1px solid red; padding: 5px;">
<img src="<valgroup:placeholder name="WarnImage" />" />
<font style=".."><valgroup:placeholder name="WarnText" />:</font>
<br />
<valgroup:validate
type="text" field="AbsenderName" button="KontaktSenden"
msginputreq="Contact.Sender.InputRequired" />
<valgroup:validate
type="text" field="AbsenderAdresse" button="KontaktSenden"
msginputreq="Contact.EMail.InputRequired" msginputwrg="Contact.EMail.InputWrong"
validator="EMail" />
<valgroup:validate type="text" field="Betreff" button="KontaktSenden"
msginputreq="Contact.Subject.InputRequired" />
<valgroup:validate type="text" field="Text" button="KontaktSenden"
msginputreq="Contact.Text.InputRequired" />
</div>
<br />
</form:valgroup>
<br />
<span style="margin-right:
<form:getstring namespace="modules::kontakt4" config="language" entry="form.person.margin" />px;">
<form:getstring namespace="modules::kontakt4" config="language" entry="form.person" />
</span><form:select name="Empfaenger" class="eingabe_feld" />
<br />
<br />
<span style="margin-right:
<form:getstring namespace="modules::kontakt4" config="language" entry="form.name.margin" />px;">
<form:getstring namespace="modules::kontakt4" config="language" entry="form.name" /></span>
<form:text name="AbsenderName" class="eingabe_feld" style="width: 280px;" validate="true"
button="KontaktSenden" />
<br />
<br />
<span style="margin-right: <form:getstring namespace="modules::kontakt4" config="language"
entry="form.email.margin" />px;">
<form:getstring namespace="modules::kontakt4" config="language" entry="form.email" />
</span><form:text name="AbsenderAdresse" class="eingabe_feld" style="width: 280px;"
validate="true" validator="EMail" button="KontaktSenden" />
<br />
<br />
<span style="margin-right:
<form:getstring namespace="modules::kontakt4" config="language" entry="form.subject.margin" />px;">
<form:getstring namespace="modules::kontakt4" config="language" entry="form.subject" />
</span><form:text name="Betreff" class="eingabe_feld" style="width: 280px;" validate="true"
button="KontaktSenden" />
<br />
<br />
<form:getstring namespace="modules::kontakt4" config="language" entry="form.comment" />
<br />
<form:area name="Text" class="eingabe_feld" style="..." validate="true" button="KontaktSenden" />
<br />
<br />
<form:getstring namespace="modules::kontakt4" config="language" entry="form.captcha" />
<br />
<br />
<form:addtaglib namespace="modules::captcha::pres::taglib" prefix="form" class="captcha" />
<form:captcha text_class="eingabe_feld" validate="true" button="KontaktSenden"/>
<br />
<br />
<form:button name="KontaktSenden" class="eingabe_feld" />
</html:form><br />
<core:addtaglib namespace="tools::html::taglib" prefix="html" class="getstring" />
<html:getstring namespace="modules::kontakt4" config="language" entry="message.text" />
<br />
<br />import('tools::request','RequestHandler');
import('modules::kontakt4::biz','contactManager');
class kontakt_v4_controller extends base_controller {
var $_LOCALS;
function kontakt_v4_controller(){
$this->_LOCALS = RequestHandler::getValues(array('Empfaenger',
'AbsenderName',
'AbsenderAdresse',
'Betreff',
'Text'
)
);
}
function transformContent(){
// Referenz auf die Form holen
$Form = &$this->__getForm('Kontakt');
if($Form->get('isValid') && $Form->get('isSent')){
// Was wird gesendet?
//
// - Kontakt-Person-ID (Empf?nger-Person der Mail)
// - Name
// - E-Mail
// - Betreff
// - Text
$oFD = new oFormData();
$oFD->set('RecipientID',$this->_LOCALS['Empfaenger']);
$oFD->set('SenderName',$this->_LOCALS['AbsenderName']);
$oFD->set('SenderEMail',$this->_LOCALS['AbsenderAdresse']);
$oFD->set('Subject',$this->_LOCALS['Betreff']);
$oFD->set('Text',$this->_LOCALS['Text']);
// Formular absenden
$cM = &$this->__getServiceObject('modules::kontakt4::biz','contactManager');
$cM->sendContactForm($oFD);
}
else{
$this->setPlaceHolder('Inhalt',$this->__buildForm());
}
}
function __buildForm(){
// Referenz auf die Form holen
$Form__Kontakt = &$this->__getForm('Kontakt');
// Action setzen
$Form__Kontakt->setAttribute('action',$_SERVER['REQUEST_URI']);
// Button beschriften und formatieren
$Config = &$this->__getConfiguration('modules::kontakt4','language');
$Button = &$Form__Kontakt->getFormElementByName('KontaktSenden');
$Button->setAttribute('value',$Config->getValue($this->__Language,'form.button'));
$Button->setAttribute('style',$Config->getValue($this->__Language,'form.button.style'));
// Bild in der ValidatorGroup setzen (Auslesen der formconfig)
$Config = &$this->__getConfiguration('tools::form::taglib','formconfig');
$ValGroup = &$Form__Kontakt->getFormElementByName('FormValGroup');
$ValGroup->setPlaceHolder('WarnImage',$Config->getValue($this->__Language,'Contact.Warning.Image'));
$ValGroup->setPlaceHolder('WarnText',$Config->getValue($this->__Language,'Contact.Warning.Text'));
// Auswahlfeld Person
$Recipients = & $Form__Kontakt->getFormElementByName('Empfaenger');
// RecipientList laden
$cM = &$this->__getServiceObject('modules::kontakt4::biz','contactManager');
$RecipientList = $cM->loadRecipients();
for($i = 0; $i < count($RecipientList); $i++){
$Recipients->addOption($RecipientList[$i]->get('Name'),$RecipientList[$i]->get('oID'));
}
// Formular transformieren und zurückgeben
return $Form__Kontakt->transformForm();
}
}/config/tools/form/taglib/{CONTEXT}/{ENVIRONMENT}_formconfig.iniContact.Warning.Image$Config = &$this->__getConfiguration('tools::form::taglib','formconfig');
$ValGroup = &$Form__Kontakt->getFormElementByName('FormValGroup');
$ValGroup->setPlaceHolder('WarnImage',$Config->getValue($this->__Language,'Contact.Warning.Image'));
$ValGroup->setPlaceHolder('WarnText',$Config->getValue($this->__Language,'Contact.Warning.Text'));import('modules::kontakt4::biz','oFormData');
import('modules::kontakt4::biz','oRecipient');
import('modules::kontakt4::data','contactMapper');
import('tools::mail','mailSender');
import('tools::link','LinkHandler');
class contactManager extends APFObject {
function sendContactForm($oFD){
// contactMapper holen
$cM = &$this->__getServiceObject('modules::kontakt4::data','contactMapper');
// E-Mail fuer Empfaenger aufsetzen
$MAIL = &$this->__getAndInitServiceObject('tools::mail','mailSender','Kontaktformular');
// Empfaenger setzen
$Recipient = $cM->loadRecipientPerId($oFD->get('RecipientID'));
$MAIL->setRecipient($Recipient->get('Adresse'),$Recipient->get('Name'));
// Text einsetzen
$Text = 'Sehr geehrter Empf?nger, sehr geehrte Empf?ngerin,';
$Text .= "\n\n";
$Text .= $oFD->get('SenderName').' (E-Mail: '.$oFD->get('SenderEMail')
.') hat Ihnen folgende Nachricht ?ber das Kontaktformular zukommen lassen:';
$Text .= "\n\n\n";
$Text .= $oFD->get('Text');
$MAIL->setContent($Text);
// Betreff setzen
$MAIL->setSubject($oFD->get('Subject'));
// Mail senden
$MAIL->sendMail();
// E-Mail fuer Absender aufsetzen
$MAIL->clearRecipients();
$MAIL->clearCCRecipients();
$MAIL->clearContent();
// Empfaenger setzen
$MAIL->setRecipient($oFD->get('SenderEMail'),$oFD->get('SenderName'));
// Text einsetzen
$Text = 'Sehr geehrter Empf?nger, sehr geehrte Empf?ngerin,';
$Text .= "\n\n";
$Text .= 'Ihre Anfrage wurde an die Kontaktperson "'.$Recipient->get('Name')
.'" weitergeleitet. Wir setzen uns baldmöglich mit Ihnen in Verbindung!';
$Text .= "\n\n";
$Text .= 'Hier nochmals Ihr Anfragetext:';
$Text .= "\n";
$Text .= $oFD->get('Text');
$MAIL->setContent($Text);
// Betreff setzen
$MAIL->setSubject($oFD->get('Subject'));
// Mail senden
$MAIL->sendMail();
// Bestaetigungsseite anzeigen
$Link = LinkHandler::generateLink($_SERVER['REQUEST_URI'],array('pagepart' => 'meldung'));
$URLRewriting = Registry::retrieve('apf::core','URLRewriting');
if($URLRewriting != true){
$Link = str_replace('&','&',$Link);
}
header('Location: '.$Link);
}
function loadRecipients(){
$cM = & $this->__getServiceObject('modules::kontakt4::data','contactMapper');
return $cM->loadRecipients();
}
}import('modules::kontakt4::biz','oFormData');
import('modules::kontakt4::biz','oRecipient');
class contactMapper extends APFObject {
function loadRecipients(){
// read config
$Config = $this->__getConfiguration('modules::kontakt4','empfaenger');
// read relevant section
$Sections = $Config->getConfiguration();
// initialize return array
$Recipients = array();
// parse config and generate recipients
foreach($Config->getConfiguration() as $Key => $Values){
$Count = count($Recipients);
$Recipients[$Count] = new oRecipient();
// id
preg_match("/Kontakt ([0-9]+)/i",$Key,$Matches);
$Recipients[$Count]->set('oID',$Matches[1]);
// name
$Recipients[$Count]->set('Name',$Values['EmpfaengerName']);
// email
$Recipients[$Count]->set('Adresse',$Values['EmpfaengerAdresse']);
}
// return recipient list
return $Recipients;
}
function loadRecipientPerId($Id){
$Rec = $this->loadRecipients();
if(!is_array($Rec)){
return array();
}
else{
for($i = 0; $i < count($Rec); $i++){
if($Rec[$i]->get('oID') == $Id){
return $Rec[$i];
}
}
}
}
}[Kontakt <em>([0-9]+)</em>]
EmpfaengerName = "<em>([A-Za-z0-9,.-_ ]+)</em>"
EmpfaengerAdresse = "<em>([A-Za-z0-9.-_@]+)</em>"