On Thu, Aug 30, 2012 at 9:32 AM, Vincent Massol <[email protected]> wrote: > > On Aug 29, 2012, at 11:26 AM, Marius Dumitru Florea > <[email protected]> wrote: > >> Sorry, wrong key combination.. >> >> On Wed, Aug 29, 2012 at 12:22 PM, Marius Dumitru Florea >> <[email protected]> wrote: >>> Hi devs, >>> >>> I need to have some Velocity macros in the file system because one use >>> case where I need them is when the database is empty. So I put them in >>> a new Velocity template file under /templates folder. I didn't want to >>> add them to macros.vm because they are very specific and not used very >>> often. Plus, I don't like the idea of putting all the macros in one >>> single file. > > It's more than that. Putting them in macros.vm make them global velocimacros, > i.e. macros registered globally in the Velocity Engine when it starts. > >>> I then tried to include these macros in my other template and some >>> wiki page using #template. It didn't work. Surprisingly, when I >>> attached the template with the macros to the skin it worked. >>> >>> By looking at the code I noticed that #template calls >>> XWiki#evaluateTemplate which (if I understood correctly) registers the >>> Velocity macros under >>> * '' (global) namespace if the template is part of a skin >>> * template name namespace if the template is not part of the skin. >>> >>> Both seem wrong: >> >> * in the first case, once you include the template the Velocity macros >> become available globally, for the entire farm, even with a different >> skin >> * in the second case, the Velocity macros are not visible in the >> including template/wiki page >> >> Since this cod is pretty old it's quite tricky to fix. Thomas >> suggested to use instead of '' and template name the current namespace >
> Can you remind me what is the current namespace? Afaics, it's either the name of a Velocity template or the string serialization of a document reference. > >> so that #template behaves like a real include (e.g. like the include >> macro). >> >> WDYT? > > Looks ok but needs a lot of testing to ensure nothing gets broken. > > BTW my proposal to use the Rendering engine to parse template files should > solve this issue as well :) I think you still need to make sure the Velocity macros are registered on the same namespace. Thanks, Marius > > Thanks > -Vincent > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

