Możliwość dodania opinii o produkcie

This commit is contained in:
2025-11-14 12:56:55 +01:00
parent 092d980bf3
commit 62d401aa83
4 changed files with 53 additions and 9 deletions

View File

@@ -181,6 +181,10 @@ const IDM_PRODUCT_QUERY = `id
iconSmallSecond
}
}
opinion{
rating,
count
}
awardedParameters {
name
id
@@ -413,14 +417,20 @@ class IdmHotspot{
devMode: false,
callbackFn: ()=>{},
omnibusTooltip: false,
// opinions: false
// switchImage: false,
// POKAZANIE
showOpinions: false,
// DODAWANIE
addToBasket: true, // true, false, "range"
addToFavorites: false, // Wymaga zmian szablonowych
addToCompare: false,
// WYBÓR
// selectSize: false,
// selectVersion: false,
// SWIPER
swiper: true,
swiperScrollbar: false,
@@ -561,6 +571,7 @@ class IdmHotspot{
</strong>
</a>
<div class="product__content_wrapper">
${this.markupOpinions(prod)}
<a class="product__name" tabindex="0" href="${prod.link}" title="${prod.name}">${prod.name}</a>
<div class="product__prices mb-auto ${prodExchangedData?.classes?.add?.reduce((acc,val) => acc + " " + val,"")}">
${this.markupPrice(prod, prodExchangedData)}
@@ -641,6 +652,22 @@ class IdmHotspot{
return labelMarkup;
}
markupOpinions(prod){
if(!this.options?.showOpinions) return "";
return `<div class="product__opinions">
<div class="product__opinions_stars">
<i class="icon-star ${prod.opinion?.rating > 0.5 ? "--active" : ""}"></i>
<i class="icon-star ${prod.opinion?.rating > 1.5 ? "--active" : ""}"></i>
<i class="icon-star ${prod.opinion?.rating > 2.5 ? "--active" : ""}"></i>
<i class="icon-star ${prod.opinion?.rating > 3.5 ? "--active" : ""}"></i>
<i class="icon-star ${prod.opinion?.rating > 4.5 ? "--active" : ""}"></i>
</div>
<span class="product__opinions_score">${prod.opinion.rating.toFixed(2)} / 5.00</span>
</div>`
}
markupPrice(prod, prodExchangedData){
const price = prod.price.price[this.priceType];
const unit = prod.unit;