Major Feature #2228

Default namespaces

Added by Niels Fröhling over 6 years ago. Updated almost 5 years ago.

Status:Rejected Start date:2008-11-27
Priority:Won't have this time Due date:
Assigned To:- % Done:

0%

Category:-
Target version:-
Has patch:

Description

It would very powerfull to turn on a default namespace:
A viewhelper-method like:

<f3::textarea />

Could be used to implement self-correcting and output sensitive templates:

{namespace f3=F3::Beer3::XHTML default}
<textarea />

Immediatly textarea becomes a method, can add default-attributes, like rows/cols and may even be used for complete transformation (into another language: XHTML -> PDF).

--------------------------------------------------------
As reminder of the ongoing discussion here a little log:

Ich verstehe, dass die Logik ist, dass im Falle des XML<->BEER mixes, BEER-tags immer namespace haben? Ist das nicht zu restriktiv. Wäre es nicht besser overlayed default-namespaces zu machen? Ein Beispiel:

<xform type="text" >

Im Falle, des wenn die Applikation erkennt, dass mein Browser XForms kann, wird <xform> nicht verändert (default namespace: null). Im anderen Fall wird der default namespace auf xform::iecrap gesetzt und der Tag ist als ViewHelper in iecrap implementiert, und spuckt schön HTML3 aus.

Dies impliziert natürlich sozusagen special handling für XML-basierte templates, da dieselbe Logik nicht für XYZ reicht:

\{xform type,text}

Nun kann man selbstverständlich nichts mit einem namespace-overlay und default-namespace anfangen. Allerdings halte ich die default-namespace Geschichte für sehr wichtig um switchende und overloaded ViewHelpers

Ein weiterer Aspekt ist, dass Du vielleicht Deine ViewHelper in Klassen Kategorisieren möchtest. Sagen wir mal Du erzeugst ein XHTML+XML mit embedded SVG:

{namespace xhtml=F3::Beer3::XHTML default} {namespace xft=F3::Beer3::XHTML::FireFox::Tools default overlay}
<blabla XHTML-code>
<svg> {namespace sft=F3::Beer3::SVG::FireFox::Tools default}
<blabla SVG-code>
</svg>
<blabla XHTML-code>

So, geht natürlich nicht anders als im Firefox. Deshalb switchend:

{namespace xhtml=F3::Beer3::XHTML default} {namespaceswitch
xft=F3::Beer3::XHTML::FireFox::Tools
xft=F3::Beer3::XHTML::IEcrap::Tools
default overlay}
<blabla XHTML-code der im Falle des IE in HTML verwandelt wird>
<svg> {namespaceswitch
xft=F3::Beer3::SVG::FireFox::Tools
xft=F3::Beer3::SVG::IEcrap::Tools
default}
<blabla SVG-code der im Falle des IE in VML verwandelt wird>
</svg>
<blabla XHTML-code der im Falle des IE in HTML verwandelt wird>

Das heisst ViewHelpers würden TagLibraries implementieren können.
Und damit wäreen Beer-Templates Tranformation-Fähig. Allerdings nur für XML-dialekte. Oder für Total-Transformationen.

In einfachen Worten nochmal, wenn Du default-NS hättest, und die namespace-definition weglassen könntest, könntest Du ViewHelper über HTML-Tags definieren.

Evtl. sollte man ganz einfach den Switch in den ViewHelper-constructor legen, und der liefert eine null-Klasse, oder eine korrigierende Klasse.


Related issues

related to TYPO3.Fluid - Feature #35766: add custom namespaces in settings.yaml Rejected 2012-04-07

History

#1 Updated by Sebastian Kurfuerst about 6 years ago

  • Status changed from New to Rejected
  • Priority changed from Should have to Won't have this time

We have thought about this as well, as we could use an HTML template and automatically turn the HTML form elements into fluid viewhelpers... However, this is kinda difficult, because they have many different arguments (an href doesn't make sense in a LinkViewHelper).

Greets,
Sebastian

Also available in: Atom PDF