mod_form 4.1

Diskussion zum Formular-Modul für ConPresso 4
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

mod_form 4.1

Beitrag von MarkusR »

In den nächsten Tagen werde ich die hier schon erwähnte Version 4.1 von mod_form veröffentlichen.

Neben kleinen Bug-Fixes und Verbesserungen gibt es folgende Änderungen:
- Captcha kann über die Moduleinstellungen gesteuert werden (s.u.)
- Wählbarer User für Dateiupload
- Dateiupload abschaltbar
- Nach dem Mailversand können die Artikel vernichtet werden (durch die Rubrikauswahl "keine")

Ich werde noch ein paar Tage testen und dann einen Download anbieten. Mit-Tester willkommen.
Dateianhänge
mod_form_4.1.png
Zuletzt geändert von MarkusR am 24.06.2012 01:06, insgesamt 1-mal geändert.
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,

ich habe gerade ein kleines Projekt hier, an dem ich es gerne testen würde.
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 »

Erstes Feedback (Datei-Upload) noch nicht getestet:

Läuft soweit prima. Nur ein kleiner Wehrmutstropfen: Auf meinem lokalen Server2Go 1.7.3 (WinXP SP3) weigert sich das Modul sowohl im Frontend als auch im Backend die Einstellungen für Captcha-Schriftfarben-, die Captcha-Schrift- und das Captchabild zu verwenden. Es werden immer nur die Default-Werte verwendet.


Ein paar kleinere Änderungen habe ich noch gemacht:

1. Zur Vermeidung leerer span-Tags in parser_r_form.inc.php die Zeilen

Code: Alles auswählen

if ($parameters['type'] == "fixed")  {
   $_t = '<span'.$input_class.'>'.$_t.'</span><input type="hidden" name="'.$field_name.'" value="'.$_t.'" />';
}
geändert zu

Code: Alles auswählen

if ($parameters['type'] == "fixed")  {
  if ($_t == "") {'<input type="hidden" name="'.$field_name.'" value="'.$_t.'" />';}
  else {$_t = '<span'.$input_class.'>'.$_t.'</span><input type="hidden" name="'.$field_name.'" value="'.$_t.'" />';}
}
2. Weil ich den Schrägstrich in den erzeugten Artikeltiteln der gespeicherten Formularinhalte nicht mag, in parser_r_form.inc.php die Zeile

Code: Alles auswählen

    $data['titel'] = ($data['titel']) ? $data['titel'].' / '.$_t : $_t;
geändert zu

Code: Alles auswählen

    $data['titel'] = ($data['titel']) ? $data['titel'].' '.$_t : $_t;
3. Die Änderungen von http://community.conpresso.de/posting.php?p=25285#25285

4. In den Formularen einen Reset-Button eingeführt und Formular-Buttons mit Klassen versehen. dazu wurde in form.inc.php

Code: Alles auswählen

  echo '<input type="hidden" name="action" value="form">';
  echo '<input type="hidden" name="rubric" value="'.$_REQUEST['rubric'].'">';
  echo '<input type="submit" class="mod_form_submitbutton" value="'.$activeModules[$directory]['submit'].'"></form>';
zu:

Code: Alles auswählen

  echo '<div class="formbuttons">';
  echo '<input type="hidden" name="action" value="form">';
  echo '<input type="hidden" name="rubric" value="'.$_REQUEST['rubric'].'">';
  echo '<input class="submitbutton" type="submit" value="'.$activeModules[$directory]['submit'].'"> ';
  echo '<input class="resetbutton" type="reset" value="Felder löschen" name="Reset">';
  echo '</div></form>';
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Werde ich mir alles mal anschauen.

Ursache für das Versagen auf Windows-Systemen ist das Verhalten von ConPresso die Konstante CPO_BASEDIR mit einem "/" zu ergänzen.
Das müsste auf Windows-Systemen aber eben ein "\" sein.

Daher scheitert hier die Ermittlung des Modulverzeichnisses :?

Ändere mal Zeile 43 von captcha.php zu

Code: Alles auswählen

$directory = str_replace(array(CPO_BASEDIR,realpath(dirname(__FILE__).'/../../'),'\\','/'),'',realpath(dirname(__FILE__).'/../').'/');
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: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

zu 1) Kannst Du mal erläutern, wie Du zu leeren Span-Tags kommst?

Die werden ja zur visuellen Ausgabe der Inhalte von hidden-Feldern verwendet, damit diese nicht geändert werden können, aber dennoch sichtbar sind (disabled-Inhalte (als Alternative) werden vom Formular leider nicht versendet).

Ist das also ein Feld mit der Eigenschaft fixed, das aber keinen Inhalt bekommen hat?
Könnte man ja alternativ schon im aufrufenden Artikel mittels ifSet abwenden, oder?
Man kann den Code aber natürlich auch ergänzen... für alle Fälle :wink:

zu 2) Das könnte eine weitere Einstellung werden...

zu 3) das wollte ich noch bearbeiten und ein alternatives Message-Feld anbieten, das dann mit einem Platzhalter an eine beliebige Stelle gesetzt werden kann...

zu 4) das Formular hat ja schon die Klasse mod_form, daher ist das zusätzliche DIV doch überflüssig, oder?
Und der Submit-Button hat ja bereits eine Klasse, fehlt also nur ein Reset-Button mit einer passenden Klasse, oder?

Ich denke hier dann einfach an ein Texteingabefeld bei den Einstellungen. Wird der Reset-Schalter beschriftet, dann wird er ausgegeben, ansonsten eben nicht (man ja ja doch die ESC-Taste für alle Fälle...)
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: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

OK

1.) ist erledigt

2.) gibt es jetzt als Einstellung "Artikeltitel-Trennzeichen"

3.) gibt es jetzt als Einstellung "Template für Meldungs-Box"
(ohne Eintrag wird das ConPresso-Fieldset oberhalb des Formulars ausgegeben)

4.) gibt es jetzt als Einstellung "Beschriftung des Reset-Knopfes"
(ohne Eintrag gibt es keinen Knopf, mit Eintrag einen mit der Klasse mod_form_resetbutton)

Ich teste es nochmal und sende Dir dann ein neues Archiv.
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 »

3.) hat noch eine kleine Macke:

Konfiguriere ich jetzt das Template für die Message-Box, erhalte ich im Fehlerfall, also wenn bspw. ein Pflichtfeld nicht ausgefüllt wurde, wunderbar eine entsprechende Box.
Aber: Auf der Bestätigungsseite wird nun gar keine Ausgabe einer Meldung erzeugt.

Was ich ursprünglich erreichen wollte (und erreicht hatte), war einfach, dass auf der Bestätigungsseite die in den Moduleinstellungen definierte Erfolgs-Meldung*) erscheint, nicht aber dort noch einmal alle übermittelten Formulardaten aufgelistet werden. Für die Auflistung der Formulardaten gibt es ja die extra übers Template konfigurierbare Bestätigungsmail.

*) Bei mir ist das bspw.: Ihre Angaben wurden erfolgreich gesendet!<br />Sie erhalten in Kürze eine Kopie der übermittelten Daten an Ihre E-Mail-Adresse.
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 »

Noch etwas fiel mir eben im Seitenquelltext des Formulars auf: die name-Attribute der Formularfelder sehen ungewohnt aus - ich weiß nicht, ob das so Absicht war und ab welcher Version das so ist.
Bei mod_form RC2 war das jedenfalls noch nicht so.

EDIT: Die Version 4.0a vom März '09 ist die erste Version, welche die name-Attribute in dieser Form setzt. Aber zw. RC2 und 4.0a hatte ich auch keine Zwischenversion.


Beispiel:

<table border="1">
<tr>
<td>Name</td>
<td><input type="text" name="content[Name (text)][text]" value="" /></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="content[Email (text)][text]" value="" /></td>
</tr>
<tr>
<td>Nachricht</td>
<td><textarea name="content[Nachricht (text)][text]" rows="5" cols="40"></textarea></td>
</tr>
</table>
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Mr. Magpie hat geschrieben:3.) hat noch eine kleine Macke:

Konfiguriere ich jetzt das Template für die Message-Box, erhalte ich im Fehlerfall, also wenn bspw. ein Pflichtfeld nicht ausgefüllt wurde, wunderbar eine entsprechende Box.
Aber: Auf der Bestätigungsseite wird nun gar keine Ausgabe einer Meldung erzeugt.

Was ich ursprünglich erreichen wollte (und erreicht hatte), war einfach, dass auf der Bestätigungsseite die in den Moduleinstellungen definierte Erfolgs-Meldung*) erscheint, nicht aber dort noch einmal alle übermittelten Formulardaten aufgelistet werden. Für die Auflistung der Formulardaten gibt es ja die extra übers Template konfigurierbare Bestätigungsmail.

*) Bei mir ist das bspw.: Ihre Angaben wurden erfolgreich gesendet!<br />Sie erhalten in Kürze eine Kopie der übermittelten Daten an Ihre E-Mail-Adresse.
Das ist natürlich doof.

Dein ursprüngliches Problem war dann aber eine Einstellungssache.

Die Formulardaten bekam man ja nur aufgelistet, wenn man "Bestätigungsseite" aktiviert. Wählt man "keine" oder "Bestätigungs-Mail", dann kommt nur die Meldung (und ggf. eine E-Mail).

Das mit der Meldung kriegen wir noch hin...
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: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Mr. Magpie hat geschrieben:die name-Attribute der Formularfelder sehen ungewohnt aus
Das gehört so.

Ich weiß es nicht mehr genau, aber ich glaube der Dateiupload brachte Probleme mit Sonderzeichen in Platrzhalternamen.
Ich habe daher auf das bei ConPresso verwendete content-Array umgestellt damit Platrzhalternamen frei gewählt werden können.
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: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

MarkusR hat geschrieben:Das mit der Meldung kriegen wir noch hin...
Hierfür einfach in index.php nach

Code: Alles auswählen

	include(CPO_BASEDIR.$directory.'/includes/message.php');
noch

Code: Alles auswählen

	if ($form_ok) echo $mod_form_message_string;
einsetzen.
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:[...] Was ich ursprünglich erreichen wollte (und erreicht hatte), war einfach, dass auf der Bestätigungsseite die in den Moduleinstellungen definierte Erfolgs-Meldung erscheint, nicht aber dort noch einmal alle übermittelten Formulardaten aufgelistet werden. Für die Auflistung der Formulardaten gibt es ja die extra übers Template konfigurierbare Bestätigungsmail. [...]
[...] Dein ursprüngliches Problem war dann aber eine Einstellungssache.

Die Formulardaten bekam man ja nur aufgelistet, wenn man "Bestätigungsseite" aktiviert. Wählt man "keine" oder "Bestätigungs-Mail", dann kommt nur die Meldung (und ggf. eine E-Mail).
:oops: Kann gar nicht glauben, dass ich so doof gewesen sein soll. :wall: Schließlich verhindere ich die Ausgabe der Daten auf der Bestätigungsseite schon seit den frühen Beta-Versionen des Moduls. Ich hoffe, es war damals anders. (Und wenn du mir was Gutes tun willst, dann widersprich bitte nicht :|)
MarkusR hat geschrieben:Das mit der Meldung kriegen wir noch hin...
Ja, das haben wir nun ganz wunderbar hingekriegt.
Günther Ludwig
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Hi Markus,

hast Du schon mal darüber nachgedacht, Captcha-Hintergrund und -Font auch zufällig auswählen zu lassen?

Zu den Dateipfaden. Ich meine irgendwo gelesen zu haben, dass auch unter Windows der "/" als Pfadtrenner benutzt werden kann. (Sogar sollte?)

Leider finde ich das in der PHP Doku nicht wieder.

Balu
Bartels.Schöne
ConPresso Support & Development
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 Balu,

bei den derzeitigen vom Modul (bzw. Markus) bereitgestellten Captcha-Hintergründen und -Fonts wäre eine zufällige Zusammenstellung ungeeignet.
Manche Schriften - wenn sie sich nicht farblich sehr abheben, was ja kontraproduktiv wäre - sind auf den meisten der Hintergründe nur sehr sehr eingeschränkt entzifferbar.
Lieber wählt man einen Hintergrund und darauf abgestimmt Schrift, Schriftfarbe und Schriftstil.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7362
Registriert: 01.01.1970 01:00
Hat sich bedankt: 111 Mal
Danksagung erhalten: 934 Mal
Kontaktdaten:

Beitrag von MarkusR »

Zufällige Captcha-Zusammenstellung ist wenig brauchbar.
Viele Kunden haben schon bei den eigentlich gut zu lesenden Versionen Probleme, so daß man ihnen erklären muß, daß dies nicht leicht zu lesen sein darf, um die Maschinen am Spammen zu hindern.

Daß "/" als Pfadtrenner auch unter Windows funzt ist richtig.

Allerdings versuche ich aus
c:\test\conpresso\mod_form\captcha
den Teil "mod_form" herauszufiltern

Auf Linux-Systemen kann ich einfach CPO_BASEDIR durch nichts ersetzten.
Auf Windows-Systemen steht aber in CPO_BASEDIR
c:\test\conpresso/
und das ist in der obigen Pfadangabe nicht vorhanden.
(der Slash wird ja in der common.inc.php angehängt).
Anyway... das Problem ist ja bereits gelöst.

Ich habe noch ein paar andere Dinge gefunden, mir sind noch ein paar nützliche Sachen eingefallen und die Sicherheit habe ich derzeit noch im Auge. Aber bald kommt die neue Version... :wink:
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