Hi,

in 4.x we introduced UI Extensions (UIX) and "Extension Points", it
allows applications to come and plug their bits of UI where it is
possible [1]. 5.x is a good time to provide a list of useful Extension
Points (UIXP) in our velocity templates, allowing applications to plug
themselves in, for example : the header, before the content, the
footer, etc.

To allow this I can think of 2 strategies:

== 1) Manually add UIXPs ==

Actions:

* Discuss where are the common places where applications would like to
plug (in our opinion)
* Make a lengthy list
* Vote it
* Introduce an API call (services.uix.getExtensions()) for each item in the list
* Commit it

Pros:

* We can carefully build the UI API

Cons:

* We can't think of everything
* Long process
* Overridden templates won't display the extensions

== 2) Instrument our templating mechanism with UIXPs ==

Actions:

* Modify the #template macro so that it create UIXPs before and after
the parseTemplate call. Calling #template.vm would create the
following UIXP:
** platform.template.global.before (or:
platform.template.global.above, platform.template.global.top)
** platform.template.global.after (or: platform.template.global.below,
platform.template.global.bottom)
* Commit it

Pros:

* A lot of available UIXPs
* We've worked on our template architecture for a long time, UIXP
would benefit from that
* Quick process

Cons:

* It'd make our current template architecture an API ... but since
templates can be overridden in skins, it already is one.
* A lot of API calls (but tests with YourKit shows that it doesn't
impact performance)

Note:

2) doesn't exclude 1), we'd probably still need to introduce UIXP
within templates, but we'd have way less UIX API calls with this
method.

WDYT ?

I guess it's quite obvious that my opinion is biased, I've started
playing with 2) and it's quite cool :)

[1] http://extensions.xwiki.org/xwiki/bin/view/Extension/UIExtension+Module

Thanks,
JV.
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to