| ... |
... |
@@ -7,13 +7,7 @@ |
| 7 |
7 |
#set($featuredFilter = [1, 0]) |
| 8 |
8 |
#end |
| 9 |
9 |
#set($collabs = $query.bindValue('featured', $featuredFilter).execute()) |
| 10 |
|
-{{/velocity}} |
| 11 |
|
- |
| 12 |
|
-{{velocity wiki="false"}} |
| 13 |
|
-## If AJAX call |
| 14 |
|
-#if("$!request.outputSyntax" != '') |
| 15 |
|
- $response.setContentType('application/json') |
| 16 |
|
-#end |
|
10 |
+#macro(collablist $collabs) |
| 17 |
17 |
[ |
| 18 |
18 |
#foreach($collab of $collabs) |
| 19 |
19 |
#set($highlight = $xwiki.getDocument($collab)) |
| ... |
... |
@@ -20,19 +20,31 @@ |
| 20 |
20 |
#set($collabId = $highlight.getValue('collab_id')) |
| 21 |
21 |
#set($collabURL = '/bin/view/Collabs/'+$collabId) |
| 22 |
22 |
#set($hasPicture = $highlight.getAttachment('highlight.png').isImage()) |
| 23 |
|
- #if($hasPicture) |
| 24 |
|
- #set($picture = $highlight.getAttachmentURL('highlight.png')) |
| 25 |
|
- #else |
| 26 |
|
- #set($picture = "") |
| 27 |
|
- #end |
| 28 |
28 |
{ |
| 29 |
|
- "name": "$highlight.getValue('collab_id')" |
| 30 |
|
- "title": "$highlight.getTitle()", |
| 31 |
|
- "description": "$highlight.getContent().replace('"', '\"')", |
| 32 |
|
- "image": "$picture", |
| 33 |
|
- "isPublic": true |
| 34 |
|
- }#if( $foreach.hasNext ), #end |
|
18 |
+ "title": "$highlight.getTitle()" |
|
19 |
+ }, |
| 35 |
35 |
#end |
| 36 |
36 |
] |
|
22 |
+#end |
|
23 |
+{{/velocity}} |
| 37 |
37 |
|
|
25 |
+{{velocity wiki="false"}} |
|
26 |
+## If AJAX call |
|
27 |
+#if("$!request.outputSyntax" != '') |
|
28 |
+ $response.setContentType('application/json') |
|
29 |
+#end |
|
30 |
+##set($MyJsonData = {'greeting': 'Hello', 'location': 'World'}) |
|
31 |
+##$jsontool.serialize($collabs) |
|
32 |
+ |
|
33 |
+$jsontool.serialize(#collablist($collabs)) |
|
34 |
+ |
|
35 |
+## In order to ensure the generated JSON is valid it is recommanded to |
|
36 |
+## build the JSON in memory (using Velocity/Java maps, arrays and basic types) |
|
37 |
+## and then serialize it with $jsontool.serialize method. |
|
38 |
+## Usage (from Marius: http://xwiki.markmail.org/message/wsvaj4leg5atufwd): |
|
39 |
+## #set($array = [1, 2, 3]) |
|
40 |
+## $jsontool.serialize($array) |
|
41 |
+## #set($map = {'enabled': true, 'color': 'yellow', 'count': 13}) |
|
42 |
+## $jsontool.serialize($map) |
|
43 |
+ |
| 38 |
38 |
{{/velocity}} |