EmicoEcommerce/Magento2Tweakwise

View on GitHub
view/frontend/templates/form.mini.phtml

Summary

Maintainability
Test Coverage
<?php
/**
 * Tweakwise (https://www.tweakwise.com/) - All Rights Reserved
 *
 * @copyright Copyright (c) 2017-2022 Tweakwise.com B.V. (https://www.tweakwise.com)
 * @license   http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */

/**
 * @var $block \Tweakwise\Magento2Tweakwise\Block\Autocomplete\FormMini
 * @var $escaper Escaper
 * phpcs:disable Magento2.Security.XssTemplate.FoundUnescaped
 * phpcs:disable Magento2.Legacy.PhtmlTemplate.TextJavascriptTypeFound
 */

use Magento\Framework\Escaper;

?>
<script id="autocomplete-item-template" type="text/x-magento-template" data-url="<?=$escaper->escapeUrl($block->getAjaxUrl())?>">
    <% if (data.type === 'product') { %>
        <li class="<%- data.row_class %> product-item" id="qs-option-<%- data.index %>" data-url="<%- data.url %>" role="option">
            <% if (data.image) { %>
                <img class="qs-option-image" src="<%- data.image %>" alt="<%- data.title %>">
            <% } %>

            <div class="qs-option-info-container">
                <span class="qs-option-name"><%= data.title %></span>

                <div class="price-box">
                    <% if (Math.abs(data.final_price - data.price) < 0.0001) { %>
                        <span class="price-container">
                            <span class="price-wrapper">
                                <span class="price"><%= autocompleteFormatPrice(data.price) %></span>
                            </span>
                        </span>
                    <% } else { %>
                        <span class="special-price">
                            <span class="price-container">
                                <span class="price-label"><?=__('Special Price')?></span>
                                <span class="price-wrapper">
                                    <span class="price"><%= autocompleteFormatPrice(data.final_price) %></span>
                                </span>
                            </span>
                        </span>

                        <span class="old-price sly-old-price">
                            <span class="price-container">
                                <span class="price-label"><?=__('Regular Price')?></span>
                                <span class="price-wrapper">
                                    <span class="price"><%= autocompleteFormatPrice(data.price) %></span>
                                </span>
                            </span>
                        </span>
                    <% } %>
                </div>
            </div>
        </li>
    <% } else if (data.type === 'suggestion') { %>
        <li class="<%- data.row_class %>" id="qs-option-<%- data.index %>" role="option">
            <span class="qs-option-name"><%= data.title %></span>
            <span aria-hidden="true" class="amount"><%- data.num_results %></span>
        </li>
    <% } else if (data.type === 'suggestion_group') { %>
        <li class="<%- data.row_class %> qs-suggestion-heading" id="qs-option-<%- data.index %>" role="option">
            <span class="qs-option-name"><%= data.title %></span>
            <span aria-hidden="true" class="amount"><%- data.num_results %></span>
        </li>
        <% _.each (data.suggestions, function (suggestion, index) { %>
            <li class="<%- suggestion.row_class %> qs-suggestion-item"
                id="qs-option-<%- data.index %>-<%- index %>"
                <% if (suggestion.url) { %>
                    data-url="<%- suggestion.url %>"
                <% } %>
                role="option"
            >
                <span class="qs-option-name"><%= suggestion.title %></span>
            </li>
        <% }); %>
    <% } %>
</script>
<script type="text/javascript">
    require(['Magento_Catalog/js/price-utils'], function(priceUtils){
        window['autocompleteFormatPrice'] = function(price) {
            return priceUtils.formatPrice(price, <?=$block->getJsonPriceFormat()?>);
        };
    });
</script>