Hide last authors
Alex Cotiugă 3.1 1 {{include reference="Store.Code.Macros"/}}
2
Administrator 2.1 3 {{velocity output="false"}}
Alex Cotiugă 3.1 4 #macro(displayRatings $itemDoc)
Marius Dumitru Florea 11.1 5 #set ($averageRating = $services.ratings.getAverageRating($itemDoc.documentReference).orElse(
6 {'averageVote': 0, 'nbVotes': 0}))
Alex Cotiugă 3.1 7 #set ($averageVote = $averageRating.averageVote)
8 #set ($width = $averageVote * 20)
9 #set ($stars = $stringtool.repeat($services.icon.renderHTML('star'), 5))
10 #set ($votes = $averageRating.nbVotes)
11 <div class="stars-rating" title="${width}%">
Marius Dumitru Florea 11.1 12 <div class="back-stars">
Alex Cotiugă 3.1 13 $stars
Marius Dumitru Florea 11.1 14 <div class="front-stars" style="width:${width}%;">
15 $stars
16 </div>
Alex Cotiugă 3.1 17 </div>
Marius Dumitru Florea 12.1 18 <div class="rating-message">
19 <span title="${votes} Votes">
20 ${votes} <span>$services.icon.renderHTML('user')</span>
21 </span>
22 </div>
Alex Cotiugă 3.1 23 </div>
24 #end
Administrator 1.1 25 #macro(displayStoreItem $sitem)
26 #set ($itemDoc = $xwiki.getDocument($sitem))
27 #set ($itemURL = $xwiki.getURL($sitem))
28 #set ($itemObj = $itemDoc.getObject('ExtensionCode.ExtensionClass'))
29 #set ($itemName = $itemObj.getValue('name'))
30 #set ($itemSummary = $itemObj.getValue('summary'))
31 #set ($itemIcon = $itemObj.getValue('icon'))
32 #set ($itemType = $itemObj.getValue('type'))
33 #set ($itemCategory = $itemObj.getValue('category'))
Administrator 2.1 34 <div class="col-md-4 col-sm-6 item">
Administrator 1.1 35 <div class="wrap-item-product">
Administrator 2.1 36 <div class="wrap-to-click">
37 <div class="top-product $!itemType">
38 <a href="$!itemURL" title="$!itemName">
39 <label class="short-desc">$!itemName</label>
40 <span class="product-icon">
41 #if ("$!itemIcon" != '')
42 $!services.icon.renderHTML($itemIcon)
43 #else
44 <span class="fa fa-search"></span>
45 #end
46 </span>
47 </a>
48 </div>
49 <div class="bottom-product">
50 <div class="product-name">$!itemSummary</div>
Alex Cotiugă 3.1 51 <div class="price-reviews row">
52 <div class="col-xs-6">
53 <div class="product-ratings">
54 #displayRatings($itemDoc)
Administrator 2.1 55 </div>
Alex Cotiugă 3.1 56 <div class="product-installedCount">
Administrator 7.1 57 <p>$!itemObj.getValue('installedCount') Installs</p>
Administrator 2.1 58 </div>
Administrator 1.1 59 </div>
Alex Cotiugă 3.1 60 <div class="col-xs-6">
61 <div class="product-category">
62 $!itemCategory
63 </div>
64 <div class="product-price">
65 #getMinPrice($itemObj.getValue('id'))
Alex Cotiugă 5.2 66 #if ($minPrice)
Alex Cotiugă 5.1 67 from ${minPrice}€
68 #else
69 FREE
70 #end
Alex Cotiugă 3.1 71 </div>
72 </div>
Administrator 2.1 73 </div>
Administrator 1.1 74 </div>
Administrator 2.1 75 </div>
Administrator 1.1 76 </div>
Administrator 2.1 77 </div>
Administrator 1.1 78 #end
Administrator 2.1 79 #macro(displayStoreItems)
Alex Cotiugă 8.1 80 #getStoreExtensions()
Administrator 2.1 81 {{html clean="false"}}
82 <div class="bottom">
83 <h2>The best extensions to enhance your wiki</h2>
Alex Cotiugă 10.2 84 <div class="list-product">
Administrator 2.1 85 #foreach ($item in $results)
Marius Dumitru Florea 12.1 86 ## Show 3 results per row.
Alex Cotiugă 10.2 87 #if ($foreach.index % 3 == 0)
Marius Dumitru Florea 12.1 88 ## Start a new row.
Alex Cotiugă 10.2 89 <div class="row">
90 #end
Administrator 2.1 91 #displayStoreItem($item)
Marius Dumitru Florea 12.1 92 #if ($foreach.index % 3 == 2)
93 ## Close the open row.
94 </div>
95 #end
Administrator 2.1 96 #end
Marius Dumitru Florea 11.1 97 ## Close the last open row in case the results count is not a multiple of 3.
98 #if ($results && $results.size() > 0 && $results.size() % 3 != 0)
99 </div>
100 #end
Administrator 2.1 101 </div>
102 </div>
103 {{/html}}
Administrator 1.1 104 #end
Alex Cotiugă 8.1 105 #macro(getStoreExtensions)
Marius Dumitru Florea 12.2 106 ## Get the list of recommended extensions.
107 #set ($query = ", BaseObject as obj, IntegerProperty as recommendedProp where doc.fullName = obj.name and obj.className = 'ExtensionCode.ExtensionClass' and recommendedProp.id.id = obj.id and recommendedProp.id.name='recommended' and recommendedProp.value = '1'")
Alex Cotiugă 8.1 108 #set ($query = "$query and doc.fullName like 'Extension.%' order by doc.fullName asc")
109 #set ($results = $services.query.hql($query).execute())
110 #end
Administrator 1.1 111 {{/velocity}}
XWiki SAS Copyright © 2024