Maybe that's not related, but I did this new java based panel macro some
times ago:
https://github.com/xwiki-contrib/macro-panel

--G

2012/6/14 Anca Luca <[email protected]>

> On 06/13/2012 06:09 PM, Sergiu Dumitriu wrote:
>
>> On 06/13/2012 09:17 AM, Vincent Massol wrote:
>>
>>>
>>> On Jun 13, 2012, at 2:52 PM, Anca Luca wrote:
>>>
>>>  On 06/13/2012 02:44 PM, Vincent Massol wrote:
>>>>
>>>>> On Jun 13, 2012, at 2:39 PM, Anca Luca wrote:
>>>>>
>>>>>  On 06/13/2012 01:52 PM, Raluca Stavro wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> On Wed, Jun 13, 2012 at 2:15 PM, Vincent Massol<[email protected]>
>>>>>>>   wrote:
>>>>>>>
>>>>>>>  On Jun 13, 2012, at 12:44 PM, Raluca Stavro wrote:
>>>>>>>>
>>>>>>>>  I'm resending this mail by using the right subject pattern.
>>>>>>>>>
>>>>>>>>> Hello,
>>>>>>>>>
>>>>>>>>> I am trying to upgrade an old XEM to 3.5.1.
>>>>>>>>> In this XEM there are some custom panels which have been converted
>>>>>>>>> to 2.0
>>>>>>>>> syntax and contain code like this:
>>>>>>>>>
>>>>>>>>> {{velocity}}
>>>>>>>>>  {{html}}
>>>>>>>>>    #panelheader("...")
>>>>>>>>>    ...
>>>>>>>>>    #panelfooter()
>>>>>>>>>  {{/html}}
>>>>>>>>> {{/velocity}}
>>>>>>>>>
>>>>>>>>
>> Do the panels really need the {{html}} wrapper?
>> If no, then you must remove it.
>> If yes, then you should consider rewriting them using wiki syntax only,
>> then remove the {{html}} wrapper.
>> If you can't do that, then just move the wrapper inside the
>> panelheader/footer.
>>
>> You can do that automatically with a script.
>>
>>  Because since 2.7.2 panel macros were converted to 2.0 syntax, because
>>>>>>>>> panel macros from inside macros.vm were modified by calling
>>>>>>>>> {{html}} wiki
>>>>>>>>> macro and because we can't use nested {{html}} macros without
>>>>>>>>> wiki="true"
>>>>>>>>> parameter, I don't know how to fix this issue besides modifying
>>>>>>>>> panel
>>>>>>>>>
>>>>>>>> code.
>>>>>>>>
>>>>>>>
>> I don't understand this. Are you saying that in macros.vm #panelheader
>> uses {{html}}? That's not true, the panelheader/footer macros only use wiki
>> syntax, not {{html}}. The problem isn't that nested {{html}} macros don't
>> work, but that wiki syntax doesn't work in {{html}} without wiki="true".
>>
>>  This XEM has more than 70 wikis and this I can't just modify all custom
>>>>>>>>> (converted to 2.0 syntax) panels manually.
>>>>>>>>> Is there a nice solution to this problem ?
>>>>>>>>>
>>>>>>>> Idea 1:
>>>>>>>> ======
>>>>>>>>
>>>>>>>> Add a new #panelheaderold macro in macros.vm and replace all calls
>>>>>>>> of
>>>>>>>> #panelheader to #panelheaderold in your panels (easy to do with a
>>>>>>>> XWQL
>>>>>>>> query and 3 lines of scripts).
>>>>>>>>
>>>>>>>> Slowy migrate panels to new syntax.
>>>>>>>>
>>>>>>>> Note:
>>>>>>>> =====
>>>>>>>>
>>>>>>>> Actually in the future we need to add a new {{panel}} macro,
>>>>>>>> something
>>>>>>>> like:
>>>>>>>>
>>>>>>>> {{panel style=".." title="…"}}
>>>>>>>> … content here …
>>>>>>>> {{/panel}}
>>>>>>>>
>>>>>>>> Idea 2:
>>>>>>>> ======
>>>>>>>>
>>>>>>>> Create a custom Panel wiki macro (give it a name other than
>>>>>>>> "panel"!),
>>>>>>>> search for:
>>>>>>>> {{velocity}}{{html}}#**panelheader….#panelfooter{{/**html}}{{/velocity}}
>>>>>>>> (use
>>>>>>>> a regex)
>>>>>>>>
>>>>>>>> Replace with your panel macro.
>>>>>>>>
>>>>>>>>  Should I open an issue on Jira ?
>>>>>>>>>
>>>>>>>> Nope
>>>>>>>>
>>>>>>> So this means that none of the macros in macros.vm are API?
>>>>>> Which means that there is no API to make a panel header consistent
>>>>>> with the panel headers of the default panels?
>>>>>>
>>>>> Good point. Macros in macros.vm are supposed to be APIs and it means
>>>>> we broke the backward compatibility at some point in the past (2.7 as
>>>>> suggested by Raluca).
>>>>>
>>>>
>> The macros still work for both xwiki/1.0 and xwiki/2.x panels. What
>> doesn't work is putting the whole panel content inside a {{html}} block,
>> without any wiki parsing.
>>
>> The problem was that there was a misunderstanding of the macros behavior.
>> The macros were supposed to work well in wiki syntax. Initially, that meant
>> the only xwiki syntax, which did mix HTML with the rest of the wiki and
>> velocity syntax. When new wiki syntaxes were introduced and the macros were
>> updated, the behavior remained the same: the #panelheader/footer macros
>> work well in both xwiki/1.0 and xwiki/2.x syntaxes. But pure HTML isn't
>> really a wiki syntax. The fact that for a few releases the macros worked in
>> pure HTML embedded in an xwiki/2.0 document, but not directly in a
>> xwiki/2.0 document, was a bug, not a contract. Unfortunately some
>> developers did rely on this bug.
>>
>
> I wouldn't call it a bug, because if we do so, then we can argue that it's
> a bug that has been there for at least one major cycle, and that macros.vm
> is still not stable according to 
> http://jira.xwiki.org/browse/**XWIKI-6062<http://jira.xwiki.org/browse/XWIKI-6062>so
>  we might still have "bugs" about it (and that is for about 2.5 major
> cycles, which is a bit too much from my point of view).
>
> What I would say about this is that apparently we don't know / have a
> convention about how should the macros in macros.vm be used: with syntax
> interpreted or not, in an html macro or not. This is where the confusion
> comes from: while the old panelheader macro _needed_ html macro
> (potentially with syntax activated), the current one needs _only wiki
> syntax_ (potentially in an html macro). There is a context which satisfies
> both (html macro with wiki syntax activated) but it was not documented
> anywhere, I'm not even sure it is _the rule_ for macros in macros.vm, so
> people used "what it worked", in this case a plain simple html macro whose
> wiki parameter defaults to false.
>
> The wysiwyg macros in macros.vm, for example, I would say they need to be
> called in a html macro with syntax switched off, but it's just a guess,
> looking at the code.
>
> I think we need to:
> 1/ make a decision about what is API from macros.vm
> 2/ make a decision about what _was_ API from macros.vm and keep it working
> as it used to
> 3/ document how an API macro should be used, either by having a rule or by
> at least writing in its own documentation in macros.vm what context it
> expects (note that even if we document it, if we cannot enforce it, chances
> are that people will use "what it works"...)
>
> To me, all these above are unclear and until they are, from how it feels
> to me, it's very hard to call something a bug or a backwards compatibility
> break.
>
> Thanks,
> Anca
>
>
>>  3.2 M1 https://github.com/xwiki/**xwiki-platform/commit/**
>>>> 2e4b54267b9bf4048c14fdf14b6a0a**65236aabad<https://github.com/xwiki/xwiki-platform/commit/2e4b54267b9bf4048c14fdf14b6a0a65236aabad>
>>>> http://jira.xwiki.org/browse/**XWIKI-6504<http://jira.xwiki.org/browse/XWIKI-6504>
>>>> It's interesting that the API Breakage section of the 3.2M1 release
>>>> notes says only "[TODO]" http://www.xwiki.org/xwiki/**
>>>> bin/view/ReleaseNotes/**ReleaseNotesXWikiEnterprise32M**1#HAPIBreakages<http://www.xwiki.org/xwiki/bin/view/ReleaseNotes/ReleaseNotesXWikiEnterprise32M1#HAPIBreakages>...
>>>>  :)
>>>>
>>>
>>> bad bad…
>>>
>>> Who was the RM? :)
>>>
>>> -Vincent
>>>
>>>  Anca
>>>>
>>>>
>>>>> We should probably have introduced new macros instead when we
>>>>> introduced the conversion to 2.0 syntax.
>>>>>
>>>>> Now since this is very old we need to decide what we want to do at
>>>>> this point.
>>>>>
>>>>> Thanks
>>>>> -Vincent
>>>>>
>>>>>  Thanks,
>>>>>> Anca
>>>>>>
>>>>>>  So there is no other way to fix this issue but by modifying the code
>>>>>>> inside
>>>>>>> panels.
>>>>>>> Thank you, Vincent.
>>>>>>>
>>>>>>> Raluca.
>>>>>>>
>>>>>>>
>>>>>>>  Thanks
>>>>>>>> -Vincent
>>>>>>>>
>>>>>>>
>>
>>
> ______________________________**_________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/**mailman/listinfo/devs<http://lists.xwiki.org/mailman/listinfo/devs>
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to