Powermail 1.6 die Fehlermeldung des madatory-field unter das jeweilige textarea ausgeben...

  • 0 x
    100 Beiträge
    0 Hilfreiche Beiträge
    15. 02. 2011, 16:33

    Hallo in den zuvor genutzten powermail versionen hat sich die fehlermeldung des mandatory-field zwischen den feldern geschoben...

    nun werden aber die fehlermeldung gesondert ausgegeben und über z-index positioniert...

    wie kann man die darstellung der alten version bekommen...

    so das es nicht über js ausgegeben und positioniert wird... die 1.5.x war diesbezüglich um einiges angenehmer und sauber...

    in welcher datei kann man die errors steuern?


  • 1
  • digicom digicom
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    23. 02. 2011, 08:23

    Salü
    Ich habe eine Lösung gefunden.

    In einem ersten Schritt ein eigenes JS einbinden:

    1. [userFunc = user_powermailOnCurrentPage]
    2. # if powermail is on current page and t3jquery is loaded include jquery and validation js using t3jquery
    3. page.includeJSFooter.powermail_frontend = fileadmin/ext/powermail/js/powermail_frontend.js
    4. page.31320.30.jsfile = fileadmin/ext/powermail/js/powermail_frontend.js
    5. [END]

    In diesem dann vor allem eine eigene Klasse dem Input-Feld dazufügen, wenn die Prüfung scheitert und die Position anpassen:

    1. (function($) {
    2. $(function(){
    3.  
    4. var powermail_validator = $('.tx_powermail_pi1_form').validator({
    5. inputEvent: 'blur',
    6. grouped: true,
    7. singleError: false,
    8. errorClass: 'powermail-field-error',
    9. position: 'bottom left',
    10. offset: [0, 0],
    11. message: '<div></div>'
    12.  
    13. });
    14. ...

    Und im letzten Schritt die CSS-Definitionen anpassen, damit unten der Platz für die Fehlermeldung geschaffen wird:

    1. .powermail-field-error {
    2. border: 1px solid red;
    3. margin-bottom:20px;
    4. }

    So geht das wieder.

    Grüsse, Heinz

  • 0 x
    100 Beiträge
    0 Hilfreiche Beiträge
    23. 02. 2011, 12:16

    dieses script schiebt aber zwischen den felder kein divs wie in den vers 1.5...

    kann man da nicht etwas ohne js machen?

  • digicom digicom
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    23. 02. 2011, 16:43

    Salü

    Die Validierung erfolgt ja via JavaScript genauer jQuery. Ich habe lediglich kleine Anpassungen am Script von Powermail vorgenommen. Da ich aber nicht das Original-JS ändern wollte, musste ich mein eigenes einbinden.

    So funktioniert's in Kurzform:
    - Ein Fehler tritt auf zB. Feld leer
    - Dem Input-Feld wird eine CSS-Klasse hinzugefügt
    - Diese Klasse wird per CSS so formatiert, dass unter dem Input-Feld Platz für die Fehlermeldung entsteht.
    - Der von Powermail erzeugte <div> wird im neu enstandenen Platz angezeigt.

    So reagiert das schlussendlich wie vor der Version 1.6.0

    Falls es einen einfacheren Weg gibt, bin ich darauf neugierig. Ich glaube aber nicht, dass das einfacher geht.

    Grüsse, Heinz

  • WebTekk WebTekk
    T3PO
    0 x
    25 Beiträge
    0 Hilfreiche Beiträge
    10. 03. 2011, 16:20

    Mit der Version 1.6.1 geht's einfacher: http://forge.typo3.org/issues/12909

    1. lib.powermailjs.10 {
    2. value = position: 'bottom left', offset: [0,0], message: '<div></div>',errorClass: 'powermail-field-error'
    3. }
    4. [userFunc = user_powermailOnCurrentPage] && [userFunc = user_powermailCheckT3jquery(false)]
    5. page.jsFooterInline.10 < lib.powermailjs
    6. [end]
    7.  
    8. [userFunc = user_powermailOnCurrentPage] && [userFunc = user_powermailCheckT3jquery(true)]
    9. page.31320.40.jsdata.cObject < lib.powermailjs
    10. [end]?

    1. .powermail-field-error {
    2. border: 1px solid red;
    3. margin-bottom:20px;
    4. }

    Grüsse, Heinz

  • nexuss nexuss
    R2-D2
    0 x
    80 Beiträge
    0 Hilfreiche Beiträge
    13. 06. 2011, 19:58

    Hallo Leute,
    mit dem Code von Heinz habe ich es ausprobiert. Die Position lässt sich dadurch ändern, aber ... .

    Die DIV-Boxen der Errors befinden sich ausserhalb der jeweiligen powermail-DIV-Box, also direkt im Body ganz unten. Dadurch lässt sich garnicht oder nur eingeschränkt eine optimale Position bestimmen. Das war, wie "paxoptimusprime" schon andeutete, in der Version < 1.6 besser und sauberer gelöst.

    Außerdem funktioniert die Validierung im IE7 nicht mehr, zumindest bei mir.

    Ich war insgesamt mit der Version <1.6 zufriedener.

    Aber, vielleicht bekommen wir diese Probleme auch noch in den Griff. Je schneller desto besser, denn Powermail ist sonst echt geil und wird viel benutzt.

    Für Feedback schonmal danke.

    Nette Grüße
    Tom

  • fraenzer fraenzer
    R2-D2
    0 x
    117 Beiträge
    0 Hilfreiche Beiträge
    30. 06. 2011, 11:21

    Hi,

    wenn ich den Code von Heinz anwenden, kann ich ja zusätzlich zu der position noch mit dem Offset spielen. Allerdings fehlt mir das schicke Dreieck, welches auf das jeweilge Inputfeld zeigt. Der <em>-Tag ist im Quellcode nac hder Modifikation gar nicht mehr vorhanden. Gibt´s da was, was zu machen wäre?

    Vielen Dank schonmal!

    Gruß

    fraenzer

  • 1