Änderungen von Dokument Sandbox

Zuletzt geändert von Holger Engels am 2024/01/26 15:58

Von Version 11.1
bearbeitet von Holger Engels
am 2023/11/08 21:38
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 2.2
bearbeitet von VBS
am 2023/10/13 22:15
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.holgerengels
1 +XWiki.vbs
Inhalt
... ... @@ -99,68 +99,30 @@
99 99  
100 100  [[image:XWikiLogo.png]]
101 101  
102 -== Orphaned Pages ==
102 += Makros =
103 103  
104 -{{velocity filter="none"}}
105 -{{html clean="false" wiki="true"}}
106 -#set ($query = "where (doc.parent is null or doc.parent='') and doc.fullName != 'Main.WebHome' order by doc.name asc")
104 +Makros bieten die Möglichkeit, das Aussehen von Wiki-Seiten zu verbessern und stellen zusätzliche Funktionalitäten in der Seite zur Verfügung. Hier sind zwei Beispiele, wie Makros die Inhalte verbessern können:
107 107  
108 -|=Page Name|=Author|=date
109 -|#foreach ($item in $xwiki.searchDocuments($query))
110 - #if ($xwiki.hasAccessLevel('view', $xcontext.user, "${xcontext.database}:${item}"))
111 - #set ($bentrydoc = $xwiki.getDocument($item))
112 - [[${bentrydoc.fullName}]]|$xwiki.getUserName($bentrydoc.author)|$xwiki.formatDate($bentrydoc.date)
113 -|#end
114 -#end
106 +== Makro: Warnmeldung ==
115 115  
116 -{{/html}}
117 -{{/velocity}}
108 +Dieses Makro bietet die Möglichkeit, die Aufmerksamkeit der Leser auf einen bestimmten Text zu lenken:
118 118  
110 +{{warning}}
111 +Dies ist ein wichtiger Hinweis!
112 +{{/warning}}
119 119  
120 -== Rating Tests ==
114 +== Inhaltsverzeichnis ==
121 121  
122 -{{html clean="false"}}
123 -<script>
124 - customElements.define("star-rating", class extends HTMLElement {
125 - set rating(rate) {
126 - if (!String(rate).includes("%")) rate = Number(rate) / this.stars * 100 + "%";
127 - this.querySelector(":nth-child(2)").setAttribute("width", rate); //2nd rect
128 - }
129 - set value(v) {
130 - this.setAttribute("rating", v);
131 - }
132 - connectedCallback() {
133 - let {bgcolor,stars,nocolor,color,rating} = this.attributes;
134 - let repeat = (count, func) => Array(count).fill().map(func);
135 - this.stars = ~~stars.value || 5;
136 - this.innerHTML = `<svg viewBox="0 0 ${this.stars*100} 100" style=cursor:pointer>` +
137 - `<rect height=100 fill=${nocolor.value} width=100% />` +
138 - `<rect height=100 fill=${color.value} />` +
139 - repeat(this.stars , (i, n) => `<path fill=${bgcolor.value} d="m${ n*100 } 0h102v100h-102v-100m91 42a6 6 90 00-4-10l-22-1a1 1 90 01-1 0l-8-21a6 6 90 00-11 0l-8 21a1 1 90 01-1 1l-22 1a6 6 90 00-4 10l18 14a1 1 90 010 1l-6 22a6 6 90 008 6l19-13a1 1 90 011 0l19 13a6 6 90 006 0a6 6 90 002-6l-6-22a1 1 90 010-1z"/>`) +
140 - repeat(this.stars * 2, (i, n) => `<rect x=${ n*50 } n=${n} opacity=0 width=50 height=100 ` +
141 - ` onclick="this.closest('star-rating').value=${(n+1)/2}; this.closest('star-rating').dispatchEvent(new Event('click'))" ` +
142 - ` onmouseover="this.closest('star-rating').rating=${(n+1)/2}"/>`) +
143 - "</svg>";
144 - this.rating = rating.value;
145 - this.addEventListener('mouseleave', (e) => {
146 - if (e.target.tagName === 'STAR-RATING') {
147 - e.target.rating = e.target.getAttribute("rating")
148 - }
149 - })
150 - }
151 - });
152 -</script>
153 -{{/html}}
116 +Dieses Makro erzeugt ein Inhaltsverzeichnis basierend auf den Überschriften in der Seite:
154 154  
155 -{{velocity}}
156 -$doc.space
157 -#set ($lala = $services.ratings.exercise.setRating($doc.space + '.lala', 2))
158 -#set ($lala = $services.ratings.exercise.setRating('lolo', 2))
118 +{{toc/}}
159 159  
160 -{{html clean="false" wiki="true"}}
161 -<style>
162 -star-rating { display: inline-block; width: 120px }
163 -</style>
164 -<star-rating stars=5 rating="$services.ratings.pagereflection.getAverageRating($doc.space + 'lala').get().averageVote" bgcolor="white" nocolor="lightgrey" color="gold"></star-rating>
165 -{{/html}}
120 +
121 +{{velocity}}
122 +#set($c=0)
123 +#set($doc = $xwiki.getDocument("Eingangsklasse.BPE_6_1"))
124 +#foreach($m in $doc.getXDOM().getBlocks('class:MacroBlock', 'DESCENDANT'))
125 + #set($c=$c+1)
126 +#end
127 +count $c
166 166  {{/velocity}}