Code source wiki de RatingWidget

Version 8.2 par Pascale STEIMETZ-LE CACHEUX le 2026/03/24 19:04

Afficher les derniers auteurs
1 {{velocity}}
2 #set($currentDoc = $doc.fullName)
3
4 #set($storeDoc = $xwiki.getDocument("Flora.RatingStore3"))
5 #set($objects = $storeDoc.getObjects("Flora.RatingVoteClass3"))
6
7 #set($total = 0)
8 #set($count = 0)
9
10 #foreach($obj in $objects)
11 #if($obj && $obj.getValue("document") == $currentDoc)
12 #set($note = $obj.getValue("note"))
13 #if($note)
14 #set($total = $total + $note)
15 #set($count = $count + 1)
16 #end
17 #end
18 #end
19
20 #if($count > 0)
21 #set($avg = $total / $count)
22 #else
23 #set($avg = 0)
24 #end
25
26 #set($stars = "")
27 #foreach($i in [1..5])
28 #if($i <= $avg.round())
29 #set($stars = "${stars}★")
30 #else
31 #set($stars = "${stars}☆")
32 #end
33 #end
34 {{html clean="false"}}
35 <style>
36 .flora-rating-wrap {
37 margin-top: 16px;
38 padding-top: 10px;
39 border-top: 1px solid #D9DFEE;
40 display: flex;
41 align-items: center;
42 gap: 14px;
43 flex-wrap: wrap;
44 font-size: 14px;
45 }
46 .flora-rating-label {
47 font-weight: 600;
48 color: #2A2B69;
49 }
50 .flora-stars {
51 display: inline-flex;
52 gap: 4px;
53 }
54 .flora-stars button {
55 background: none;
56 border: none;
57 font-size: 22px;
58 cursor: pointer;
59 color: #d4af37;
60 padding: 0;
61 margin: 0;
62 }
63 .flora-stars button:hover,
64 .flora-stars button.hovered {
65 color: #f2c94c;
66 }
67 .flora-rating-result {
68 color: #2F2F2F;
69 }
70 </style>
71
72 <div class="flora-rating-wrap" data-doc="$escapetool.xml($currentDoc)">
73 <span class="flora-rating-label">Noter cette page</span>
74
75 <div class="flora-stars">
76 <button class="flora-star" data-note="1" type="button">★</button>
77 <button class="flora-star" data-note="2" type="button">★</button>
78 <button class="flora-star" data-note="3" type="button">★</button>
79 <button class="flora-star" data-note="4" type="button">★</button>
80 <button class="flora-star" data-note="5" type="button">★</button>
81 </div>
82
83 <span class="flora-rating-result">$stars ($count votes)</span>
84 </div>
85 {{/html}}
86 {{/velocity}}