mod_form

Diskussion zum Formular-Modul für ConPresso 4
Antworten

Braucht noch jemand beliebige Formulare?

ja
27
96%
ich habs nicht ganz verstanden
0
Keine Stimmen
nein
1
4%
 
Insgesamt abgegebene Stimmen: 28

Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Welche Dokumentation??? :gruebel:
Die Anleitung in diesem Thread?

Ein Vorgabewert ist nicht ganz trivial, weil die Radio-Buttons ja unabhängig voneinander definiert werden.

Bisher ist für sowas die Select-Box gedacht, bei der der gewünschte Vorgabewert einfach als erstes eingetragen wird.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Welche Dokumentation???
Ja, natürlich die Anleitung in diesem Thread! Gibt's 'ne andere?? :)

Ich dachte da an einen Parameter checked oder checked="checked"...

Konkret: In meinem Newsletter-Anmeldeformular gibt's die Radio-Button-Optionen Händler und Endkunde und eine davon sollte beim Laden des Formulars vorselektiert sein.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Mr. Magpie hat geschrieben:
Welche Dokumentation???
Ja, natürlich die Anleitung in diesem Thread! Gibt's 'ne andere?? :)
Hier im Thread steht
type=radio erzeugt einen Radiobutton (wobei der immer ein paar gleichnamige Kumpels bekommen sollte)
Oder wo hast Du es gesehen...?
Mr. Magpie hat geschrieben:Ich dachte da an einen Parameter checked oder checked="checked"...

Konkret: In meinem Newsletter-Anmeldeformular gibt's die Radio-Button-Optionen Händler und Endkunde und eine davon sollte beim Laden des Formulars vorselektiert sein.
checked wird ja bereits gesetzt, allerdings wird damit der bei einer fehlenden Eingabe konservierte Wert übernommen.
Es müßte also einen checked-Parameter geben, der aber nur dann gilt, wenn es noch keinen Wert gibt.
Ich muß mich da erst wieder reinarbeiten und dann mal sehen, ob man da was machen kann...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Suche mal in parser_r_form.inc.php
den Teil

Code: Alles auswählen

if ($parameters['type'] == "radio")  {
	$checked = ($_t==$input_value) ? ' checked="checked"' : '';
	$_t = '<input type="radio" name="'.$field_name.'" value="'.$input_value.'"'.$input_class.$checked.$disabled.' />';
}

und ändere ihn zu

Code: Alles auswählen

if ($parameters['type'] == "radio")  {
	$checked = (array_key_exists('checked', $parameters)) ? ' checked="checked"' : '';
	if ($_REQUEST['action']=="form") $checked = ($_t==$input_value) ? ' checked="checked"' : '';
	$_t = '<input type="radio" name="'.$field_name.'" value="'.$input_value.'"'.$input_class.$checked.$disabled.' />';
}
dann sollte checked als Parameter funktionieren... habe es aber selbst nicht getestet!
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

MarkusR hat geschrieben:
Mr. Magpie hat geschrieben:
Welche Dokumentation???
Ja, natürlich die Anleitung in diesem Thread! Gibt's 'ne andere?? :)
Hier im Thread steht
type=radio erzeugt einen Radiobutton (wobei der immer ein paar gleichnamige Kumpels bekommen sollte)
Oder wo hast Du es gesehen...?
Sorry, Markus, "dokumentiert" war wohl etwas hoch gegriffen. Ich meinte diesen Beitrag: http://community.conpresso.de/viewtopic ... 6649#16649
Günther Ludwig
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

MarkusR hat geschrieben:dann sollte checked als Parameter funktionieren... habe es aber selbst nicht getestet!
Danke! Einwandfrei - war ja fast nicht anders zu erwarten!

Viele Grüße
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Mr. Magpie hat geschrieben:
MarkusR hat geschrieben:
Mr. Magpie hat geschrieben: Ja, natürlich die Anleitung in diesem Thread! Gibt's 'ne andere?? :)
Hier im Thread steht
type=radio erzeugt einen Radiobutton (wobei der immer ein paar gleichnamige Kumpels bekommen sollte)
Oder wo hast Du es gesehen...?
Sorry, Markus, "dokumentiert" war wohl etwas hoch gegriffen. Ich meinte diesen Beitrag: http://community.conpresso.de/viewtopic ... 6649#16649
*lol*

ok... hast mich nach knapp zwei Jahren ertappt... da habe ich Mist geschrieben... :mrgreen:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Hab' ich "schon" 8) vor 'nem guten Jahr gemerkt, als ich das Modul erstmals ausprobiert hab'. Macht nüscht, wer viel schafft, darf auch 'mal ein Fehlerchen machen.
Günther Ludwig
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Hallo Markus, ich trau' mich ja kaum es zu sagen, aber ich hab' schon wieder ein ganz besonderes Anliegen :oops:
Wenn du sagst, es geht nicht, ist's auch okay, wenn doch, dann bist du wieder einmal mein Held!

Aaalso, ich übergebe verschiedene Werte an ein Formular. Jetzt müsste ich innerhalb des Formulars per ifSet abfragen, ob für ein Feld Inhalt übergeben wurde und, wenn nicht, dann soll eine Passage - bspw. eine Tabellenzeile - nicht angezeigt werden. Da die Text-Platzhalter zu diesem Zeitpunkt schon zu Form-Platzhaltern mutiert sind, funktioniert das nicht.

Viele Grüße und Dank im Voraus!
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Da ein Formular zur Eingabe von Inhalt dient, deutet die Aussage "ob Inhalt übergeben wurde" entweder auf eine zweiphasige Bearbeitung des Formulars hin oder eine javascript-Steuerung für optionale Felder.

Da wie gesagt ein Formular, bevor man es absendet, eben keinen Inhalt hat, bitte ich Dich das nochmal konkreter und weniger allgemein zu beschreiben... für mich zumindest...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Hallo Markus, es soll keine mehrstufige Formularverarbeitung werden, obwohl das auch nicht uninteressant wäre.

Darum geht's: In einer Rubrik Seminarangebote werden verschiedene Seminare angeboten - klingt ganz logisch, oder? Über verschiedene Textfelder werden so Dinge wie Seminarart, Seminartitel, Kosten und Mitgliedsrabatt per URL an das mod_form-generierte Formular übergeben und dort über type=fixed -Parameter als normaler Text dargestellt. Soweit, so gut.
Nun gibt es aber in diesem Formular ein Checkbox-Feld, wo Mitglieder anhaken können, dass sie Mitglied sind und dementsprechend einen Mitgliedsrabatt beanspruchen. Dieser Mitgliedsrabatt wurde ja über die URL übermittelt und wird in einer Textpassage unmittelbar an die Checkbox anschließend ausgewiesen.
So, nun gilt es, die Checkbox und die anschließende Textpassage nicht im Formular zu erzeugen, wenn der übergebene Parameter Mitgliedsrabatt leer ist.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Ach herrje.... ich weiß nicht wie ich dem Parser (der für die ifsets zuständig ist) das unterschieben soll... wird etwas dauern :(

Gibt es ein Testsystem, auf dem man ein paar Dateien quälen und den Auftritt im Zweifelsfalle auch mal lahmlegen kann?
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Muss ich morgen früh 'mal sehen - du brauchst Admin- und FTP-Zugang?
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Ich müsste halt an die Templates sowie die Dateien, also ja.

Alternativ kannst Du auch alles zippen und ein sql-dump machen, dann spiele ich es auf einen meiner Server zum Testen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Here we go:

1.) die URL, die die Werte übergibt, wird ergänzt durch ein
&ifsetFELDNAME=true, in diesem Fall also &ifsetFMitgliedsrabatt=true
Damit weiß das Formular, was auf Werte geprüft werden muß (das muß so sein, weil sonst JEDE fehlende Eingabe im Formular das zugehörige Feld verschwinden lassen würde).
2.) Auch im Formular selbst muß dies weitergetragen werden, damit bei mehrstufiger Bearbeitung diese Info nicht verlorengeht, also muß ein Platzhalter in der Form <!-- Text: ifsetFELDNAME; type=hidden; value=true; --> hinein, also in diesem Fall <!-- Text: ifsetMitgliedsrabatt; type=hidden; value=true; -->
3.) parser_c_form. inc.php muß folgendermaßen ergänzt werden

Code: Alles auswählen

		while ($db_content->next_record()) {
			$content[$db_content->v('fieldname').' ('.$_type.')'] = array(
				'type'   =>$_type,
				'name'   =>$db_content->v('fieldname'),
				'input'  =>$_REQUEST[keyFix($db_content->v('fieldname'))],
			);
		}
wird zu

Code: Alles auswählen

		while ($db_content->next_record()) {
			$content[$db_content->v('fieldname').' ('.$_type.')'] = array(
				'type'   =>$_type,
				'name'   =>$db_content->v('fieldname'),
				'input'  =>$_REQUEST[keyFix($db_content->v('fieldname'))]
			);
			if ($_REQUEST['ifset'.keyFix($db_content->v('fieldname'))] && ($_REQUEST[keyFix($db_content->v('fieldname'))] == ''))  {
				unset ($content[$db_content->v('fieldname').' ('.$_type.')']);
			}
		}
(bei der Gelegenheit wird auch das überflüssige Komma eliminiert...)

Und wichtig: der Mitgliedrabatt muß LEER sein, nicht Null (0).

Hintergrundinfo: Das ifSet selbst funktionierte bereits vorher. Allerdings war natürlich immer ein Inhalt vorhanden, weil egal ob etwas übergeben wurde oder nicht das Modul für den Parser ein Eingabefeld als Inhalt erzeugte. Jetzt wird also geprüft, ob gepüft werden soll und ob das zu prüfende bereits Inhalt hat. Wenn nicht wird das ganze Feld entsorgt und somit kann ifSet keinen Inhalt (mangels Feld) mehr ausmachen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Antworten