Code source wiki de RatingWidget
Version 8.1 par XWikiGuest le 2026/03/24 15:11
Afficher les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
| 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}} |