Code source wiki de DefaultWYSIWYGEditorConfig

Modifié par superadmin le 2026/01/29 15:29

Masquer les derniers auteurs
superadmin 1.1 1 {{velocity output="false"}}
2 #macro (maybeConfigureDefaultWysiwygEditor)
3 #maybeConfigureDefaultEditor('org.xwiki.rendering.syntax.SyntaxContent' 'wysiwyg')
4 #end
5
6 #macro (maybeConfigureDefaultEditor $dataType $category)
7 #set ($editorBindingClassName = 'XWiki.EditorBindingClass')
8 #if ("$!category" != '')
9 #set ($dataTypeValue = "$dataType$escapetool.h$category")
10 #else
11 #set ($dataTypeValue = $dataType)
12 #end
13 #set ($editorBindingObject = $doc.getObject($editorBindingClassName, 'dataType', $dataTypeValue))
14 #if (!$editorBindingObject)
15 #set ($editorBindingObject = $doc.newObject($editorBindingClassName))
16 #set ($discard = $editorBindingObject.set('dataType', $dataTypeValue))
17 #end
18 #set ($objectNumber = $editorBindingObject.number)
19 #set ($fieldName = "${editorBindingClassName}_${objectNumber}_roleHint")
20 #set ($defaultEditor = $request.getParameter($fieldName))
21 #if ("$!defaultEditor" == '')
22 #set ($defaultEditor = $editorBindingObject.getValue('roleHint'))
23 #end
24 #set ($editors = $services.edit.getEditors($dataType, $category))
25 #if ("$!defaultEditor" != '' || ($editors && $editors.size() > 0))
26 #configureDefaultEditor($editors $defaultEditor)
27 #end
28 #end
29
30 #macro (configureDefaultEditor $editors $defaultEditor)
31 <dt>
superadmin 3.1 32 <label for="$fieldName">
superadmin 1.1 33 #set ($key = "edit.defaultEditor.$dataTypeValue.replace('#', '.')")
superadmin 3.1 34 $services.localization.render($key)
superadmin 1.1 35 </label>
superadmin 3.1 36 <span class="xHint">$services.localization.render("${key}.hint")</span>
superadmin 1.1 37 </dt>
38 <dd>
39 ## Add the configuration object if it doesn't exist.
40 <input type="hidden" name="objectPolicy" value="updateOrCreate" />
superadmin 3.1 41 <input type="hidden" name="${editorBindingClassName}_${objectNumber}_dataType" value="$dataTypeValue" />
42 <select id="$fieldName" name="$fieldName">
superadmin 1.1 43 ## This option is needed in order to allow the user to reset the default editor and inherit the configuration from
44 ## the parent configuration source.
45 <option value="">---</option>
46 #foreach ($editor in $editors)
47 #set ($editorDescriptor = $editor.descriptor)
48 <option value="$escapetool.xml($editorDescriptor.id)" #if ($editorDescriptor.id == $defaultEditor)
49 selected="selected"#end>$escapetool.xml($editorDescriptor.name)</option>
50 #end
51 #if ("$!defaultEditor" != '' && !$services.edit.getEditor($dataType, $defaultEditor))
52 ## The configured default editor is not available any more.
53 <option value="$escapetool.xml($defaultEditor)" selected="selected">
54 $escapetool.xml($defaultEditor)
55 </option>
56 #end
57 </select>
58 </dd>
59 #end
60
61 #set ($discard = $xwiki.ssx.use('XWiki.DefaultWYSIWYGEditorConfig'))
62 #set ($discard = $xwiki.jsx.use('XWiki.DefaultWYSIWYGEditorConfig'))
63 #set ($params = {
64 'general': [{'html': "#maybeConfigureDefaultWysiwygEditor"}]
65 })
66 {{/velocity}}
67
68 {{include reference="XWiki.AdminFieldsDisplaySheet" /}}
69
70 ----
71
72 {{velocity}}
73 {{html clean="false"}}
74 <!-- The tabs used to show the configuration properties for each editor. -->
75 <ul class="nav nav-tabs" role="tablist"
superadmin 3.1 76 data-defaultEditorId="$!services.edit.syntaxContent.defaultWysiwygEditor.descriptor.id">
superadmin 1.1 77 <li role="presentation" class="hidden">
78 <a href="#tab-pane-template" aria-controls="tab-pane-template" role="tab" data-toggle="tab"></a>
79 </li>
80 </ul>
81 <div class="tab-content">
82 <div role="tabpanel" class="tab-pane hidden" id="tab-pane-template"></div>
83 </div>
84 {{/html}}
85 {{/velocity}}