Code source wiki de RatingWidget

Version 12.1 par Pascale STEIMETZ-LE CACHEUX le 2026/03/25 16:54

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