Wiki broncode van Overzicht

Laatst gewijzigd door Jeeves de Butler op 05-10-2026 05:09

Hide last authors
Jeeves de Butler 1.1 1 {{velocity}}
2 ## Overzicht van de pagina's direct onder de huidige pagina, als compacte kaarten.
3 ## Gebruik op een startpagina: {{include reference="<Code-ruimte>.Overzicht"/}}. Werkt met geneste pagina's:
4 ## een onderliggende ruimte telt mee via haar WebHome, een losse pagina in deze ruimte telt ook mee.
5 ## Verborgen pagina's, Code-ruimtes en pagina's waar de lezer geen leesrecht op heeft, blijven weg.
6 #set ($huidig = $doc.documentReference.lastSpaceReference)
7 #set ($huidigNaam = $services.model.serialize($huidig, 'local'))
8 #set ($items = [])
9 ## Onderliggende ruimtes (secties)
10 #set ($ruimtes = $services.query.xwql("select distinct doc.space from Document doc where doc.space like :prefix").bindValue('prefix', "${huidigNaam}.%").execute())
11 #foreach ($r in $ruimtes)
12 #set ($sr = $services.model.resolveSpace($r))
13 #if ($sr.parent.equals($huidig) && $sr.name != 'Code')
14 #set ($ref = $services.model.createDocumentReference('WebHome', $sr))
15 #set ($d = $xwiki.getDocument($ref))
16 #if (!$d.isNew() && !$d.isHidden() && $services.security.authorization.hasAccess('view', $ref))
17 #set ($aantal = $services.query.xwql("select count(doc.fullName) from Document doc where doc.hidden <> true and doc.name <> 'WebPreferences' and ((doc.space = :s and doc.name <> 'WebHome') or doc.space like :p)").bindValue('s', $r).bindValue('p', "${r}.%").execute().get(0))
Jeeves de Butler 5.1 18 ## Zonder onderliggende pagina's is het een gewone pagina, tenzij het zelf een (nog lege) startpagina met dit overzicht is
19 #set ($icoon = 'folder')
Jeeves de Butler 1.1 20 #if ($aantal == 1)
21 #set ($info = '1 pagina')
Jeeves de Butler 5.1 22 #elseif ($aantal > 1)
23 #set ($info = "$aantal pagina's")
24 #elseif ($d.content.contains('.Code.Overzicht'))
25 #set ($info = "Nog geen pagina's")
Jeeves de Butler 1.1 26 #else
Jeeves de Butler 5.1 27 #set ($icoon = 'page')
28 #set ($info = "Bijgewerkt op $xwiki.formatDate($d.date, 'dd-MM-yyyy')")
Jeeves de Butler 1.1 29 #end
Jeeves de Butler 5.1 30 #set ($discard = $items.add({'titel': $d.plainTitle, 'url': $d.getURL(), 'icoon': $icoon, 'info': $info}))
Jeeves de Butler 1.1 31 #end
32 #end
33 #end
34 ## Losse pagina's in deze ruimte
35 #set ($paginas = $services.query.xwql("select doc.fullName from Document doc where doc.space = :space and doc.name not in ('WebHome', 'WebPreferences') and doc.hidden <> true").bindValue('space', $huidigNaam).execute())
36 #foreach ($p in $paginas)
37 #set ($d = $xwiki.getDocument($p))
38 #if ($services.security.authorization.hasAccess('view', $d.documentReference))
39 #set ($datum = $xwiki.formatDate($d.date, 'dd-MM-yyyy'))
40 #set ($discard = $items.add({'titel': $d.plainTitle, 'url': $d.getURL(), 'icoon': 'page', 'info': "Bijgewerkt op $datum"}))
41 #end
42 #end
43 #if ($items.isEmpty())
44 (% class="wb-overzicht-leeg" %)
45 Hier staan nog geen pagina's.
46 #else
47 {{html clean="false"}}
48 <ul class="wb-overzicht">
49 #foreach ($i in $sorttool.sort($items, 'titel'))
50 <li><a href="$escapetool.xml($i.url)"><span class="wb-overzicht-icoon">$services.icon.renderHTML($i.icoon)</span><span><strong>$escapetool.xml($i.titel)</strong><small>$escapetool.xml($i.info)</small></span></a></li>
51 #end
52 </ul>
53 {{/html}}
54 #end
55 {{/velocity}}
56