diff --git a/composer.json b/composer.json index 42b9f9d..834fcf1 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ "require": { "magento/framework": "*", "hyva-themes/magento2-compat-module-fallback": "*", - "magmodules/magento2-kiyoh": "*" + "magmodules/magento2-kiyoh": ">=1.7.0" }, "autoload": { "files": [ diff --git a/src/view/frontend/tailwind/tailwind.config.js b/src/view/frontend/tailwind/tailwind.config.js new file mode 100755 index 0000000..f44ed37 --- /dev/null +++ b/src/view/frontend/tailwind/tailwind.config.js @@ -0,0 +1,7 @@ +module.exports = { + purge: { + content: [ + '../templates/**/*.phtml', + ] + } +} diff --git a/src/view/frontend/templates/widget/helper/stars.phtml b/src/view/frontend/templates/widget/helper/stars.phtml new file mode 100644 index 0000000..ea21a04 --- /dev/null +++ b/src/view/frontend/templates/widget/helper/stars.phtml @@ -0,0 +1,46 @@ +require(HeroiconsSolid::class); + +$svgSize = $block->hasData('svgSize') ? $block->getData('svgSize') : '20'; +$starColor = $block->hasData('starColor') ? $block->getData('starColor') : ''; + +$svgSizeStyle = 'width: ' . $svgSize . 'px; height: ' . $svgSize . 'px; '; +$starColorStyle = $starColor ? 'color: ' . $starColor : ''; + +$percent = $block->hasData('percent') ? $block->getData('percent') . '%' : '0%'; +?> + +
+
+ +
+ starHtml('', null, null, ["style" => $svgSizeStyle . $starColorStyle]); ?> + starHtml('', null, null, ["style" => $svgSizeStyle . $starColorStyle]); ?> + starHtml('', null, null, ["style" => $svgSizeStyle . $starColorStyle]); ?> + starHtml('', null, null, ["style" => $svgSizeStyle . $starColorStyle]); ?> + starHtml('', null, null, ["style" => $svgSizeStyle . $starColorStyle]); ?> +
+
+ +
+ starHtml('', null, null, ["style" => $svgSizeStyle]); ?> + starHtml('', null, null, ["style" => $svgSizeStyle]); ?> + starHtml('', null, null, ["style" => $svgSizeStyle]); ?> + starHtml('', null, null, ["style" => $svgSizeStyle]); ?> + starHtml('', null, null, ["style" => $svgSizeStyle]); ?> +
+
diff --git a/src/view/frontend/templates/widget/review/badge.phtml b/src/view/frontend/templates/widget/review/badge.phtml new file mode 100644 index 0000000..cb008c8 --- /dev/null +++ b/src/view/frontend/templates/widget/review/badge.phtml @@ -0,0 +1,182 @@ +getUniqueId(); + +$accountInfo = $block->getAccountInfo(); +$reviewsCount = $accountInfo[0]['total']; +$reviewsAvgScore = $accountInfo[0]['avgRatingScore']; +$reviewsAvgRating = $accountInfo[0]['avgRating']; + +$heroicons = $viewModels->require(HeroiconsOutline::class); +?> + +
+
+ + showLogo() || $block->showStars()): ?> +
+ + showLogo()): ?> + + <?= $block->escapeHtml(__('Kiyoh badge widget')); ?> + kiyoh + + + + showStars()): ?> + getLayout() + ->createBlock('Magento\Framework\View\Element\Template') + ->setTemplate('Magmodules_HyvaKiyOhSR::widget/helper/stars.phtml') + ->setData('svgSize', '22') + ->setData('percent', $reviewsAvgRating * 10) + ->toHtml(); + ?> + +
+ + +
+
+ escapeHtml($reviewsAvgScore); ?> + escapeHtml(__('based on')); ?> + + escapeHtml($reviewsCount); ?> + 1 + ? $block->escapeHtml(__('reviews')) + : $block->escapeHtml(__('review')); ?> + +
+ + showReviewLink()): ?> + + externalLinkHtml('', 20, 20, ["style" => "stroke-width: 1.5"]); ?> + + +
+
+ + showReviewLink()): ?> + + + + +
+ + diff --git a/src/view/frontend/templates/widget/review/carousel.phtml b/src/view/frontend/templates/widget/review/carousel.phtml new file mode 100644 index 0000000..1a5594b --- /dev/null +++ b/src/view/frontend/templates/widget/review/carousel.phtml @@ -0,0 +1,226 @@ +getTextLength() == 'small') $txtLen = 2; +if ($block->getTextLength() == 'medium') $txtLen = 4; +if ($block->getTextLength() == 'large') $txtLen = 6; + +$heroicons = $viewModels->require(HeroiconsOutline::class); +?> + +
+ +
+ +
+ +
+ + getReviews() as $review): ?> +
+
+ +
+ escapeHtml($review['name']) ?> + + showStars()): ?> + getSelectColor() ? $block->getSelectColor() : '#000000'; + ?> + + getLayout() + ->createBlock('Magento\Framework\View\Element\Template') + ->setTemplate('Magmodules_HyvaKiyOhSR::widget/helper/stars.phtml') + ->setData('svgSize', '18') + ->setData('starColor', $starColor) + ->setData('percent', floatval($review['total']) * 10) + ->toHtml(); + ?> + +
+ +
+ escapeHtml($review['default_oneliner']['rating']) ?> + + escapeHtml($review['default_opinion']['rating']) ?> + +
+ +
+ + showIcon()): ?> + <?= $block->escapeHtml(__('Kiyoh carousel widget')); ?> + + + + escapeHtml(__('A Kiyoh Review written')); ?> + escapeHtml($review['created']) ?> + +
+
+
+ +
+
+ + +
+
+ + diff --git a/src/view/frontend/templates/widget/review/floating.phtml b/src/view/frontend/templates/widget/review/floating.phtml new file mode 100644 index 0000000..0db002c --- /dev/null +++ b/src/view/frontend/templates/widget/review/floating.phtml @@ -0,0 +1,182 @@ +getUniqueId(); + +$accountInfo = $block->getAccountInfo(); +$reviewsCount = $accountInfo[0]['total']; +$reviewsAvgScore = $accountInfo[0]['avgRatingScore']; +$reviewsAvgRating = $accountInfo[0]['avgRating']; + +if ($block->getWidgetPosition() == 'top_right') $floatingClass = 'top-4 right-4'; +if ($block->getWidgetPosition() == 'top_left') $floatingClass = 'top-4 left-4'; +if ($block->getWidgetPosition() == 'bottom_right') $floatingClass = 'bottom-4 right-4'; +if ($block->getWidgetPosition() == 'bottom_left') $floatingClass = 'bottom-4 left-4'; + +$heroicons = $viewModels->require(HeroiconsOutline::class); +?> + +
+
+ + showLogo()): ?> + <?= $block->escapeHtml(__('Kiyoh floating widget')); ?> + + + getLayout() + ->createBlock('Magento\Framework\View\Element\Template') + ->setTemplate('Magmodules_HyvaKiyOhSR::widget/helper/stars.phtml') + ->setData('svgSize', '22') + ->setData('percent', $reviewsAvgRating * 10) + ->toHtml(); + ?> + +
+ + escapeHtml($reviewsCount); ?> + 1 + ? $block->escapeHtml(__('reviews')) + : $block->escapeHtml(__('review')); ?> + + + showReviewLink()): ?> + + externalLinkHtml('', 14, 14, ["style" => "stroke-width: 1.5"]); ?> + + +
+
+ + showReviewLink()): ?> + + + + +
+ + + + diff --git a/src/view/frontend/templates/widget/review/overview.phtml b/src/view/frontend/templates/widget/review/overview.phtml new file mode 100644 index 0000000..8fdaa64 --- /dev/null +++ b/src/view/frontend/templates/widget/review/overview.phtml @@ -0,0 +1,312 @@ +getAccountInfo(); +$reviewsCount = $accountInfo[0]['total']; +$reviewsAvgRating = $accountInfo[0]['avgRating']; +$reviewsAvgScore = $block->getConvertedAvgScore(); + +$extraClass = !$block->showSummaryBlock() && + !$block->showRatingFilter() && + !$block->showWriteReviewButton() ? '!grid-cols-1' : ''; + +$reviewsPerStars = $block->getReviewsPerStars(); +$starsItem = ['5', '4', '3', '2', '1']; +?> + +
+ + showSummaryBlock() || $block->showRatingFilter() || $block->showWriteReviewButton()): ?> +
+ showSummaryBlock()): ?> +
+ +
+ + <?= $block->escapeHtml(__('Kiyoh overview widget')); ?> + kiyoh + + +
+ + getLayout() + ->createBlock('Magento\Framework\View\Element\Template') + ->setTemplate('Magmodules_HyvaKiyOhSR::widget/helper/stars.phtml') + ->setData('svgSize', '24') + ->setData('percent', $reviewsAvgRating * 10) + ->toHtml(); + ?> +
+
+ +
+ escapeHtml(__('Rated with a')); ?> + escapeHtml($reviewsAvgScore); ?> + escapeHtml(__('based on')); ?> + + escapeHtml($reviewsCount); ?> + 1 + ? $block->escapeHtml(__('reviews')) + : $block->escapeHtml(__('review')); ?> + +
+ +
+ +
+ + +
+
+
+ + +
+ +
+ + showFirstAndLast()): ?> +
+ escapeHtml(__('First Review')); ?> + getFirstDate() ?> + + escapeHtml(__('and last Review')); ?> + getLastDate() ?> +
+ +
+ + + showRatingFilter()): ?> +
+ +

+ escapeHtml(__('Filter on Rating')); ?> +

+
+ 0; $index--): ?> +
+ getLayout() + ->createBlock('Magento\Framework\View\Element\Template') + ->setTemplate('Magmodules_HyvaKiyOhSR::widget/helper/stars.phtml') + ->setData('svgSize', '20') + ->setData('percent', $index * 20) + ->toHtml(); + ?> +
+ + +
+ escapeHtml(__('Clear Filter')); ?> +
+
+
+ + + showWriteReviewButton()): ?> + + escapeHtml(__('Write a Review')); ?> + + +
+ + +
+ showSortingOption()): ?> +
+ + + + escapeHtml(__('Newest')); ?> + + + escapeHtml(__('Oldest')); ?> + + + escapeHtml(__('Lowest')); ?> + + + escapeHtml(__('Highest')); ?> + +
+ + +
+ getReviews() as $index=>$review): ?> +
+ +
+ escapeHtml($review['name']) ?> +
+ + escapeHtml($review['created']) ?> + + + getLayout() + ->createBlock('Magento\Framework\View\Element\Template') + ->setTemplate('Magmodules_HyvaKiyOhSR::widget/helper/stars.phtml') + ->setData('svgSize', '20') + ->setData('percent', floatval($review['total']) * 10) + ->toHtml(); + ?> +
+
+ +
+ escapeHtml($review['default_oneliner']['rating']) ?> + escapeHtml($review['default_opinion']['rating']) ?> +
+
+ + +

+ escapeHtml(__("Sorry, there's no reviews for this filter.")); ?> +

+
+
+
+ + + + diff --git a/src/view/frontend/templates/widget/review/sidebar.phtml b/src/view/frontend/templates/widget/review/sidebar.phtml new file mode 100644 index 0000000..877587b --- /dev/null +++ b/src/view/frontend/templates/widget/review/sidebar.phtml @@ -0,0 +1,232 @@ +getUniqueId(); + +$accountInfo = $block->getAccountInfo(); +$reviewsCount = $accountInfo[0]['total']; +$reviewsAvgScore = $accountInfo[0]['avgRatingScore']; +$reviewsAvgRating = $accountInfo[0]['avgRating']; + +if ($block->getTextLength() == 'small') $txtLen = 2; +if ($block->getTextLength() == 'medium') $txtLen = 4; +if ($block->getTextLength() == 'large') $txtLen = 6; + +$heroicons = $viewModels->require(HeroiconsOutline::class); +?> + +
+ +
+ showLogoInHeader() || $block->showStarsInHeader()): ?> +
+ + showLogoInHeader()): ?> + + <?= $block->escapeHtml(__('Kiyoh badge widget')); ?> + kiyoh + + + + showStarsInHeader()): ?> + getLayout() + ->createBlock('Magento\Framework\View\Element\Template') + ->setTemplate('Magmodules_HyvaKiyOhSR::widget/helper/stars.phtml') + ->setData('svgSize', '22') + ->setData('percent', $reviewsAvgRating * 10) + ->toHtml(); + ?> + +
+ + +
+ escapeHtml($reviewsAvgScore); ?> + escapeHtml(__('based on')); ?> + + escapeHtml($reviewsCount); ?> + 1 + ? $block->escapeHtml(__('reviews')) + : $block->escapeHtml(__('review')); ?> + +
+
+ +
+ +
+ +
+ + getReviews() as $review): ?> +
+
+
+ escapeHtml($review['name']) ?> + + showStarsPerReview()): ?> + getSelectColor() ? $block->getSelectColor() : '#000000'; + ?> + + getLayout() + ->createBlock('Magento\Framework\View\Element\Template') + ->setTemplate('Magmodules_HyvaKiyOhSR::widget/helper/stars.phtml') + ->setData('svgSize', '18') + ->setData('starColor', $starColor) + ->setData('percent', floatval($review['total']) * 10) + ->toHtml(); + ?> + +
+ +
+ escapeHtml($review['default_oneliner']['rating']) ?> + + escapeHtml($review['default_opinion']['rating']) ?> + +
+
+
+ +
+
+ + +
+ +
+ + + +
+
+ + diff --git a/src/view/frontend/templates/widget/review/textual.phtml b/src/view/frontend/templates/widget/review/textual.phtml new file mode 100644 index 0000000..eb4698a --- /dev/null +++ b/src/view/frontend/templates/widget/review/textual.phtml @@ -0,0 +1,50 @@ +getUniqueId(); + +$accountInfo = $block->getAccountInfo(); +$reviewsCount = $accountInfo[0]['total']; +$reviewsAvgScore = $accountInfo[0]['avgRatingScore']; +$reviewsAvgRating = $accountInfo[0]['avgRating']; +?> + +
+ showLogo()): ?> + <?= $block->escapeHtml(__('Kiyoh textual widget')); ?> + + + showStars()): ?> + getLayout() + ->createBlock('Magento\Framework\View\Element\Template') + ->setTemplate('Magmodules_HyvaKiyOhSR::widget/helper/stars.phtml') + ->setData('svgSize', '22') + ->setData('percent', $reviewsAvgRating * 10) + ->toHtml(); + ?> + + +
+ escapeHtml(__('Our store is rated with a')); ?> + escapeHtml($reviewsAvgScore); ?> + escapeHtml(__('based on')); ?> + + escapeHtml($reviewsCount); ?> + 1 + ? $block->escapeHtml(__('reviews')) + : $block->escapeHtml(__('review')); ?> + +
+