Wiki broncode van Speler Syntess Atrium leren

Version 6.1 by Jeeves de Butler on 06-10-2026 04:09

Show last authors
1 {{velocity}}
2 ## Shows the Syntess Atrium Zelfstudie clips of the including page: one figure per Wardenburg.Code.AtriumClipClass
3 ## object (sorted on positie), with an HTML5 player and a clickable chapter list. The video itself is an attachment of
4 ## the including page, so it is only visible to people who may read that page. Used through
5 ## {{include reference="Wardenburg.Code.AtriumClips"/}} on the pages under Syntess Atrium leren.
6 #set ($discard = $xwiki.ssx.use('Wardenburg.Code.AtriumClips'))
7 #set ($discard = $xwiki.jsx.use('Wardenburg.Code.AtriumClips'))
8 #set ($clips = [])
9 #foreach ($o in $doc.getObjects('Wardenburg.Code.AtriumClipClass'))
10 #set ($discard = $clips.add({
11 'positie': $mathtool.toInteger("$!o.getValue('positie')"),
12 'nummer': "$!o.getValue('nummer')",
13 'titel': "$!o.getValue('titel')",
14 'bijlage': "$!o.getValue('bijlage')",
15 'poster': "$!o.getValue('poster')",
16 'duur': "$!o.getValue('duur')",
17 'showcase': "$!o.getValue('vimeo_showcase')",
18 'geupload': "$!o.getValue('geupload')",
19 'hoofdstukken': "$!o.getValue('hoofdstukken')",
20 'gecontroleerd': "$!o.getValue('hoofdstukken_gecontroleerd')"
21 }))
22 #end
23 #foreach ($c in $collectiontool.sort($clips, 'positie'))
24
25 === $services.rendering.escape("$c.nummer $c.titel", $doc.syntax) ===
26
27 {{html clean="false"}}
28 <figure class="wb-clip" id="clip-$escapetool.xml($c.nummer)">
29 #if ("$!c.bijlage" != '' && $doc.getAttachment($c.bijlage))
30 <video controls preload="metadata" playsinline src="$doc.getAttachmentURL($c.bijlage)"#if ("$!c.poster" != '' && $doc.getAttachment($c.poster)) poster="$doc.getAttachmentURL($c.poster)"#{end}></video>
31 #else
32 <p class="wb-clip-ontbreekt">De video ontbreekt nog op deze pagina.</p>
33 #end
34 #set ($items = [])
35 #foreach ($raw in $c.hoofdstukken.split('\r?\n'))
36 #set ($line = $raw.trim())
37 #if ($line.matches('^\d{1,2}:\d{2}(:\d{2})?\s+.+$'))
38 #set ($tc = $line.replaceAll('^(\S+)\s+.*$', '$1'))
39 #set ($sec = 0)
40 #foreach ($p in $tc.split(':'))
41 #set ($sec = $sec * 60 + $mathtool.toInteger($p))
42 #end
43 #set ($discard = $items.add({'t': $sec, 'tc': $tc, 'label': $line.replaceAll('^\S+\s+', '')}))
44 #end
45 #end
46 #if ($items.size() > 0)
47 <ol class="wb-hoofdstukken" aria-label="Hoofdstukken">
48 #foreach ($i in $items)
49 <li><button type="button" data-t="$i.t"><span class="wb-t">$escapetool.xml($i.tc)</span><span class="wb-label">$escapetool.xml($i.label)</span></button></li>
50 #end
51 </ol>
52 #end
53 <figcaption>
54 #if ("$!c.duur" != '')Duur $escapetool.xml($c.duur). #{end}
55 Bron: Syntess Atrium Zelfstudie#if ("$!c.showcase" != ''), <a href="https://vimeo.com/showcase/$escapetool.url($c.showcase)" target="_blank" rel="noopener">alle clips van deze paragraaf</a>#{end}.
56 #if ($items.size() > 0 && "$!c.gecontroleerd" != '1') <span class="wb-clip-let">Hoofdstukken nog niet gecontroleerd.</span>#{end}
57 </figcaption>
58 </figure>
59 {{/html}}
60 #end
61 {{/velocity}}