Modifications pour le document VelocityMacros

Modifié par Florent Charton le 2026/03/13 11:04

Depuis la version 4.1
modifié par Florent Charton
sur 2025/08/19 15:16
Commentaire de modification : Install extension [org.xwiki.platform:xwiki-platform-ckeditor-ui/17.4.3]
À la version 3.1
modifié par Florent Charton
sur 2025/07/04 23:28
Commentaire de modification : Install extension [org.xwiki.platform:xwiki-platform-ckeditor-ui/16.10.9]

Résumé

Détails

Propriétés de la Page
Contenu
... ... @@ -34,6 +34,11 @@
34 34   #end
35 35   #else
36 36   #set ($output = $services.wysiwyg.fromAnnotatedXHTML($text, $sourceSyntax.toIdString()))
37 + #if ("$!output" == '' && $output != '')
38 + ## $output is null, probably because $services.wysiwyg.fromAnnotatedXHTML() is not available (before 10.10RC1)
39 + #set ($xdom = $services.rendering.parse($text, 'xhtml/1.0'))
40 + #set ($output = $services.rendering.render($xdom, $sourceSyntax.toIdString()))
41 + #end
37 37   #end
38 38   #if ("$!output" != '' || $output == '')
39 39   $output##
... ... @@ -46,6 +46,19 @@
46 46  #macro (ckeditor_renderContentSheet $source)
47 47   ## The $source variable is used inside the content sheet.
48 48   #set ($output = $services.wysiwyg.render('CKEditor.ContentSheet'))
54 + #if ("$!output" == '' && $output != '')
55 + ## $output is null, probably because $services.wysiwyg.render() is not available (before 7.4.1)
56 + #set ($output = $xwiki.getDocument('CKEditor.ContentSheet').getRenderedContent())
57 + #set ($skinExtensionHooks = {
58 + 'ssx': 'CssSkinExtensionPlugin',
59 + 'ssfx': 'CssSkinFileExtensionPlugin',
60 + 'ssrx': 'CssResourceSkinExtensionPlugin'
61 + })
62 + #foreach ($entry in $skinExtensionHooks.entrySet())
63 + #set ($output = $output.replace("<!-- com.xpn.xwiki.plugin.skinx.$entry.value -->",
64 + $xwiki.get($entry.key).importString))
65 + #end
66 + #end
49 49   ## Unescape {{ which happened in CKEditor.ContentSheet for protecting the {{html}} macro.
50 50   $!output.replace('&amp;#123;&amp;#123;', '{{')##
51 51  #end
... ... @@ -54,11 +54,25 @@
54 54   ## Make sure the edited content is rendered for view because this is a WYSIWYG editor.
55 55   #set ($macro.previousDisplayMode = $xcontext.displayMode)
56 56   #set ($discard = $xcontext.setDisplayMode('view'))
75 + #if ($xcontext.displayMode != 'view')
76 + ## Before XWiki 14.0-rc-1, 13.4.7, 13.10.3 and 12.10.12 there's no API to get the current display mode so we can't
77 + ## restore the previous display mode properly. We assume the previous display mode is 'edit' because the WYSIWYG
78 + ## editor is used.
79 + #set ($macro.previousDisplayMode = 'edit')
80 + #end
57 57   #set ($restricted = "$!source.restricted" == 'true')
58 58   #if ($source.html)
59 59   #set ($html = $services.wysiwyg.parseAndRender($source.html, $source.syntax, $source.documentReference, $restricted))
84 + #if ("$!html" == '' && $html != '')
85 + ## Before XWiki 11.9RC1 (see XWIKI-16737)
86 + #set ($html = $services.wysiwyg.parseAndRender($source.html, $source.syntax.toIdString()))
87 + #end
60 60   #else
61 61   #set ($html = $services.wysiwyg.toAnnotatedXHTML($source.content, $source.syntax, $source.documentReference, $restricted))
90 + #if ("$!html" == '' && $html != '')
91 + ## Before XWiki 11.9RC1 (see XWIKI-16737)
92 + #set ($html = $services.wysiwyg.toAnnotatedXHTML($source.content, $source.syntax.toIdString()))
93 + #end
62 62   #end
63 63   #if ("$!html" == '')
64 64   ## Prevent Firefox from inserting bogus whitespace when the text area is empty.
... ... @@ -199,6 +199,10 @@
199 199  
200 200  #macro (ckeditor_initRequiredSkinExtensions)
201 201   #set ($requiredSkinExtensions = $collectiontool.orderedMap)
234 + #if ("$!requiredSkinExtensions" == '')
235 + ## For XWiki versions older than 12.1RC1 fallback on the old $collectionstool (available since 4.0M1).
236 + #set ($requiredSkinExtensions = $collectionstool.orderedMap)
237 + #end
202 202   ## Save the import string for each skin extension plugin in order to be able to remove the always used extensions
203 203   ## (they are aready available on the edit page so there's no need to load them).
204 204   #foreach ($pluginName in ['ssrx', 'ssfx', 'ssx', 'linkx', 'jsrx', 'jsfx', 'jsx'])
... ... @@ -213,4 +213,20 @@
213 213   $!stringtool.removeStart($importString, $entry.value).trim()##
214 214   #end
215 215  #end
252 +
253 +#macro (ckeditor_defineSortTool $sortToolVariable)
254 + #set ($checkedExtension = "org.xwiki.commons:xwiki-commons-velocity")
255 + ## Because of an API collision, $collectionstool has been replaced by $collectiontool in XCOMMONS-1861
256 + #if ($services.extension.core.getCoreExtension($checkedExtension).id.version.compareTo("12.1-SNAPSHOT") >= 0)
257 + #setVariable ($sortToolVariable, $collectiontool)
258 + ## With the upgrade of Velocity $sorttool has been replaced by $collectionstool (XCOMMONS-1296)
259 + #elseif ($services.extension.core.getCoreExtension($checkedExtension).id.version.compareTo("12.0-SNAPSHOT") >= 0)
260 + #setVariable ($sortToolVariable, $collectionstool)
261 + ## Old API for sorting was $sorttool
262 + #else
263 + #setVariable ($sortToolVariable, $sorttool)
264 + #end
265 +#end
266 +
267 +#ckeditor_defineSortTool("$resolvedSortTool")
216 216  {{/velocity}}