Hi devs,

Following a discussion at http://jira.xwiki.org/browse/XWIKI-12327# I’d like to 
propose to add this new best practice in the App Guide, i.e. at 
http://platform.xwiki.org/xwiki/bin/view/DevGuide/BestPractices

Rule: Do not use Skin-specific resources in Extensions/Applications

Rationale: If you do, then your Extension/Application will only work for that 
Skin. When the default skin in XWiki is modified, your Extension/Application 
will stop to work fine.

Example: This is what happened in apps like in the Forum app which was using: 
getSkinFile(“noavatar.png”) where “noavatar.png” was a Colibri-skin resource 
only. The Forum app was broken when we moved to Flamingo and the Forum app had 
to be modified to use getSkinFile("icons/xwiki/noavatar.png”) which is better 
since it’s a global resource, thus available to all Skins (see 
https://github.com/xwiki-contrib/application-forum/commit/3d3a99e5665265607a41d8ce04f38c6ebb8c2d7a).

WDYT? Anyone disagree? I’d like to clos this topic quickly so that we can close 
XWIKI-12327.

Thanks
-Vincent

PS: Additional idea (I don’t know if it’s feasible): I wonder if we could even 
prevent getSkinFile() to return a skin-specific resource if the originating 
code is not from a resource from this Skin or if the originating code is not 
located in a Children Skin (i.e. a skin css, skin jss or skin vm). i.e. 
consider that skin-specific resources have a private access level.

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

Reply via email to