Code source wiki de RatingWidget
Version 12.1 par Pascale STEIMETZ-LE CACHEUX le 2026/03/25 16:54
Masquer les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
| |
8.1 | 1 | {{velocity}} |
| |
12.1 | 2 | #if(!$ratingTarget) |
| 3 | #set($ratingTarget = $doc.fullName) | ||
| 4 | #end | ||
| |
8.1 | 5 | |
| |
12.1 | 6 | #set($currentDoc = $ratingTarget) |
| 7 | |||
| |
8.1 | 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) | ||
| |
12.1 | 15 | #if($obj && $obj.getValue("document") && $obj.getValue("document").toString() == $currentDoc) |
| |
8.1 | 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)"> | ||
| |
12.1 | 77 | <span class="flora-rating-label">Votre avis compte pour nous, que pensez-vous de cet article ?</span> |
| |
8.1 | 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}} |