vendor/shopware/storefront/Resources/views/storefront/page/product-detail/review/review.html.twig line 1
{% sw_extends '@Storefront/storefront/utilities/offcanvas.html.twig' %}{% block utilities_offcanvas_content %}{% block page_product_detail_review_container %}{# TODO NEXT-16993 - replace items per list config value #}{% set reviewsPerListPage = 10 %}{# TODO NEXT-16994 - replace current list page value #}{% set currentListPage = 1 %}{% set productReviewCount = reviews.totalReviews %}{% if productReviewCount > 0 %}{% set productAvgRating = reviews.matrix.averageRating|round(2, 'common') %}{% endif %}{# TODO NEXT-16994 - replace language flag #}{% set foreignReviewsCount = 150 %}<div class="product-detail-review tab-pane-container">{% block page_product_detail_review_tab_pane %}<div class="row product-detail-review-content js-review-container">{% block page_product_detail_review_aside %}<div class="col-sm-4">{% block page_product_detail_review_widget_container %}{% sw_include '@Storefront/storefront/page/product-detail/review/review-widget.html.twig' %}{% endblock %}</div>{% endblock %}{% block page_product_detail_review_main %}<div class="col product-detail-review-main js-review-content">{% block page_product_detail_review_alert %}{% if ratingSuccess == 1 %}{% sw_include '@Storefront/storefront/utilities/alert.html.twig' with {type: "success",content: "detail.reviewFormSuccessAlert"|trans|sw_sanitize} %}{% elseif ratingSuccess == 2 %}{% sw_include '@Storefront/storefront/utilities/alert.html.twig' with {type: "success",content: "detail.reviewFormSuccessUpdateAlert"|trans|sw_sanitize} %}{% elseif ratingSuccess == -1 %}{% sw_include '@Storefront/storefront/utilities/alert.html.twig' with {type: "danger",content: "detail.reviewFormErrorAlert"|trans|sw_sanitize} %}{% endif %}{% endblock %}{% block page_product_detail_review_form_container %}<div class="collapse multi-collapse{% if ratingSuccess == -1 %} show{% endif %}"id="review-form">{% if context.customer and not context.customer.guest %}<div class="product-detail-review-form">{% sw_include '@Storefront/storefront/page/product-detail/review/review-form.html.twig' %}</div>{% else %}<div class="product-detail-review-login">{% sw_include '@Storefront/storefront/page/product-detail/review/review-login.html.twig' %}</div>{% endif %}</div>{% endblock %}{% block page_product_detail_review_list_container %}<div id="review-list"class="collapse multi-collapse product-detail-review-list{% if ratingSuccess != -1 %} show{% endif %}">{% block page_product_detail_review_list %}{% block page_product_detail_review_list_actions %}<div class="row align-items-center product-detail-review-actions">{% set formAjaxSubmitOptions = {replaceSelectors: [".js-review-container"],submitOnChange: true} %}{% block page_product_detail_review_list_action_language %}<div class="col product-detail-review-language">{% if foreignReviewsCount > 0 %}<form class="product-detail-review-language-form"action="{{ path('frontend.product.reviews', { productId: reviews.productId, parentId: reviews.parentId }) }}"method="post"data-form-ajax-submit="true"data-form-ajax-submit-options='{{ formAjaxSubmitOptions|json_encode }}'>{% if app.request.get('limit') %}<input type="hidden" name="limit" value="{{ app.request.get('limit') }}">{% endif %}{% if app.request.get('sort') %}<input type="hidden" name="sort" value="{{ app.request.get('sort') }}">{% endif %}<div class="form-check form-switch">{# TODO NEXT-16994 - set checked and disabled state #}<input type="checkbox"class="form-check-input"id="showForeignReviews"value="filter-language"name="language"{% if app.request.get('language') %}checked="checked"{% endif %}><label class="custom-control-label form-label"for="showForeignReviews"><small>{{ "detail.reviewLanguageFilterLabel"|trans|sw_sanitize }}</small></label></div></form>{% endif %}</div>{% endblock %}{% block page_product_detail_review_list_action_sortby %}{% if productReviewCount > 0 %}<div class="col-12 col-md-auto product-detail-review-sortby">{% set formAjaxSubmitOptions = {replaceSelectors: [".js-review-info",".js-review-teaser",".js-review-content"],submitOnChange: true} %}{% block page_product_detail_review_list_action_sortby_form %}<form class="form-inline product-detail-review-sortby-form"action="{{ path('frontend.product.reviews', { productId: reviews.productId, parentId: reviews.parentId }) }}"method="post"data-form-ajax-submit="true"data-form-ajax-submit-options='{{ formAjaxSubmitOptions|json_encode }}'>{% if app.request.get('limit') %}<input type="hidden" name="limit" value="{{ app.request.get('limit') }}">{% endif %}{% if app.request.get('language') %}<input type="hidden" name="language" value="{{ app.request.get('language') }}">{% endif %}{% if app.request.get('points') %}{% for points in app.request.get('points') %}<input type="hidden" name="points[]" value="{{ points }}">{% endfor %}{% endif %}{% block page_product_detail_review_list_action_sortby_label %}<label class="form-label product-detail-review-sortby-label"for="reviewsSortby"><small>{{ "detail.reviewSortLabel"|trans|sw_sanitize }}</small></label>{% endblock %}{% block page_product_detail_review_list_action_sortby_select %}<select class="form-select form-select-sm"name="sort"id="reviewsSortby"><option value="createdAt"{% if reviews.criteria.sorting.0.field == 'createdAt' %} selected{% endif %}>{{ "detail.reviewSortNewLabel"|trans|sw_sanitize }}</option><option value="points"{% if reviews.criteria.sorting.0.field== 'points' %} selected{% endif %}>{{ "detail.reviewSortTopRatedLabel"|trans|sw_sanitize }}</option></select>{% endblock %}</form>{% endblock %}</div>{% endif %}{% endblock %}</div><hr/>{# TODO NEXT-16994 - calculate reviews in current language in list #}{% set listReviewsCount = productReviewCount - foreignReviewsCount %}{# TODO NEXT-16994 - fix if reviews in foreign language are more than in customer language #}{% if listReviewsCount < 0 %}{% set listReviewsCount = 0 %}{% endif %}<p class="text-right product-detail-review-counter">{% if (listReviewsCount > 1 and listReviewsCount > reviewsPerListPage) %}<small><strong>{{ currentListPage }}</strong> - <strong>{{ reviewsPerListPage }}</strong> {{ "detail.reviewCountBefore"|trans|sw_sanitize }} <strong>{{ listReviewsCount }}</strong> {{ "detail.reviewCountAfter"|trans({'%count%': listReviewsCount })|sw_sanitize }}</small>{% elseif listReviewsCount > 0 %} {# TODO (NEXT-16994) fix detail.reviewCountAfter snippet for listReviewsCount = 0#}<small><strong>{{ listReviewsCount }}</strong> {{ "detail.reviewCountAfter"|trans({'%count%': listReviewsCount })|sw_sanitize }}</small>{% endif %}</p>{% endblock %}{% block page_product_detail_review_list_content %}{% for review in reviews %}<div class="product-detail-review-list-content">{% sw_include '@Storefront/storefront/page/product-detail/review/review-item.html.twig' %}</div>{% endfor %}{% endblock %}{% block page_product_detail_review_list_paging %}{% set criteria = reviews.criteria %}{% set totalPages = (productReviewCount/criteria.limit)|round(0,'ceil') %}{% if totalPages > 1 %}{% set formAjaxSubmitOptions = {replaceSelectors: ".js-review-container",submitOnChange: true} %}{% block page_product_detail_review_list_paging_form %}<div class="product-detail-review-pagination"><form class="product-detail-review-pagination-form"action="{{ path('frontend.product.reviews', { productId: reviews.productId, parentId: reviews.parentId }) }}"method="post"data-form-ajax-submit="true"data-form-ajax-submit-options='{{ formAjaxSubmitOptions|json_encode }}'>{% if app.request.get('limit') %}<input type="hidden" name="limit" value="{{ app.request.get('limit') }}">{% endif %}{% if app.request.get('language') %}<input type="hidden" name="language" value="{{ app.request.get('language') }}">{% endif %}{% if app.request.get('sort') %}<input type="hidden" name="sort" value="{{ app.request.get('sort') }}">{% endif %}{% if app.request.get('points') %}{% for points in app.request.get('points') %}<input type="hidden" name="points[]" value="{{ points }}">{% endfor %}{% endif %}{% sw_include '@Storefront/storefront/component/pagination.html.twig' with {entities: reviews,criteria: criteria,total: productReviewCount,} %}</form></div>{% endblock %}{% endif %}{% endblock %}{% endblock %}{% if productReviewCount <= 0 %}{% block page_product_detail_review_list_empty %}{% sw_include '@Storefront/storefront/utilities/alert.html.twig' with {type: "info",content: "detail.reviewListEmpty"|trans|sw_sanitize} %}{% endblock %}{% endif %}</div>{% endblock %}</div>{% endblock %}</div>{% endblock %}</div>{% endblock %}{% endblock %}