Wiki-Quellcode von Tags

Zuletzt geändert von Daniel Herrmann am 2025/06/22 18:48

Zeige letzte Bearbeiter
1 {{velocity}}
2 ##
3 ## Tag application.
4 ##
5 ## - See a Tag Cloud of all tags within the wiki.
6 ## - See all the pages tagged with the given tag.
7 ## - Rename a tag.
8 ## - Delete a tag.
9 ##
10 $xwiki.ssx.use('Main.Tags')##
11 ##
12 ## Set application variables (action and tag) from URL parameters.
13 ##
14 #set ($do = "$!{request.get('do')}")
15 #set ($tag = "$!{request.get('tag')}")
16 #set ($wikiEscapedTag = $services.rendering.escape($tag, 'xwiki/2.1'))
17 #set ($urlEscapedTag = $escapetool.url($tag))
18 #set ($htmlEscapedTag = $escapetool.xml($tag))
19 ##
20 ## Macro displayTagAppTitle. Display level1 title of this app.
21 ##
22 #macro (displayTagAppTitle $urlEscapedTag $htmlEscapedTag $displayButtons)
23 (% class="xapp" %)
24 = (% class="highlight tag" %)${wikiEscapedTag}##
25 #if ($xwiki.hasAdminRights() && $displayButtons) ##
26 [[$services.localization.render('xe.tag.rename.link')>>||queryString="do=prepareRename&tag=${urlEscapedTag}" class="button rename" rel="nofollow"]] [[$services.localization.render('xe.tag.delete.link')>>||queryString="do=prepareDelete&tag=${urlEscapedTag}" class="button delete" rel="nofollow"]]##
27 #end
28 (%%) =
29 #end
30 ##
31 ## Switch between all possible actions:
32 ## viewTag, prepareRename, rename, prepareDelete, delete, default (Tag cloud)
33 ##
34 #if ($do == 'viewTag')
35 ##
36 ## View tag
37 ##
38 #displayTagAppTitle($urlEscapedTag $htmlEscapedTag true)
39 #if ("$!{request.get('renamedTag')}" != '')
40 {{info}}$services.localization.render('xe.tag.rename.success', ["//${services.rendering.escape(${request.get('renamedTag')}, 'xwiki/2.1')}//"]){{/info}}
41
42 #end
43 #set ($list = $xwiki.tag.getDocumentsWithTag($tag))
44 {{container layoutStyle="columns"}}
45 (((
46 (% class="xapp" %)
47 === $services.localization.render('xe.tag.alldocs', ["//${wikiEscapedTag}//"]) ===
48
49 #if ($list.size()> 0)
50 {{html}}#displayDocumentList($list false $NULL){{/html}}
51 #else
52 (% class='noitems' %)$services.localization.render('xe.tag.notags')
53 #end
54 )))
55 (((
56 (% class="xapp" %)
57 === $services.localization.render('xe.tag.activity', ["//${wikiEscapedTag}//"]) ===
58 {{notifications useUserPreferences="false" displayOwnEvents="true" tags="$wikiEscapedTag" displayRSSLink="true" /}}
59 )))
60 {{/container}}
61 #elseif ($do == 'prepareRename')
62 ##
63 ## Prepare rename tag
64 ##
65 #displayTagAppTitle($urlEscapedTag $htmlEscapedTag false)
66 {{html}}
67 <form id="renameForm" action="$doc.getURL()" method="post">
68 <div>
69 <input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" />
70 <input name="do" type="hidden" value="renameTag" />
71 <input name="tag" type="hidden" value="$htmlEscapedTag" />
72 $services.localization.render('xe.tag.rename.renameto', [$htmlEscapedTag]) <input type="text" name="renameTo" /> <span class="buttonwrapper"><input type="submit" value="$services.localization.render('xe.tag.rename')" class="button"/></span><span class="buttonwrapper"><a href="$doc.getURL('view', "do=viewTag&tag=${urlEscapedTag}")" class="secondary button">$services.localization.render('cancel')</a></span>
73 </div>
74 </form>
75 {{/html}}
76 #elseif ($do == 'renameTag')
77 #if (!$services.csrf.isTokenValid($request.get('form_token')))
78 #set ($discard = $response.sendError(401, "Wrong CSRF token"))
79 #else
80 ##
81 ## Rename tag
82 ##
83 #set ($renameTo = "$!{request.get('renameTo')}")
84 #set ($success = false)
85 #if ($renameTo != '')
86 #set ($success = $xwiki.tag.renameTag($tag, $renameTo))
87 #end
88 #if ($success == true || $success == 'OK')
89 #set ($urlEscapedRenameTo = $escapetool.url($renameTo))
90 $response.sendRedirect($doc.getURL('view', "do=viewTag&tag=${urlEscapedRenameTo}&renamedTag=${urlEscapedTag}"))
91 #else
92 {{error}}$services.localization.render('xe.tag.rename.failure', ["//${wikiEscapedTag}//", "//${services.rendering.escape($renameTo, 'xwiki/2.1')}//"]){{/error}}
93 #end
94 #end
95 #elseif ($do == 'prepareDelete')
96 ##
97 ## Prepare delete tag
98 ##
99 #displayTagAppTitle($urlEscapedTag $htmlEscapedTag false)
100 {{html}}
101 <form id="deleteForm" action="$doc.getURL()" method="post">
102 <div>
103 <input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" />
104 <input name="do" type="hidden" value="deleteTag" />
105 <input name="tag" type="hidden" value="$htmlEscapedTag" />
106 <span class="buttonwrapper"><input type="submit" value="$services.localization.render('xe.tag.delete', [$htmlEscapedTag])" class="button"/></span><span class="buttonwrapper"><a href="$doc.getURL('view', "do=viewTag&tag=${urlEscapedTag}")" class="secondary button">$services.localization.render('cancel')</a></span>
107 </div>
108 </form>
109 {{/html}}
110 #elseif ($do == 'deleteTag')
111 #if (!$services.csrf.isTokenValid($request.get('form_token')))
112 #set ($discard = $response.sendError(401, "Wrong CSRF token"))
113 #else
114 ##
115 ## Delete tag
116 ##
117 #set ($success = $xwiki.tag.deleteTag($tag))
118 #if ($success == true || $success == 'OK')
119 $response.sendRedirect($doc.getURL('view', "deletedTag=${urlEscapedTag}"))
120 #else
121 {{error}}$services.localization.render('xe.tag.delete.failure', ["//${wikiEscapedTag}//"]){{/error}}
122 #end
123 #end
124 #else
125 ##
126 ## View all tags (Tag Cloud)
127 ##
128 #set ($title = 'All Tags')
129 #if ("$!{request.get('deletedTag')}" != '')
130 {{info}}$services.localization.render('xe.tag.delete.success', ["//${services.rendering.escape($request.get('deletedTag'), 'xwiki/2.1')}//"]){{/info}}
131
132 #end
133 {{tagcloud/}}
134 #end
135 #set ($displayDocExtra = false)
136 {{/velocity}}

Community

https://wiki.makerspace-darmstadt.de/bin/download/Panels/MKSP%20Slack/Slack_MKSP.png

Wir benutzen Slack, um miteinander zu kommunizieren. Melde Dich an und werde Teil unserer Maker-Community!

Zum Slack Workspace

Frage? FAQ!

Du hast eine Frage, die sich nicht direkt im Wiki findet?

Natürlich kannst Du die Frage jederzeit gerne in der Slack Community stellen. Bevor Du das machst, schau doch bitte einmal auf unserer Homepage bei den Häufig gestellten Fragen vorbei. Wir versuchen diese Fragen stets aktuell zu halten, eventuell hilft Dir das ja schon weiter.

Offene Werkstatt

Ohne Anmeldung einfach vorbei kommen. Am besten bringst Du direkt den ausgefüllten Haftungsauschluss mit.

Jeden Donnerstag ab 19 Uhr

Während der offenen Werkstatt kannst Du einfach vorbei kommen und an Deinem Projekt arbeiten. Bitte beachte aber, dass zur Verwendung der Maschinen eine Einweisung erforderlich ist, die Du gegebenfalls vorher absolvieren musst. Wenn ein Mitglied mit entsprechender Einweisung vor Ort ist und Zeit hat, helfen wir natürlich gerne aus. Dies können wir aber nicht garantieren, da Rundgänge Priorität haben.

Sprich Dich idealerweise schon vor der offenen Werkstatt mit einem Mitglied in unserem Slack ab. So kannst Du sicherstellen, dass Du auf jeden Fall arbeiten kannst.

Übrigens: Du kannst Dich mit einem Mitglied gerne auch außerhalb der offenen Werkstattzeiten zum Arbeiten verabreden!

Führungen und Rundgänge

Im Rahmen der offenen Werkstatt bieten wir euch auch gerne einen Rundgang durch unsere Werkstatt. Hier könnt ihr den Verein und unser Konzept kennenlernen sowie die Maschinen und Möglichkeiten der Werkstatt gezeigt bekommen.

Jeden Donnerstag wird eine Führung angeboten:

  • Um 19:15 Uhr (bitte um 19:00 Uhr da sein)

Der Rundgang dauert ca. 45 Minuten und ihr habt natürlich auch die Möglichkeit, eure Fragen loszuwerden.

Bitte beachtet folgendes: Die Werkstatt beinhaltet gefährliche Maschinen. Bringt daher bitte nach Möglichkeit den ausgefüllten und unterschrieben Haftungsauschluss schon mit. Dieser kann aber auch vor Ort ausgefüllt werden, das verzögert allerdings die Abläufe.