Hilfe - Suche - Mitglieder - Kalender
Vollansicht: Kontakformular 2.2 + Dynamische Empfängeradresse
Forum Sefrengo.org > Downloads > Module
Seiten: 1, 2
bjoern
Modulname:
---------------------------------------------------------------------------
Kontaktformular
Dynamische Empfängeradresse


Bechreibung:
---------------------------------------------------------------------------
Modul "Kontaktformular":
Mit diesem Modul lässt sich schnell ein einfaches Kontaktformular auf der
Seite einbinden. Es stehen dabei einzeilige Textfelder/ Passwortfelder,
mehrzeilige Textfelder, Selectauswahlen, Radiobuttons, Checkboxen und
Dateiuploads zur Verfügung. Bestimmte Felder können als Pflichtfelder
angegeben werden. Nachdem der User auf den Senden-Button geklickt hat, wird
der Inhalt des Formulars an die angegebene Email-Adresse geschickt.

Modul "Dynamische Empfängeradresse":
Ermöglicht von einer Seite aus auf das Kontaktformular zu linken. Es kann eine
Empfängeradresse definiert werden, die von der Adresse in der Konfiguration
des Kontaktformular- Moduls abweicht.


Autor(en):
---------------------------------------------------------------------------
Björn Brockmann



Benötigte Sefrengo Version:
---------------------------------------------------------------------------
>= 01.03.01 (Sefrengo 1.4 beta2)



QUELLTEXT
Current versionnumber is  02.02.00 - released  07.11.2007
------------------------------------------------------------------------------------------------
+ modconfig: sort formfields! now it is possible to move formfileds up and down (BIG thx to amk)
+ modconfig: cut, copy, paste and insert formfields (thx to amk)
+ modconfig: select, checkbox and radio element: displayed formvalues can be differential as the submitted value
+ modconfig: 2 new elementcontainer
+ modconfig: the required notice have now his own template
+ modconfig: the labeltext have now his own template
+ modconfig: posibility to add/ remove 6 or 12 formfields at once
+ autodedect "snippet replacement" plugin and use it in email bodytemplate and subjectline
# empty errormessage template is not displayed (thx to amk)
# normalize linebreaks - in some cases in an email one line of text follows two linebreaks
# remove None-breaking-space (&nbsp) between the radio+checkbox fields and the label
# send emails in mutiple select does not work
# selected option fields wasn't XHTML conform (selected instead selected="selected") (thx to mrtt)


bjoern
Habe endlich mal Zeit gefunden eine neue Version des Kontaktformulars fertig zu machen.

Die größte Änderung im Modul hat amk freundlicherweise zum Modul hinzugefügt. Die Formularfelder lassen sich nun per Javascript beliebig sortieren. Amk hat auch eine Zwischenablagefunktion eingebaut, die es ermöglicht, dass Formularelemente beliebig an anderen Stellen wieder eingefügt werden können.

Das Kontaktformular erkennt nun automatisch das Snippet- Replacement Plugin, sofern es installiert ist. Bis jetzt war es nicht möglich, Emailtemplates mit Snippet Variablen zu füllen. Diese wurden nicht ersetzt.

Ansonsten gibt es viele kleine Änderungen und Bugfixes im Modul (siehe changelog), z.B. ist nun auch der Emailversand an mehrere Empfänger möglich, wenn diese aus einem Mehrfachselect kommen (Hatte mika sich ja gewünscht).
mika
super!!! mucho merci!!!
mika
Chregu
Hey das Tönt super! Freue mich schon das Teil zu testen...

thx
chregu
mika
hm - irgendwie stell ich mich blöd an:

ich habe als formularfeld 1 eine selectbox mit mehrfachauswahl, die meine gesamten Adressen beinhaltet (die einzelnen adressen müssen mit | getrennt werden - Komma funzt nicht)
was muss ich in den maileinstellungen einstellen, dass aus diesem formularfeld die empfängeradressen zusammen gestellt werden? muss ich da mit dem Modul "Dynamische Empfängeradresse" was machen?

EDIT: Mit "Dynamischer Empfängeradresse" kann ich ja keine Mehrfachauswahl generieren. Jetzt frage ich mich, wie man in den Maileinstellungen festlegt, dass aus einem Formularfeld - und nicht aus dem Textfeld der Maileinstellungen - die Empfängeradressen geholt werden sollen. Soweit ich das überblicke kann ich aber nur "Empfängeradresse aus Textfeld (der Maileinstellung) und "Wenn möglich, dynamisch aus Seitencontent generieren" einstellen.

Oder hat das was mit der Beschreibung "+benutzername" bzw. "#gruppenname" zu tun? bin verwirrt, sorry.

michel
bjoern
Bitte bedenke, das Du nur in der zweiten Email Daten aus dem Formular verarbeiten kannst. Gruppenname und Benutzername beziehen sich nur auf die erste Email. Und dort auf die Emailadressen, die in der Benutzerverwaltung als entsprechende Email hinterlegt sind.

Wenn das dann immer noch nicht funktioniert, würde ich mir das gerne anschauen. Bitte mit Backendaccess.
mika
sodalla - jetzt hatte ich das we über kein dsl - jetzt gehts wieder.

also: wenn das formularfeld eine selectbox mit mehrfachauswahl ist, muss man nach wie vor die elemente mit "|" pipe trennen. komma funktioniert nicht. (auch nicht komma-leerzeichen, leerzeichen-komma)

wenn die validierung auf "kein" gestellt wird, meldet er, dass die mail verschickt wird - auch an verschiedene ausgewählte adressen, es kommt aber nichts an. die kontrollmail, die ich über "weitere e-mail-adresse" zuschicken lies, zeigt im header, dass die e-mail-adressen aus dem mehrfachselect nicht als empfänger übernommen werden.

hm. ich richte dir nen account ein und schick dir alles per pm

lg michel

bjoern
Die Trennersymbol kannst Du in der Registerkarte "Sonstiges" unter "Trennersymbol - bei Feldern, wo mehreren Werte angegeben werden können" selber einstellen.

Das die Emails bei Dir nicht ankamen war ein Konfigurationsfehler Deinerseites. Du hast das Formular so eingestellt, das im ersten Formularfeld ein Multiselect war, wo man sich die Emailadressen raussuchen konnte und im zweiten Formularfeld die Absenderadresse.

Das bedeutet das Du bei den Maileinstellungen unter "Weitere Email Emailadresse Absender" eine 2 für das zweite Formularfeld und "Weitere Email Emailadresse Empfänger" eine 1 für das erste Formularfeld eintragen musst, damit es funktioniert.
feniweb
Hallo

Habe eine Website über Validom validieren lasen im bereich des Formular-Tag erhalte ich eine Fehlermeldung. Siehe Screens.

Klicken um den Anhang anzusehen

es geht um dies Codezeile
ZITAT
<form id="feedback" class="{transmitted}" method="post" action="index.php?idcatside=1&sid=d7e19a9e1d8e27744b1989fd6e2a6b28" enctype="multipart/form-data" >


Um diese Fehlerausgabe
ZITAT
class="{transmitted}"

Klicken um den Anhang anzusehen

Ist das ein Bug im Kontaktformular 2.2?

Gruss
bjoern
Schmeiß einfach class="{transmitted}" aus dem Template, dann funktioniert es. Ich werde es in der nächsten Version korrigieren.
feniweb
Ich glaube ich habe da noch einen Bug.

Wenn man das Beschriftungs- und Platzhalter Feld einfügt und über Styles Styleklassen Nur Beschriftung und Platzhalter zuweist, werden zwar die CSS-Klassen eingefügt aber am falschen Ort, siehe Screen.

Klicken um den Anhang anzusehen

Klicken um den Anhang anzusehen

Die CSS-Klasse sollte doch beim Beschriftungs-Label stehen.

Alternativ: könnte man das
ZITAT
<span class="form_beschriftung" ></span>
über einen Elementcontainer einfügen. Aber irgend wie ist das nicht der Sinn des Style-Reiters denke ich.

Gruss
davelee
Ich hätte eine Frage / Anregung zum Thema Validierung:

Da die Spambots ja automatisch alle Formularfelder füllen die vorhanden sind habe ich mir überlegt ob man eine Validierung hinzufügen könnte <wenn Formulardaten gefüllt>.

Meine überlegung ist folgende:

Das gewünschte Formularfeld mit display:hidden versehen ( nicht sichtbar für User was aber ein Spambot nicht weiß)
wenn dieses Formularfeld gefüllt wird dann ist klar von wem die ganze sache erstellt worden ist.


Gibt es die Möglichkeit eine solche Validierung zu erstellen?

LG David
bjoern
ZITAT
Beschriftungs-Label

Das Verhalten ist korrekt. "Nur Beschriftung" bezieht sich auf das Formularelement, damit also ist auch die Styleklasse. Und das Formularelement ist eben halt "nur Beschriftung". Gib einfach als Defaultwert einen Text ein, dieser wird dann formatiert an der Position des Formularfeldes angezeigt.

@davelee
Ja, man könnte die Validierung "muss leer sein" hinzufügen. Dann könnte das gehen. Aber für die Spambots gibt es ja die Captchagrafiken.
davelee
ZITAT(bjoern @ Mon. 3. December 2007, 11:57) *
@davelee
Ja, man könnte die Validierung "muss leer sein" hinzufügen. Dann könnte das gehen. Aber für die Spambots gibt es ja die Captchagrafiken.


Nur das Captchagrafiken halt nicht wirklich benutzerfreundlich sind -
besonders bei Seiten die auf Grund der Zielgruppe barrierefrei sein müssen.

Und noch was zum Thema Formulardaten:
Ich habe versucht den Wert der einzelnen Formularfelder zu ändern:

z.B. von:
QUELLTEXT
<label for="go_frm100">


auf:
QUELLTEXT
<label for="Name">


jedoch erhielt ich :
QUELLTEXT
<label for="go_frm100" Name >


habe ich beim Kontaktformular etwas falsch konfiguriert ?
LG David
bjoern
Nein, hast nichts falsch gemacht, nur die Labels werden aber automatisch vom System vergeben, da kannst Du manuell nicht eingreifen.
davelee
Ach so, ich hab schon im Code des Moduls danach gesucht.

Ich danke dir für die Rückmeldung.
duffy
Hallo,

wenn ich das richtig sehe ist es mit diesem Modul nicht möglich den aktuell eingeloggten Usernamen mit in den E-Mail-Text rein zu bekommen, oder?

Ich bin gerade auf der Suche nach einer einfachen Möglichkeit, womit eingeloggte User Nachrichten an den Seitenbetreiber schicken können. Dafür wäre es schön, automatisch den Usernamen mit auszulesen. Gibt es solch eine Möglichkeit schon?

Gruß,

Oliver
bjoern
Da wirst du selber die Mailsendefunktion erweitern müssen, damit dies klappt. Nötige variablen für den aktuell eingeloggten User findest Du hier: http://wiki.sefrengo.org/index.php/Entwicklervariablen
duffy
Na dann mache ich das Doch mal:

Einfügen ab Zeile 918:
CODE
global $auth;
if(is_object($auth) && $auth->auth[uname] != "nobody"){
$placeholder = array();
foreach($auth->auth as $ind => $val){
$placeholder[] = '{user_'.$ind.'}';
}
$tpl_email = str_replace($placeholder, $auth->auth, $tpl_email);
}


Damit können Alle Variablen des Users in der Form {user_<variable>} im Mailtext benutzt werden.
mariop3
wie ist das bei dem kontaktformular gedacht wenn man "optionsfelder" auswählt dass man z.b. 2 radiobuttons gruppiert?

also z.b. die auswahl "herr" und "frau" und natürlich ist nur eins möglich.... naja billige sache in html.... aber ich blicks nicht wie das da gehen soll da das system ja den "name" vorgibt... beide felder müssten den selben namen haben damit das mit der auswahl klappt..
duffy
ZITAT(mariop3 @ Wed. 16. January 2008, 18:06) *
also z.b. die auswahl "herr" und "frau" ...


Ist das nicht am einfachsten mit einer Selectbox zu lösen?
mariop3
ZITAT(duffy @ Wed. 16. January 2008, 18:07) *
Ist das nicht am einfachsten mit einer Selectbox zu lösen?



naja war ja auch nur ein beispiel... ich checks irgendwie nich....
mariop3
ok ich stand ein wenig auf der leitung.... ich meinte nur das was man bei Defaultwert eingeben kann z.b. herr, frau ... das war mir unklar....
feniweb
Ist es möglich über ein Kontaktformular ein Dokument anzuhängen wie das bei einem Normalen Mailprogramm möglich ist?

Es gibt ja die Möglichkeit Dateien hochzuladen. Dann muss man aber immer über Backend->Dateimanager die Daten abholen etwas umständlich.

Gruss
amk
1. FR

{label}-element im "Template Captchaelement"

"Template Captchaelement" textarea vergrößern (höhe).

ODER

{image}- & {hiddentoken}-element im Template Elementcontainer

(prinzipiell könnte dann das "Template Captchaelement" wegrationalisiert werden)

............

warum?

bestimmte gestalterische dinge sind aktuell nicht möglich. bspw:

captcha-bild <div>captcha-input-label, captcha-input</div>


2. FR

Template für den Submit-Button.

............

warum?

nicht immer ist ein input-form-element als submit gewünscht,
das button-form-element ist manchmal vorteilhaft ... oder ein simpler link-tag mit js-funktionalität
feniweb
Wie es scheint, kann man im Kontaktformular in einem Defaultwert* Feld
keine Snippet Replacement Sprachvariablen vergeben, ist das richtig?

Wenn ja währe das ein FR für eine kommende Version.

Klicken um den Anhang anzusehen
bkm
ZITAT(feniweb @ Thu. 14. February 2008, 18:55) *
Wie es scheint, kann man im Kontaktformular in einem Defaultwert* Feld
keine Snippet Replacement Sprachvariablen vergeben, ist das richtig?

funktioniert bei mir ohne probleme.
sicher das der wert auch richtig eingetragen und für die jeweilige sprache vergeben ist ?
feniweb
Funktioniert bei mir nun auch einwandfrei. Sorry für die aufregung. huh.gif
Es wahr ein leerschlag zuviel.

Gruss
andi
ich habe ein paar probleme mit checkboxen. kann das hier jemand bestätigen?

1. egal ob checkbox oder checkbox, vordefiniert. die checkbox ist immer aktiv. notlösung: einen leerschlag im default-feld
2. eine checkbox gibt immer ein leeres label aus:
QUELLTEXT
<input type="checkbox" name="go_frm100"  id="go_frm100"  value="  " /><label for="go_frm100" >  </label><label for="go_frm100"  >test</label>

3. beim gesendeten mail ist nicht ersichtlich, welche checkboxen angewählt wurden (wahrscheinlich wegen dem doppelten, leeren label)


gruss andi
bkm
zu 2.
in der checkbox wird aus
QUELLTEXT
$e .= 'value="'.$this->_htmlentities($element_default_value_key).'"  '.$c.'  '.$element_attributes.' />'
    .'<label for="'.$element_name.'" '. $this->_format_styleclass($this->field_styles['label']).'>'
    . $this->_htmlentities($element_default_value) .'</label>';

das
QUELLTEXT
$e .= 'value="'.$this->_htmlentities($element_default_value_key).'"  '.$c.'  '.$element_attributes.' />';

zu 1. && 3.
wird nicht in der checkbox der defaultwert* übergeben ? somit ist wie bei dir leerschlag keine ausgabe in der email.
andi
ZITAT(bkm @ Sat. 15. March 2008, 10:13) *
zu 2.
in der checkbox wird aus
QUELLTEXT
$e .= 'value="'.$this->_htmlentities($element_default_value_key).'"  '.$c.'  '.$element_attributes.' />'
    .'<label for="'.$element_name.'" '. $this->_format_styleclass($this->field_styles['label']).'>'
    . $this->_htmlentities($element_default_value) .'</label>';

das
QUELLTEXT
$e .= 'value="'.$this->_htmlentities($element_default_value_key).'"  '.$c.'  '.$element_attributes.' />';

danke mein goldhase :-) funktioniert

ZITAT(bkm @ Sat. 15. March 2008, 10:13) *
zu 1. && 3.
wird nicht in der checkbox der defaultwert* übergeben ? somit ist wie bei dir leerschlag keine ausgabe in der email.

nun, ob mit oder ohne leerschlag, ich erhalte im abgesendeten mail immer nur folgendes:

checkbox1:
checkbox2:
checkbox3:

desweiteren ist ja das problem, dass die checkboxen immer vorselektioniert sind, auch wenn nichts im defaultwert steht.
im moment kann ich so das kontaktformular schlecht gebrauchen :-) muss eine alternative finden, am montag muss die site online :-)


gruss andi
bkm
IMO musst du defaultwert* (ich bin gewählt ) einen eintrag machen.
dieser wird
a ) checked="checked" bei checkbox entfernen
b ) bei der email übertragen
andi
ah, alles klar, funktioniert :-)
danke, stand da wohl auf dem schlauch, denn ohne defaultwert kann auch nichts übermittelt werden


gruss andi
luxli
Meine ersten Gehversuche mit dem Kontaktformular 2.0.0 sind gelungen und das alte mit dem Formbuilder erstellte Kontaktformular könnte ersetzt werden.
Nun wollte ich das Modul Kontaktformular 2.2 uploaden aber ich erhalte immer die Meldung:
"Es wurde keine gültige *.cmsmod- Datei hochgeladen"
auch nach einem erneuten Downloaden und entpacken der ZIP-Datei geht es nicht.

interessanterweise geht jedoch das uploaden von "Dynamische Empfängeradresse" sowie auch von anderen Modulen.

Was kann ich nocht tun?
FireFlyer
Vielleicht kommst du hier ein wenig weiter: Uploadproblem bei grösseren Modulen
luxli
ZITAT(FireFlyer @ Thu. 27. March 2008, 22:02) *
Vielleicht kommst du hier ein wenig weiter: Uploadproblem bei grösseren Modulen

hatte ich bereits gelesen

Ich habe noch Sefrengo 01.03.01 und warte mit dem Update auf die Version 01.04.01
im weiteren habe ich inzwischen festgestellt, es liegt tatsächlich an der Dateigrösse
daran dachte ich jedoch nicht, weil eine ähnliche Dateigrösse im Oktober noch funktionierte.
Seither hat der Provider Einstellungen geändert.

Der langen Rede kurzer Sinn, es hat nichts mit Sefrengo zu tun, es liegt am Provider.
Chregu
@Bjoern oder an den Entwickler

Habe noch einen Kleinen Fehler entdeckt. Die Styleklasse des Optionsfeld wird nicht übernommen.

Um den Bug zu beheben muss die Zeile 412 verändert werden.
In aktueller Version:
QUELLTEXT
$e .= '<input type="radio"  name="'.$element_name.'" id="'.$element_name.'" value="'.$this->_htmlentities($v_key).'" '.$c.' />'


Korrigierte Version:
QUELLTEXT
$e .= '<input type="radio"  name="'.$element_name.'" id="'.$element_name.'" value="'.$this->_htmlentities($v_key).'" '.$this->_format_styleclass($this->field_styles[$element_type])." ".$c.' />'


Habe keine neue Version daraus gemacht nur wegen einem solchen kleinen Bug. Falls jemand einmal eine Neue Version veröffentlicht wäre es jedoch
toll, wenn dies geändert wird.

Viel Spass.

Gruss
Chregu
arnekolja
Wie kann man denn das Default-Feld bei Radio-Buttons festlegen? Ich hab im Quellcode was mit dem "@@" gefunden, aber was wird erwartet?
andi
gute frage, eigentlich dürfte der radio-button «checked="checked"» nicht standardmässig anfügen.
entweder müsste dieser generell entfernt werden. dann könnte man unter opt. atributte «checked="checked"» eintragen.
oder dann müsste es wie bei der checkbox 2 elemente geben (vorselektiert oder nicht).

... dritte möglichkeit wäre, ich habe etwas übersehen :-)


gruss andi
bjoern
Frage Defaultwert bei Radiobuttons:

Hab mal im Quellcode nachgeschaut. Das Feature "Defaultwerte bei Radiobuttons setzen" gibt es noch nicht. Was Du mal probieren kannst, in den QUellcode gehen und suchen

QUELLTEXT
case 'option':
                $e  = '<select name="'.$element_name.'"  id="'.$element_name.'"  '.$element_attributes.' '
                    . $this->_format_styleclass($this->field_styles[$element_type]) .'>'."\n";
                $p = explode($this->mutiple_value_separator, $element_default_value);
                foreach($p AS $k=>$v){
                    $v_key = $v;
                    if (strstr($v, $this->key_value_separator) !== false)
                    {
                        $v_pairs = explode($this->key_value_separator, $v);
                        $v_key = $v_pairs['0'];
                        $v = $v_pairs['1'];
                    }
                    $s = ( $element_value == $v_key && ! $get_plain) ? 'selected="selected"':'';
                    $e .= '<option value="'.$this->_htmlentities($v_key).'" '.$s.' >'.$this->_htmlentities($v).'</option>'."\n";
                }
                $e .= '</select>'."\n";
                break;


Da dann

QUELLTEXT
$s = ( $element_value == $v_key && ! $get_plain) ? 'selected="selected"':'';

rauspicken und mit

QUELLTEXT
$s = ( $element_value == $v_key || ($get_plain && $element_value == 'DEIN_MANUEL_GESETZTER_SCHLUESSEL') ) ? 'selected="selected"':'';


ersetzen. Sollte funktionieren, habs aber nicht getestet.
andi
sali björn

dieser bugfix wäre auch mal was dringendes. ansonsten bekommt jede checkbox zwei labels, was nicht sinngemäss sein kann.


gruss andi
luxli
Zufall oder Problem?
Seitdem ich Kontaktformular 2.2 verwende erhalte ich sinnlose Mail und möglicherweise auch vermehr Spammail. Zudem konnte ich in der Statistik Besucher feststellen die das Kontaktformular ausfüllten bei mir aber kein Mail eintraf.

Mit dem Kontaktformular sind Fantasie-Absenderadressen möglich. Der Formbuilder macht dies unmöglich weil die Domain auf korrekte Schreibweise prüft. Darum hatte ich mit dem Formbuilder keine sinnlosen Mail und möglicherweise auch kaum Spams.

Frage:
Bietet der Formbuilder mehr Sicherheit oder ist das Zufall?
Wäre es nicht sinnvoll auch das Modul Kontaktformular mit einer Domainprüfung zu egänzen?



davelee
Ich habe Probleme mit Beistrichen in den kommerseperierten Angaben:

Wie soll ich vorgehen wenn in der Angabe eines Wertes ein Beistrich stehen soll
( HTML wird nicht interpretiert da es vor der Ausgabe umgewandelt wird z.B. &sbquo; )


LG, David
saschapi
Gab es da nicht eine Einstellung die das Komma gegen ein anderes Zeichen austauscht? Oder war das im contentflex?
davelee
Ich habe leider nichts gefunden sad.gif

Hierbei stellt sich die Frage- was machen wenn man in der Angabe sonstige HTML elemente benötigt
(sowie <strong> oder <br>)
andi
bei der ausgabe von optionfelder erhält jeder darin enthaltene «radio» die gleiche id und der gleiche name.
leider nicht valid. könnte man das noch ändern?

kennt sich jemand damit aus und kennt die ursache?


gruss andi
bkm
vll. könnte man dafür nur im element radio den wert der value an die id hängen
id="'.$element_name.'_'.$this->_htmlentities($v_key).'"
damit es eindeutig wird. <<keine ahnung obs dann valide ist, habs nicht probiert>>
andi
ZITAT(bkm @ Tue. 8. July 2008, 11:20) *
vll. könnte man dafür nur im element radio den wert der value an die id hängen

mh, probleme gibts dann aber, wenn der value umlaute oder leerschläge enthält. dann doch lieber irgend zahl welche hochzählung wird. nur wüsste ich nicht, wie das gehen sollte :-)
bkm
probier mal
id="'.$element_name.'_'.$k.'"
andi
vielen dank. langsam wird das ganz schön unübersichtlich mit den kleinen bugfixes :-)


gruss andi
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.