In your UIX definition you would have an IF putting its content only if the page is XWikiPreference with the Users section.
Thanks, Caty On Tue, Jun 28, 2016 at 1:22 PM, Guillaume Delhumeau < [email protected]> wrote: > This UIXP could be useful, but I think that it is too much for my use-case. > That would be a shame to try to display it in every page when we only need > it in a single one! > > 2016-06-28 12:05 GMT+02:00 Ecaterina Moraru (Valica) <[email protected]>: > > > Hi, > > > > I propose you a third solution: > > Implement the "Content Title - After" UIXP, see > > http://jira.xwiki.org/browse/XWIKI-13080 > > > > For your particular use case it's exactly what you need. You can use CSS > > then to make sure you display your content right floated and with the > width > > of your second administration column. > > > > The after title is a generic UIXP that could be used in multiple cases. > > > > Thanks, > > Caty > > > > On Tue, Jun 28, 2016 at 12:45 PM, Guillaume Delhumeau < > > [email protected]> wrote: > > > > > Hello developers. > > > > > > I send this e-mail because I want to talk about the concept of UIX when > > it > > > comes to inject content in a application that has already a mechanism > to > > > append content. > > > > > > Use-case: being able to inject some content in an administration page. > > > > > > Example: I would like to write an extension that display some > > informations > > > on the "users" section of the administration. > > > See the image: > > > http://jira.xwiki.org/secure/attachment/32664/32664_example.png > > > > > > Currently, the only solution that I have is to overwrite > > > XWiki.AdminUsersSheet which generate 2 problems: > > > - it's a mess to maintain when XWiki is upgraded. > > > - 2 different extensions cannot inject content in the same page (one > will > > > overwrite the other). > > > > > > Generally, we implement UI extension for this kind of problems, and > that > > > was my first intention. > > > > > > In the commit > > > > > > > > > https://github.com/xwiki/xwiki-platform/commit/374903eea354db2d25b6541f8fd7106c45fae29f#diff-0 > > > (on a branch), I've introduced a UIX point on the top of the right side > > of > > > the administration. It can display several ordered extensions. And it > can > > > be displayed in a particular section, or in all of them. > > > > > > The UI extension has the following benefits: > > > - we can easily create extensions to inject content anywhere. > > > - if the UIX is supposed to be injected in a particular section and if > > that > > > section does not actually exists (for example: if it has a part of an > > > optional application that is not installed), the UIX is simply not > > > displayed. > > > - the mechanism is already used in a lot of places and is well-known. > > > > > > But in this particular context, this solution has a drawback: it > creates > > a > > > kind of duplication with the ConfigurableClass mechanism that we use to > > > display sections in the administration ( > > > > > > > > > http://extensions.xwiki.org/xwiki/bin/view/Extension/Administration+Application#HMakingyourapplicationconfigurablewithConfigurableClass > > > ). > > > > > > So I've tried to create a ConfigurableClass object to implement my > > > use-case. However, it has several issues: > > > - if 2 XObjects define the same section in the administration, both of > > them > > > are displayed but we cannot select the order. > > > - one of the 2 xobjects is automatically added in a form, which is not > > what > > > I want. > > > > > > According to the documentation: > > > " codeToExecute is executed before the form is begun, however if you > > have > > > multiple ConfigurableClass objects in the > > > same application which are also shown in the same section of the > > > administration application (perhaps with different > > > headers) then codeToExecute of any ConfigurableClass object after > the > > > first will be executed inside of the form. " > > > > > > There is one image to show this: > > > http://jira.xwiki.org/secure/attachment/32665/32665_problems.png > > > > > > The mechanism has also the following limitations: > > > - there is no way to inject content in ALL the sections of the > > > administration. > > > - if you want to inject content in a section only if that section > exists, > > > you cannot. Because of the presence of your object, the section will be > > > displayed all the time. This is bad if you want to inject some content > in > > > an optional application that might be or not installed. > > > > > > So I'm front of 2 possible implementations: > > > - introduce the UIX anyway, with all it benefits. > > > - improve the ConfigurableClass mechanism, with special attention to > not > > > break the backward compatibility (I think about the "codeToExecute" > > > parameter). > > > > > > The first solution have my preference. Not only because it's easier to > > > implement (see my patch), but also because of its benefits. Moreover, > the > > > use-case is NOT to create a section in the administration. It is only > > about > > > INJECTING content on an existing section, and this is exactly the > purpose > > > of UIXs. > > > > > > I believe this debate exceeds this particular use-case, and that we > might > > > have the same question for any application that define some custom way > to > > > be modular. > > > > > > So I propose this rule: > > > > > > - it's OK to create a custom mechanism to *structure* a modular > > > application. > > > - it's OK to add some UIX points in it too when the goal is to be able > to > > > inject content in an existing section. > > > > > > But I find this definition quite imprecise. > > > > > > What do you think about this? > > > > > > For the record, this is the JIRA issue about this topic: > > > http://jira.xwiki.org/browse/XWIKI-13494 > > > > > > Thanks, > > > > > > -- > > > Guillaume Delhumeau ([email protected]) > > > Research & Development Engineer at XWiki SAS > > > Committer on the XWiki.org project > > > _______________________________________________ > > > devs mailing list > > > [email protected] > > > http://lists.xwiki.org/mailman/listinfo/devs > > > > > _______________________________________________ > > devs mailing list > > [email protected] > > http://lists.xwiki.org/mailman/listinfo/devs > > > > > > -- > Guillaume Delhumeau ([email protected]) > Research & Development Engineer at XWiki SAS > Committer on the XWiki.org project > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

