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
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
sur 2025/07/04 23:28
Commentaire de modification :
Install extension [org.xwiki.platform:xwiki-platform-ckeditor-ui/16.10.9]
Résumé
-
Propriétés de la Page (1 modifications, 0 ajouts, 0 suppressions)
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('&#123;&#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}}