[x_dma_niceerrors] Individuelle Fehlermeldungen in Formularen
Guten Tag!
Diese kleine aber nützliche Erweiterung möchte ich euch nicht vorenthalten.
Sie erlaubt es statt der von Typolight generierten Fehlermeldungen individuelle Fehlermeldungen zu erzeugen und diese frei zu platzieren.
Durch Vergabe von "Fehler-IDs" ist es auch möglich, Fehlermeldungen zu gruppieren, also gleichartige Fehler nur einmal anzuzeigen (z.B. "Bitte füllen Sie alle Pflichtfelder aus."). Es lassen sich unterschiedliche Fehlermeldungen für leere Pflichtfelder und für fehlgeschlagene Eingabeprüfungen vergeben.
Über das Inserttag {{formerrors::<?php echo $this->formSubmit; ?>}} werden die Fehler an beliebiger Stelle ausgegeben. Dazu ist es allerdings nötig, die Templates form.tpl und form_widget.tpl anzupassen. Beispiele dazu liegen unter TL_FILES/dma_niceerrors.
Änderungen in Templates
Ohne die Anpassungen des Templates form_widget.tpl werden die Standardfehlermeldungen angezeigt, da diese über "$this->generateWithErrors" ausgegeben werden. Dieses muss zu "$this->generate" geändert werden.
Im Template form.tpl (aber auch an anderer Stelle) können per Inserttag {{formerrors::form_id}} die eigenen Fehlermeldungen ausgegeben werden.
Stabilität
Wir nutzen diese Erweiterung schon seit mehreren Monaten erfolgreich in unseren Formularen (hauptsächlich Landingpages von Gewinnspielen, Kontaktformulare oder Bestellformulare), ich habe sie nun für das Extension Repository angepasst. Nach einer Testphase dieser Anpassung werde ich es dann auch offiziell "stable" nennen.
Download/Installation
https://contao.org/erweiterungsliste...ors.93.de.html
Ich hoffe, es nützt wem!
Carsten Kollmeier
Inserttag {{formerrors::form_id}}
Hallo Carsten
Wie und wo kann man den Inserttag einfügen? Und die schreibweise solte wie aussehen?
Etwa so {{formerrors::1}}?
Beste Dank für die Hilfe
Gruss
Steven
Anleitung für x_dma_niceerrors gesucht
Hallo Staen,
nachdem ich nun schon seit zwei Tagen versuche die Fehlermeldungen bei der PW abfrage in dem Modul "Persönliche Daten" und in dem Modul "Registrierung" an einer anderen Stelle auf der entsprechenden Seite zu platzieren, bin ich nun leider erst jetzt durch Zufall auf deine Erweiterung x_dma_niceerrors gestoßen.
Mein erster Gedanke war: Wau meine Gebete wurden erhört!
Leider bastle ich aber jetzt schon den ganzen Tag (und die halbe Nacht) ohne Erfolg daran dies mit Deiner Erweiterung umzusetzen.
Ich hab die Threads hier zu NiceErros durchforstet und bin dabei leider nur auf 4 Beiträge gestoßen, die mir aber auch nicht viel weiter geholfen haben.
Ich habe die original Tpl. von Contao gegen die beiden Tpl. die bei der Erweiterung dabei sind ersetzt und mit diversen Insert Tags innerhalb eines Artikels experimentiert.
Leider mit dem Ergebnis das sich nix verändert, d.h. ich bekomme immer noch die Original Errormeldungen an der von dem Modul vorgesehenen Stelle.
Ich beschäftige mich jetzt schon eine Weile mit TL bzw Contao aber irgend wie fehlt mir wohl ein Stück Verständniss, oder ich bin schlicht weg zu dusselig dafür.
Da leider kein Handbuch bei der Erweiterung dabei ist, wäre es da evtl möglich das Du eine kurze Step by Step Anleitung geben könntest wie man die Erweiterung richtig einsetzt? Stichpunktartig würde da sicherlich schon reichen. Darüber hinaus glaube ich das dies hier in der Community nicht nur mir sonder auch viele andere begrüßen würden.
Vorab schon mal 1.000 Dank.
Viele Grüße
MiTsch
Aber nicht im Registrierungsmodul :(
Hallo zusammen,
nach großem Jubel folgte bzw. kehrte Frust zurück.
Ich habe das gleiche Problem wie viele vor mir, mit den Fehlermeldungen bei einer Registrierung oder auch Login.
Diese Erweiterung schien mir sehr nützlich, bis ich heruasgefunden habe wieso sie bei mir einfach nicht laufen wollte. Ich nutze das Registrierungsmodul von Contao.
Warum? es ist mir wichtig, dass der Kunde einen Aktivierungslink erhält um sein Konto zu bestätigen. Eine derartige Erweiterung habe ich nicht für den Formulargenerator gefunden.
Kann ich mit dieser Erweiterung trotzdem das Modul von Contao beeinflussen oder geht es irgendwie auf andere Weise?
Ich würde mich sehr über Hilfe freuen, vielen Dank und allen ein schönen Feierabend.
Luigi
Liste der Anhänge anzeigen (Anzahl: 3)
Invalid request token!
Bin ratlos...
Habe die Erweiterung installiert über die Erweiterungsverwaltung Anhang 5127
Habe dann die beiden Tempaltes in die Verwaltung geladen Anhang 5128
Nach absenden des Formulares erfolgt dann Fehlermeldung Anhang 5129
Datei "form.xhtml" sieht wie folgt aus:
PHP-Code:
<!-- indexer::stop -->
<div class="<?php echo $this->class; ?> <?php echo $this->tableless ? 'tableless' : 'tableform'; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
<?php if ($this->headline): ?>
<<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
<?php endif; ?>
<div class="error">{{formerrors::<?php echo $this->formSubmit; ?>}}</div>
<form action="<?php echo $this->action; ?>" id="<?php echo $this->formId; ?>" method="<?php echo $this->method; ?>" enctype="<?php echo $this->enctype; ?>"<?php echo $this->attributes; ?>>
<div class="formbody">
<?php if ($this->method != 'get'): ?>
<input type="hidden" name="FORM_SUBMIT" value="<?php echo $this->formSubmit; ?>" />
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $this->maxFileSize; ?>" />
<?php endif; ?>
<?php echo $this->hidden; ?>
<?php if (!$this->tableless): ?>
<table cellspacing="0" cellpadding="0" summary="Form fields">
<?php echo $this->fields; ?>
</table>
<?php else: echo $this->fields; endif; ?>
</div>
</form>
<?php if ($this->hasError): ?>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
window.scrollTo(null, ($('<?php echo $this->formId; ?>').getElement('label.error').getPosition().y - 20));
//--><!]]>
</script>
<?php endif; ?>
</div>
<!-- indexer::continue -->
Datei "form_widget.xhtml" sieht wie folgt aus:
PHP-Code:
<?php if (!$this->tableless): ?>
<tr class="<?php echo $this->rowClass; ?>">
<td class="col_0 col_first"><?php echo $this->generateLabel(); ?></td>
<td class="col_1 col_last"><?php echo $this->generate(); ?></td>
</tr>
<?php else: ?>
<?php echo $this->generateLabel(); ?>
<?php echo $this->generate(); ?><br />
<?php endif; ?>
Hab ich irgend etwas noch vergessen?
Es sollen eigentlich ja auch nur alle Fehlermeldungen gebündelt angezeigt werden.