Wiki source code of Developer Guide

Last modified by Manuel Leduc on 2024/01/22

Hide last authors
Ecaterina Moraru (Valica) 39.2 1 {{velocity output="false"}}
Vincent Massol 39.14 2 $xwiki.ssx.use('Documentation.WebHome')
Ecaterina Moraru (Valica) 39.2 3 {{/velocity}}
Vincent Massol 1.1 4
Ecaterina Moraru (Valica) 39.2 5 (% class="row cards" %)
6 (((
7 (% class="col-xs-12 col-sm-6 col-md-4 cards-container" %)
8 (((
9 (% class="card card1" %)
10 (((
11 (% class="card-body" %)
12 (((
Vincent Massol 57.2 13 ==== (% class="card-title" %)[[Scripting API Guide>>Documentation.DevGuide.Scripting.APIGuide.WebHome]](%%) ====
Ecaterina Moraru (Valica) 39.20 14
15 (% class="card-text" %)
16 (((
Vincent Massol 57.3 17 Guide that show how to use important XWiki APIs from a script.
Ecaterina Moraru (Valica) 39.16 18 )))
Ecaterina Moraru (Valica) 39.2 19 )))
20 )))
21 )))
Vincent Massol 2.1 22
Ecaterina Moraru (Valica) 39.2 23 (% class="col-xs-12 col-sm-6 col-md-4 cards-container" %)
24 (((
25 (% class="card card1" %)
26 (((
27 (% class="card-body" %)
28 (((
Vincent Massol 54.1 29 ==== (% class="card-title" %)[[API Reference>>Documentation.DevGuide.API.WebHome]](%%) ====
Ecaterina Moraru (Valica) 39.20 30
31 (% class="card-text" %)
32 (((
33 The API is available as a JavaDoc. It presents the objects and properties that you can access with scripting.
Ecaterina Moraru (Valica) 39.16 34 )))
Ecaterina Moraru (Valica) 39.2 35 )))
36 )))
37 )))
Vincent Massol 1.1 38
Ecaterina Moraru (Valica) 39.2 39 (% class="col-xs-12 col-sm-6 col-md-4 cards-container" %)
40 (((
41 (% class="card card1" %)
42 (((
43 (% class="card-body" %)
44 (((
Vincent Massol 46.1 45 ==== (% class="card-title" %)[[Scripting>>Documentation.DevGuide.Scripting.WebHome]](%%) ====
Ecaterina Moraru (Valica) 39.20 46
47 (% class="card-text" %)
48 (((
49 Classes and Scripting will allow you to create basic to complex web applications at the XWiki document layer without the need for compiling code or deploying software components.
Ecaterina Moraru (Valica) 39.16 50 )))
Ecaterina Moraru (Valica) 39.2 51 )))
52 )))
53 )))
54 )))
Ludovic Dubost 28.1 55
Ecaterina Moraru (Valica) 39.2 56 == Reference ==
Vincent Massol 30.1 57
Vincent Massol 19.1 58
Ecaterina Moraru (Valica) 39.2 59 (% class="row cards" %)
60 (((
61 (% class="col-xs-12 col-sm-6 col-md-4 cards-container" %)
62 (((
63 (% class="card card2" %)
64 (((
65 (% class="card-body" %)
66 (((
Vincent Massol 50.1 67 ===== (% class="card-title" %)[[Architecture>>Documentation.DevGuide.Architecture.WebHome]](%%) =====
Ecaterina Moraru (Valica) 39.20 68
69 (% class="card-subtitle mb-2" %)
70 (((
71 ====== Understanding how XWiki is architected and how to extend it. ======
Ecaterina Moraru (Valica) 39.16 72 )))
Ecaterina Moraru (Valica) 39.2 73 )))
74 )))
75 )))
Vincent Massol 19.1 76
Ecaterina Moraru (Valica) 39.2 77 (% class="col-xs-12 col-sm-6 col-md-4 cards-container" %)
78 (((
79 (% class="card card2" %)
80 (((
81 (% class="card-body" %)
82 (((
Ecaterina Moraru (Valica) 42.3 83 ===== (% class="card-title" %)[[Data Model>>Documentation.DevGuide.DataModel]](%%) =====
Ecaterina Moraru (Valica) 39.20 84
85 (% class="card-subtitle mb-2" %)
86 (((
87 ====== Describes XWiki's data model of Classes, Properties, and Objects. They'll be needed to build applications at the presentation (document) level. ======
Ecaterina Moraru (Valica) 39.16 88 )))
Ecaterina Moraru (Valica) 39.2 89 )))
90 )))
91 )))
Vincent Massol 19.1 92
Ecaterina Moraru (Valica) 39.2 93 (% class="col-xs-12 col-sm-6 col-md-4 cards-container" %)
94 (((
95 (% class="card card2" %)
96 (((
97 (% class="card-body" %)
98 (((
Ecaterina Moraru (Valica) 42.3 99 ===== (% class="card-title" %)[[Database Schema>>Documentation.DevGuide.DatabaseSchema]](%%) =====
Ecaterina Moraru (Valica) 39.20 100
101 (% class="card-subtitle mb-2" %)
102 (((
103 ====== For advanced users who like to know everything, check out the database tables created by XWiki. ======
Ecaterina Moraru (Valica) 39.16 104 )))
Ecaterina Moraru (Valica) 39.2 105 )))
106 )))
107 )))
108 )))
Vincent Massol 19.1 109
Ecaterina Moraru (Valica) 39.2 110 ----
Vincent Massol 24.1 111
Ecaterina Moraru (Valica) 39.2 112 {{box cssClass="floatinginfobox col-xs-4"}}
gcoquard 60.1 113 If you are interested in participating to the XWiki project development itself or in building it from sources, you should refer to the [[Community wiki>>dev:Main.WebHome]].
114 You still have a question?
Vincent Massol 39.22 115 [[Post on the forum!>>dev:Community.Discuss]]
Ecaterina Moraru (Valica) 39.2 116 {{/box}}
117
Ecaterina Moraru (Valica) 42.3 118 ; **[[Front-end Resources>>Documentation.DevGuide.FrontendResources]]**
Ecaterina Moraru (Valica) 39.20 119 : A description of the tools and frameworks used in XWiki. You'll find information about how you can use external libraries such asYUI and SmartClient and internal XWiki libraries for your the development of your in-wiki applications or for the development of XWiki products themselves. You'll also find the documentation of StyleSheet resources created specifically for the XWiki project.
Vincent Massol 19.1 120
Simon Urli 64.3 121 ; **[[Extension Points List>>xwiki:Documentation.DevGuide.ExtensionPoint.WebHome]]**
Ecaterina Moraru (Valica) 39.2 122 : List all available Extension Points.
Vincent Massol 14.1 123
Vincent Massol 53.1 124 ; **[[Saving Data>>Documentation.DevGuide.Tutorials.SavingData.WebHome]]**
Vincent Massol 19.1 125 : Description of all the possibilities you have to save Data from within the XWiki Platform
126
Vincent Massol 52.1 127 ; **[[URL Architecture>>Documentation.DevGuide.Architecture.URL Architecture.WebHome]]**
Vincent Massol 51.1 128 : Explains how XWiki URLs work, the format of the [[Standard URL Scheme>>Documentation.DevGuide.Architecture.URL Architecture.Standard URL Format.WebHome]] and how to configure them.
Vincent Massol 31.1 129
Vincent Massol 39.21 130 ; **[[Module Reference>>extensions:Main.WebHome]]**
Ecaterina Moraru (Valica) 39.2 131 : Reference documentation for the various Modules of XWiki.
Vincent Massol 14.1 132
Ecaterina Moraru (Valica) 39.2 133 (% class="row cards" %)
134 (((
gcoquard 60.1 135
Ecaterina Moraru (Valica) 39.2 136 )))
Vincent Massol 25.2 137
Ecaterina Moraru (Valica) 42.6 138 == Tutorials & Guides ==
Vincent Massol 25.2 139
140
Ecaterina Moraru (Valica) 39.2 141 (% class="row cards" %)
142 (((
143 (% class="col-xs-12 col-sm-6 col-md-4 cards-container" %)
144 (((
145 (% class="card card2" %)
146 (((
147 (% class="card-body" %)
148 (((
Vincent Massol 40.1 149 ===== (% class="card-title" %)[[Creating a FAQ application>>Documentation.DevGuide.Tutorials.FAQTutorial.WebHome]](%%) =====
Ecaterina Moraru (Valica) 39.20 150
151 (% class="card-subtitle mb-2" %)
152 (((
153 ====== Demonstrates how to create a FAQ application, either using Classes/Objects/Sheets/Templates and Scripting or using the App Within Minutes. Completing this tutorial is a recommended prerequisite for anyone who wants to build custom applications on the XWiki engine at the document or presentation layer. ======
Ecaterina Moraru (Valica) 39.16 154 )))
Ecaterina Moraru (Valica) 39.2 155 )))
156 )))
157 )))
Vincent Massol 25.2 158
Ecaterina Moraru (Valica) 39.2 159 (% class="col-xs-12 col-sm-6 col-md-4 cards-container" %)
160 (((
161 (% class="card card2" %)
162 (((
163 (% class="card-body" %)
164 (((
Manuel Leduc 65.2 165 ===== (% class="card-title" %)[[Skin Extensions>>Documentation.DevGuide.Tutorials.SkinExtensionsTutorial.WebHome]](%%) =====
Ecaterina Moraru (Valica) 39.20 166
167 (% class="card-subtitle mb-2" %)
168 (((
Thomas Mortagne 65.1 169 ====== Illustrates XWiki's [[Skin extensions>>Documentation.UserGuide.Features.Skins||anchor="HSkinsExtensions"]] mechanism that allows developers to pull extra Javascript and StyleSheet files on demand or for all wiki pages without modifying the wiki templates and skin. Creation minimal Stylesheet and Javascript extensions, and continue with a complete example of a real-world extension. ======
Ecaterina Moraru (Valica) 39.16 170 )))
Ecaterina Moraru (Valica) 39.2 171 )))
172 )))
173 )))
Vincent Massol 25.2 174
Ecaterina Moraru (Valica) 39.2 175 (% class="col-xs-12 col-sm-6 col-md-4 cards-container" %)
176 (((
177 (% class="card card2" %)
178 (((
179 (% class="card-body" %)
180 (((
Manuel Leduc 65.2 181 ===== (% class="card-title" %)[[Creating an XWiki Component>>Documentation.DevGuide.WritingComponents]](%%) =====
Ecaterina Moraru (Valica) 42.7 182
183 (% class="card-subtitle mb-2" %)
184 (((
Ecaterina Moraru (Valica) 42.9 185 ====== Getting started with the new XWiki components architecture: introduction to this new design, a step-by-step guide to writing an XWiki component (the recommended way of creating XWiki plugins) and some guidelines and development good practices in this area. ======
Ecaterina Moraru (Valica) 42.7 186 )))
187 )))
188 )))
189 )))
Ecaterina Moraru (Valica) 42.8 190 )))
Ecaterina Moraru (Valica) 42.7 191
Ecaterina Moraru (Valica) 42.8 192 (% class="row cards" %)
193 (((
Ecaterina Moraru (Valica) 42.7 194 (% class="col-xs-12 col-sm-6 col-md-4 cards-container" %)
195 (((
196 (% class="card card2" %)
197 (((
198 (% class="card-body" %)
199 (((
Ecaterina Moraru (Valica) 42.9 200 ===== (% class="card-title" %)[[Creating Rendering Macros>>Documentation.DevGuide.WritingMacros]](%%) =====
Ecaterina Moraru (Valica) 39.20 201
202 (% class="card-subtitle mb-2" %)
203 (((
Ecaterina Moraru (Valica) 42.12 204 ====== How to develop XWiki Rendering macros (available in XWiki Syntax 2.0+ only). ======
Ecaterina Moraru (Valica) 39.16 205 )))
Ecaterina Moraru (Valica) 39.2 206 )))
207 )))
208 )))
Ecaterina Moraru (Valica) 42.7 209
210 (% class="col-xs-12 col-sm-6 col-md-4 cards-container" %)
211 (((
212 (% class="card card2" %)
213 (((
214 (% class="card-body" %)
215 (((
Ecaterina Moraru (Valica) 42.9 216 ===== (% class="card-title" %)[[Creating an Extension>>Documentation.DevGuide.Tutorials.CreatingExtensions.WebHome]](%%) =====
Ecaterina Moraru (Valica) 42.7 217
218 (% class="card-subtitle mb-2" %)
219 (((
Ecaterina Moraru (Valica) 42.12 220 ====== Explains how to create an XWiki Extension. ======
Ecaterina Moraru (Valica) 39.20 221 )))
Ecaterina Moraru (Valica) 42.7 222 )))
223 )))
224 )))
Ecaterina Moraru (Valica) 39.2 225
Ecaterina Moraru (Valica) 42.7 226 (% class="col-xs-12 col-sm-6 col-md-4 cards-container" %)
227 (((
228 (% class="card card2" %)
229 (((
230 (% class="card-body" %)
231 (((
Manuel Leduc 65.2 232 ===== (% class="card-title" %)[[Creating a Groovy Class>>Documentation.DevGuide.GroovyClassHelloWorldTutorial]](%%) =====
Ecaterina Moraru (Valica) 42.7 233
234 (% class="card-subtitle mb-2" %)
235 (((
236 ====== Demonstrates how to put Groovy code in one page and then reuse it by importing it from another page. ======
237 )))
238 )))
239 )))
240 )))
241 )))
242
Ecaterina Moraru (Valica) 39.2 243 ----
244
Ecaterina Moraru (Valica) 42.13 245 ; **[[Creating New XClass Property Types>>Documentation.DevGuide.CreatingNewXClassPropertyTypes]]**
Simon Urli 64.3 246 : See how you can easily extend the [[class editor>>xwiki:Documentation.UserGuide.Features.PageEditing||anchor="HClasseseditingmode"]] with new custom property types.
Ecaterina Moraru (Valica) 42.13 247
Ecaterina Moraru (Valica) 42.11 248 ; **[[Creating and using UI Extension Points>>doc:Documentation.DevGuide.Tutorials.UIXTutorial.WebHome]]**
249 : UI Extension Points are ways to modify the UI without having to write a full skin. Learn how to create new Extension Points and how to use existing ones.
250
Ecaterina Moraru (Valica) 42.3 251 ; **[[Creating a form with validation and tooltips>>Documentation.DevGuide.Creating a form with validation and tooltips]]**
Silvia Macovei 17.1 252 : Quick and efficient tutorial to set-up validation using regular expression and groovy scripts, as well as tooltips
Vincent Massol 25.2 253
Ecaterina Moraru (Valica) 42.3 254 ; **[[Creating a Tree View>>Documentation.DevGuide.CreatingATreeView]]**
Ecaterina Moraru (Valica) 39.2 255 : A tutorial on how to create a tree view for any tree structure you may have in XWiki, using the [[Tree Macro>>extensions:Extension.Tree Macro]].
Vincent Massol 25.2 256
Ecaterina Moraru (Valica) 42.3 257 ; **[[Creating a custom SOLR search for an AppWithinMinutes application>>Documentation.DevGuide.WritingCustomSolrSearchForAWM]]**
Ecaterina Moraru (Valica) 39.8 258 : Tutorial to show how to write a customized SOLR search screen in XWiki for an [[AWM application>>extensions:Extension.App Within Minutes Application]]. For this example we have used the [[Expense Report application>>https://github.com/xwiki-contrib/application-expensereport]].
Ecaterina Moraru (Valica) 39.2 259
Ecaterina Moraru (Valica) 42.3 260 ; **[[Creating a Master-Detail view>>Documentation.DevGuide.MasterDetailTutorial]]**
Ecaterina Moraru (Valica) 39.2 261 : Shows how to implement a Master-Details view
262
Ecaterina Moraru (Valica) 42.3 263 ; **[[Creating an Event Listener>>Documentation.DevGuide.WritingEventListenerTutorial]]**
Ecaterina Moraru (Valica) 39.2 264 : Explains how to write an [[Event Listener>>extensions:Extension.Observation Module]] in order to perform some action when an event happens in the wiki. Examples of events are Document changed, Object modified, and more.
265
Ecaterina Moraru (Valica) 42.3 266 ; **[[Creating a Plugin>>Documentation.DevGuide.CreatingPlugins]]**
Ecaterina Moraru (Valica) 39.2 267 : After you've learnt how to write applications at the document level you may want to go further and program plugins in Java to extend XWiki's view engine, as well as add hooks into different parts of the core engine.
268
gcoquard 62.1 269 ; **[[Creating a Custom Authenticator>>doc:.Tutorials.Create a Custom Authenticator.WebHome]]**
gcoquard 60.1 270 : You can now dive deeper in XWiki's core and create your own custom authenticator.
271
Ecaterina Moraru (Valica) 42.3 272 ; **[[How to use Velocity in wiki pages>>Documentation.DevGuide.XWikiVelocityTraining]]**
Ecaterina Moraru (Valica) 39.2 273 : A presentation that explains how to write applications in XWiki (using Velocity, the XWiki Class system, and the API...).
274
Vincent Massol 44.1 275 ; **[[Internationalizing Applications>>Documentation.DevGuide.Tutorials.InternationalizingApplications.WebHome]]**
Silvia Macovei 17.1 276 : Learn how to write internationalized applications.
Vincent Massol 25.2 277
Vincent Massol 57.1 278 ; **[[Custom Mapping>>Documentation.DevGuide.Tutorials.CustomMapping.WebHome]]**
Vincent Massol 18.2 279 : Learn how to use Custom Mapping when you need to map XWiki Classes to your own database tables or when you need extra performance for complex data.
Vincent Massol 25.2 280
Ecaterina Moraru (Valica) 42.3 281 ; **[[Integrating JavaScript Libraries>>Documentation.DevGuide.IntegratingJavaScriptLibraries]]**
Marius Dumitru Florea 35.1 282 : A tutorial on how we can use [[WebJars>>extensions:Extension.WebJars Integration]] and [[RequireJS>>http://requirejs.org/]] to integrate JavaScript libraries in XWiki. Moreover, you'll see how you can package your own JavaScript code as a WebJar in order to benefit from various code quality tools (static code analysis with [[jshint>>http://jshint.com/]], integration testing with [[Jasmine>>http://jasmine.github.io/]]).
283
Vincent Massol 43.1 284 ; **[[Performing Asynchronous Tasks>>Documentation.DevGuide.Tutorials.PerformingAsynchronousTasks.WebHome]]**
Marius Dumitru Florea 33.1 285 : A tutorial on how to perform long-running and expensive operations in XWiki from a background thread using the [[Job Module>>extensions:Extension.Job Module]].
286
Ecaterina Moraru (Valica) 39.2 287 ; **[[AJAX and JSON calls>>snippets:Extension.AJAX example]]**
288 : How to perform AJAX calls, retrieve JSON results from a Velocity page and to update your application's UI.
Marius Dumitru Florea 34.1 289
Vincent Massol 64.2 290 ; **[[In-place editing for object properties>>Documentation.DevGuide.Tutorials.In-place edit for object properties.WebHome]]**
291 : Demonstrates how to set up in-place editing for object properties.
292
Vincent Massol 64.1 293 ; **[[Best Practices>>Documentation.DevGuide.BestPractices.WebHome]]**
294 : A set of best practices for developing applications with XWiki.
Vincent Massol 1.1 295
Ecaterina Moraru (Valica) 39.2 296 (% class="row cards" %)
297 (((
gcoquard 60.1 298
Ecaterina Moraru (Valica) 39.2 299 )))
Vincent Massol 25.2 300
Ecaterina Moraru (Valica) 39.2 301 == Drafts ==
Vincent Massol 1.1 302
jeanvivienmaurice 1.5 303
Vincent Massol 42.14 304 See the [[Drafts page>>dev:Drafts.WebHome]] for other topics that are still under review.

Get Connected