Formulare: HTML 5?

Dieser Bereich dient dazu, neue Features zu diskutieren und für die Entwicklung zu dokumentieren. // This area is dedicated to new features including proposals and documentation.
Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: Formulare: HTML 5?

Beitrag von dr.e. » 14.05.2011, 12:24:48

Hallo ihr beiden,

der Objekt-Baum und der Page-Controller sind theoretisch komplett transparent hinsichtlich der Formatierung der Ausgabe. Fakt ist jedoch - insbesondere bei den Formularen -, dass die Ausgabe schon komplett auf XHTML zugeschnitten ist. Ebenfalls werden nicht alle Elemente eines Templates in einem Objekt-Baum repräsentiert, wie das ein Browser tut. Das wäre - wie breits angemerkt - Performance-technischer Wahnsinn und geht auch am Konzept vorbei. Das APF repräsentiert also nur das, was für das Framework auch Relevanz hat in eigenen Baum-Strukturen.

Möchte man nun auf ein anderes Ausgabe-Format setzen, müssen die vorhandenen Taglibs (diese generieren zusammen mit den Controllern das Ausgabe-Format) ausgetauscht werden. Das klappt aber nur, wenn der Input des APF weiter "namespaced" Xml-Tags sind. Ansonsten müsste auch der Parser ausgetauscht werden, was deutlich aufwändiger ist und am Konzept des APF etwas vorbei geht.

Was das Menü-Beispiel angeht, so kann auch heute schon ein Menü aus Taglibs erzeugt werden - statisch im Template oder dynamisch in einem Controller. Die Transformation erledigt dann ebenfalls der Page-Controller zusammen mit den Taglibs. Wie die Taglibs dann aussehen ist für das Konzept des APF zweitrangig.

Was die Adressierung im Baum angeht, so müsste sich das Baum-Konzept nochmal ändern und IDs als Bookmarks während des Aufbaus in einer flachen Struktur speichern, damit ein späterer Zugriff möglich ist. Das könnt man auf Basis der Page erledigen und in jedem Knoten nochmal eine Referenz auf diese ablegen. Kein allzugroßer Aufwand, allerdings nicht ungefährlich, da es den Baum und damit die Speicherstruktur nochmal verkompliziert. Ein var_dump() wird dann noch unleserlicher. :D

Um die Diskussion zu einem Ziel zu führen: ich persönlich würde versuchen, die bekannten Tags so zu gestalten, dass sie entwede beides können (XHTML & HTML5) oder eigene Tags anbieten, die das ermöglichen. Eine komplette Abstraktion scheint mir zu viel Code zu sein...
Viele Grüße,
Christian

Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: Formulare: HTML 5?

Beitrag von MrNiceGuy » 16.05.2011, 08:33:34

Dass es bereits jetzt möglich ist verschiedene Ausgaben zu erstellen ist mir ja auch schon klar, aber es ist halt sehr aufwändig. Ich würde auch nicht auf die XML-Eingabe für das APF verzichten wollen, sondern lediglich grundlegend bereits eine abstrakte DOM-Struktur nutzen wollen, um dann über Ausgabe-Treiber ein entsprechendes Format zu generieren. Dann bräuchte man nämlich in den APF-Elementen keine Bindung mehr an bestimmte Formate machen, da im Ausgabe-Treiber definiert ist, welche Elemente wie dargestellt werden. Dass dabei nicht jedes <b>-Tag ein Node werden muss sehe ich vollkommen ein, da wäre dann sicher eine alternative Lösung einfacher/schöner. Aber wenn das nicht gewünscht ist, dann muss ich da wohl mit leben.
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: Formulare: HTML 5?

Beitrag von dr.e. » 16.05.2011, 09:12:38

Halo Lutz,

es ging mir weniger um "nicht gewünscht", sondern um aufzuzeigen, was möglich ist und vor allem wie. Technisch gesehen ist der Page-Controller dazu in der Lage, allerdings sind konzeptuell Eingabe und Ausgabe in einer Taglib erbundled und es gibt keine Trennung zwischen Eingabe-Verarbeitung und Erzeugung der Ausgabe. Sofern du dafür nun jeweils eigene Taglibs schreibst ist das kein Thema, du kannst allerdings nicht einfach einen anderen "Ausgabe-Treiber" für die selbe Eingabe registrieren.
Viele Grüße,
Christian

Benutzeravatar
MrNiceGuy
Beiträge: 749
Registriert: 03.02.2009, 16:49:42
Wohnort: Nienburg / Weser

Re: Formulare: HTML 5?

Beitrag von MrNiceGuy » 16.05.2011, 10:03:31

Deswegen müsste es ja auch ein refactoring im APF-Kern geben, damit man eben einen generischen DOM-Aufbau hat. Ähnlich wie beim ConfigurationManager würde dann der Objekt-Baum am Ende übergeben, um aus den generischen Objekten mittels des Ausgabe-Treibers entsprechende Elemente des Ausgabeformats zu machen. Wichtig ist eigentlich "nur" bei jedem Treiber einen Fallback als Ausgabe zu haben, damit bei undefinierten Node-Elementen trotzdem in irgendeiner Form eine Ausgabe erfolgt.

Grundsätzlich muss sich hierfür die "Eingabe" in Form von Templates nicht großartig ändern, da dies als Einlese-Basis ja durchaus weiter verwendet werden kann, es gäbe eben "nur" eine Änderung in der Weiterverarbeitung nach dem Parsen, weil hier das DOM-Objekt dann etwas anders aufgebaut sein würde (eben mit den entsprechenden Node-Elementen). Ansich sollte das kein großes Problem sein, einziges was ich nicht abschätzen kann wäre die Verarbeitungs-Zeit, aber dynamischer wäre es allemal - und das Funktionsprinzip gibt es ja eben beim ConfigurationManager auch schon, die Konfigurations-Struktur ist generisch und wird über den jeweiligen Treiber anhand der Dateiendung entweder in eine ini-Datei, MySQL-Datenbank oder sonstwohin gespeichert - mit allen "Eigenheiten" der jeweilig verwendeten Technik. Dann sollte das doch mit der Ausgabe auch gehen!?
There are only 10 Types of people in the world:
Those who understand binary and those who don't.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: Formulare: HTML 5?

Beitrag von dr.e. » 16.05.2011, 17:21:21

Darüber könnte man definitiv mal nachdenken ...
Viele Grüße,
Christian

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Well » 26.07.2011, 14:03:24

Damit das Thema nicht stirbt: Ich denke, für die Validatore wird es am Besten sein, für jedes neues Feld (date, datetime, time, week, url, email, ...) einen Validator mitzuliefern, der dann die, sofern vorhanden, auch die Attribute min, max und step beachtet und den Wert darauf prüft.

Problematisch wird das beim number Tag, da ein NumberValidator bereits vorhanden ist, dieser die Attribute aber nicht beachtet.
Ich würde dafür vorschlagen,
  • diesen entsprechend zu erweitern
  • die neuen Validatore mit einem Präfix zu versehen, aus dem auch deutlich wird, dass der Validator nur für dieses eine Feld gedacht ist und sich nicht, wie die anderen, auf alle Felder anwenden lässt
  • als Präfix "Html5" zu wählen und diesen Präfix dann zum Release von 2.0 zu entfernen, sofern sich HTML 5 bis dahin durchgesetzt hat
Was meint ihr?

Dann würde ich das in den nächsten Tagen umsetzen.

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Screeze » 26.07.2011, 14:19:36

Ich würde mir hier generell eine Überarbeitung wünschen.

Sinnvoller wäre es doch, wenn die entsprechenden Attribute gesetzt wurden, dass gar kein extra Validator mehr notwendig ist (jedenfalls im Formular), sondern das APF sich darum kümmert die Html5-Validatoren automatisch einzuhängen, sodass im Normalfall gar kein extra Validator mehr gebraucht wird.

Desweiteren würde ich mir eine Überarbeitung der Clientvalidatoren wünschen, sodass die Standard-Html5-Validatoren nicht extra definiert werden müssen, sondern die Clientvalidatoren prüfen ob html5 verfügbar ist, und nur wenn das nicht der Fall ist, sie, anhand der Attribute der Formularfelder sich selbst die nötigen Validatoren aktiviert, damit das als Fallback für ältere Browser verwendet wird nurnoch. (Eigene Validatoren sollten natürlich weiterhin möglich sein).

Einige neue Attribute müssen außerdem ins APF, ich habe gerade den placeholder Attribut in die whitelist aufgenommen, da ich das gebraucht habe in einem Projekt, aber wir sollten hier mal alle neuen Attribute aufnehmen.

Würde vorschlagen 1.15 widmen wir einmal größtenteils der Html5 Geschichte, um diese Vollständig zu unterstützen.

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Well » 26.07.2011, 16:33:14

Stimmt, die Validatore automatisch einzuhängen wäre definitiv praktisch.

Die neue Whitelist habe ich schon in einem älteren Beitrag zusammengestellt:
name, disabled, form, autocomplete, autofocus, list, maxlength, pattern,
readonly, required, size, placeholder, value, type, min, max, step, multiple,
formaction, formenctype, formmethod, formtarget, formnovalidate, height, width,
alt, src, type, accesskey, class, contenteditable, contextmenu, dir, draggable,
dropzone

(Ggf. kannst du die ja gleich übernehmen)

Wenn man die Clientvalidatore überarbeitet könnte man auch gleich die clientlistener um das control Attribut erweitern (zumindest als ich die Erweiterung das letzte mal verwenden wollte fehlte das Feature).

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Screeze » 26.07.2011, 16:40:31

Das control attribut haben sie, was blos fehlt ist das special-Attribut, dass sie nur auf einen bestimmten Validator hören, ich denke das meinst du oder?

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Well » 26.07.2011, 17:28:17

Stimmt, verwechselt. :)


Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: Formulare: HTML 5?

Beitrag von dr.e. » 26.07.2011, 19:43:49

Hallo zusammen,

ich sehe das Thema auch auf der Roadmap für 1.15. Was die Validatoren angeht, so ist es doch egal, ob HTML5 oder HTML4 - es geht um die Art der Validierung. Damit reicht es doch, die bisherigen Validatoren mit neuen zu kombinieren, die die unterschiedlichen Arten von Felder (z.B. date) unterstützen.
Viele Grüße,
Christian

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Screeze » 26.07.2011, 19:48:02

Was die Validatoren angeht, so ist es doch egal, ob HTML5 oder HTML4 - es geht um die Art der Validierung. Damit reicht es doch, die bisherigen Validatoren mit neuen zu kombinieren, die die unterschiedlichen Arten von Felder (z.B. date) unterstützen.
Es wäre aber ein echter Mehrwert, wenn ich bei den von HTML5 unterstützten Validatoren nicht extra noch einen Validator einfügen muss, sondern wenn das APF erkennt wenn einer notwendig ist, alleine anhand der definition für HTML5.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4533
Registriert: 04.11.2007, 16:13:53

Re: Formulare: HTML 5?

Beitrag von dr.e. » 26.07.2011, 19:49:40

Das geht doch aber gegen das Konzept der Validatoren (observer). Du bist doch auch heute schon gezwungen, einem Feld einen Validator oder Filter anzuheften. Automatisch funktioniert das nicht, denn das Anheften gehört zur konfigurativen Tätigkeit des Entwicklers. Wichtig ist doch nur, dass die Validatoren allgemeingültig abgefasst sind und dadurch wiederverwendet werden können.
Viele Grüße,
Christian

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Formulare: HTML 5?

Beitrag von Screeze » 26.07.2011, 19:54:49

Die können ja gerne auch weiterhin als observer dienen, man müsste sie nicht einmal ändern, es würde reichen eine Komponente ins Formular einzubauen, welche die controls mal kurz nach den paar html5-attributen durchcheckt, und einen entsprechenden observer anhängt.

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast