Wiki source code of Data types
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | {{velocity}} | ||
2 | #if($request.space && $request.name) | ||
3 | #if($request.name.endsWith("Class")) | ||
4 | #set($targetClassName="${request.space}.${request.name}") | ||
5 | #else | ||
6 | #set($targetClassName="${request.space}.${request.name}Class") | ||
7 | #end | ||
8 | #if($xwiki.hasAccessLevel('edit', $context.user, $targetClassName)) | ||
9 | $response.sendRedirect($xwiki.getURL($context.util.noaccents($targetClassName), 'edit', "editor=wiki&template=$!{request.template}&sheet=$!{request.sheet}&parent=$!{request.parent}")) | ||
10 | ## Stop processing, since we already sent a redirect. | ||
11 | #stop | ||
12 | #end | ||
13 | #end | ||
14 | {{/velocity}} | ||
15 | This tool allows to define structured data types (classes) in your wiki. Please consult the [[developer's guide>>http://www.xwiki.org/xwiki/bin/view/DevGuide/WebHome]] to get familiar with the XWiki data model and the public APIs. | ||
16 | |||
17 | = Templates for new data types = | ||
18 | |||
19 | Here are the templates and sheets for creating new classes: | ||
20 | |||
21 | * [[Default code for displaying a class>>ClassSheet]] | ||
22 | * [[Document template for new classes>>ClassTemplate]] | ||
23 | * [[Default code for displaying class instances (objects)>>ObjectSheet]] | ||
24 | * [[Document template for new objects>>ObjectTemplate]] | ||
25 | |||
26 | = Create a new data type = | ||
27 | |||
28 | Choose a simple name, such as //Article//, //Book//, //Employee//. '//Class//' will be appended at the end automatically. | ||
29 | |||
30 | {{velocity}} | ||
31 | #if("$!{targetClassName}" != ''){{warning}}You don't have permission to create that class{{/warning}}#end | ||
32 | |||
33 | {{html}} | ||
34 | <form action="$doc.URL" method="post"> | ||
35 | <div> | ||
36 | <input type="hidden" name="parent" value="XWiki.XWikiClasses"/> | ||
37 | <input type="hidden" name="template" value="XWiki.ClassTemplate"/> | ||
38 | <input type="hidden" name="sheet" value="1"/> | ||
39 | <label for="space">Space:</label> <input type="text" id="space" name="space" value="XWiki"/> | ||
40 | <label for="name">Class:</label> <input type="text" id="name" name="name" value="Name of the class" class="withTip"/> | ||
41 | <span class="buttonwrapper"><input type="submit" value="Create this Class" class="button"/></span> | ||
42 | </div> | ||
43 | </form> | ||
44 | {{/html}}{{/velocity}} | ||
45 | |||
46 | = Data types defined in this wiki = | ||
47 | |||
48 | {{velocity}} | ||
49 | ## | ||
50 | ## Existing classes are enumerated, grouped by space name. | ||
51 | ## The list is already sorted alphabetically | ||
52 | ## | ||
53 | #set($prevSpace = '') | ||
54 | #foreach ($classname in $xwiki.classList) | ||
55 | #set($classdoc = $xwiki.getDocument($classname)) | ||
56 | #if($classdoc.space != $prevSpace) | ||
57 | ; [[$classdoc.space>>${classdoc.space}.WebHome]] space: | ||
58 | #set($prevSpace = $classdoc.space) | ||
59 | #end | ||
60 | : [[$classdoc.name>>$classdoc.fullName]] | ||
61 | #end | ||
62 | {{/velocity}} |