Wiki broncode van Overzicht
Version 1.1 by Jeeves de Butler on 05-10-2026 05:07
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 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)) | ||
| 18 | #if ($aantal == 1) | ||
| 19 | #set ($info = '1 pagina') | ||
| 20 | #else | ||
| 21 | #set ($info = "$aantal pagina's") | ||
| 22 | #end | ||
| 23 | #set ($discard = $items.add({'titel': $d.plainTitle, 'url': $d.getURL(), 'icoon': 'folder', 'info': $info})) | ||
| 24 | #end | ||
| 25 | #end | ||
| 26 | #end | ||
| 27 | ## Losse pagina's in deze ruimte | ||
| 28 | #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()) | ||
| 29 | #foreach ($p in $paginas) | ||
| 30 | #set ($d = $xwiki.getDocument($p)) | ||
| 31 | #if ($services.security.authorization.hasAccess('view', $d.documentReference)) | ||
| 32 | #set ($datum = $xwiki.formatDate($d.date, 'dd-MM-yyyy')) | ||
| 33 | #set ($discard = $items.add({'titel': $d.plainTitle, 'url': $d.getURL(), 'icoon': 'page', 'info': "Bijgewerkt op $datum"})) | ||
| 34 | #end | ||
| 35 | #end | ||
| 36 | #if ($items.isEmpty()) | ||
| 37 | (% class="wb-overzicht-leeg" %) | ||
| 38 | Hier staan nog geen pagina's. | ||
| 39 | #else | ||
| 40 | {{html clean="false"}} | ||
| 41 | <ul class="wb-overzicht"> | ||
| 42 | #foreach ($i in $sorttool.sort($items, 'titel')) | ||
| 43 | <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> | ||
| 44 | #end | ||
| 45 | </ul> | ||
| 46 | {{/html}} | ||
| 47 | #end | ||
| 48 | {{/velocity}} |