Florian Eisenmenger 4 лет назад
Родитель
Сommit
f68db8e0b4
23 измененных файлов: 1343 добавлений и 74 удалений
  1. +1
    -0
      zenitPlatformAtmosSet1/src/Resources/app/storefront/src/scss/base.scss
  2. +9
    -3
      zenitPlatformAtmosSet1/src/Resources/app/storefront/src/scss/layout/_footer.scss
  3. +33
    -9
      zenitPlatformAtmosSet1/src/Resources/app/storefront/src/scss/page/product-detail/_product-detail.scss
  4. +26
    -0
      zenitPlatformAtmosSet1/src/Resources/app/storefront/src/scss/page/product-detail/_tabs.scss
  5. +46
    -0
      zenitPlatformAtmosSet1/src/Resources/views/storefront/component/buy-widget/buy-widget-price.html.twig
  6. +202
    -14
      zenitPlatformAtmosSet1/src/Resources/views/storefront/component/buy-widget/buy-widget.html.twig
  7. +3
    -0
      zenitPlatformAtmosSet1/src/Resources/views/storefront/page/checkout/cart/index.html.twig
  8. +35
    -0
      zenitPlatformAtmosSet1/src/Resources/views/storefront/page/product-detail/buy-widget-price.html.twig
  9. +207
    -0
      zenitPlatformAtmosSet1/src/Resources/views/storefront/page/product-detail/buy-widget.html.twig
  10. +39
    -0
      zenitPlatformAtmosSet1/src/Resources/views/storefront/page/product-detail/tabs.html.twig
  11. +89
    -0
      zenitPlatformAtmosSet1/src/Resources/views/storefront/page/product-detail/zen-custom-global-tab.html.twig
  12. +1
    -31
      zenitPlatformAtmosSet2/src/Resources/app/storefront/src/scss/layout/_container.scss
  13. +3
    -1
      zenitPlatformAtmosSet2/src/Resources/app/storefront/src/scss/layout/_footer.scss
  14. +0
    -2
      zenitPlatformAtmosSet2/src/Resources/app/storefront/src/scss/layout/_header.scss
  15. +4
    -0
      zenitPlatformAtmosSet2/src/Resources/app/storefront/src/scss/overrides.scss
  16. +24
    -0
      zenitPlatformAtmosSet2/src/Resources/app/storefront/src/scss/page/product-detail/_product-detail.scss
  17. +46
    -0
      zenitPlatformAtmosSet2/src/Resources/views/storefront/component/buy-widget/buy-widget-price.html.twig
  18. +202
    -14
      zenitPlatformAtmosSet2/src/Resources/views/storefront/component/buy-widget/buy-widget.html.twig
  19. +3
    -0
      zenitPlatformAtmosSet2/src/Resources/views/storefront/page/checkout/cart/index.html.twig
  20. +35
    -0
      zenitPlatformAtmosSet2/src/Resources/views/storefront/page/product-detail/buy-widget-price.html.twig
  21. +207
    -0
      zenitPlatformAtmosSet2/src/Resources/views/storefront/page/product-detail/buy-widget.html.twig
  22. +39
    -0
      zenitPlatformAtmosSet2/src/Resources/views/storefront/page/product-detail/tabs.html.twig
  23. +89
    -0
      zenitPlatformAtmosSet2/src/Resources/views/storefront/page/product-detail/zen-custom-global-tab.html.twig

+ 1
- 0
zenitPlatformAtmosSet1/src/Resources/app/storefront/src/scss/base.scss Просмотреть файл

@@ -16,4 +16,5 @@
@import 'page/checkout/register';
@import 'page/checkout/cart';
@import 'page/product-detail/product-detail';
@import 'page/product-detail/tabs';
@import 'page/product-detail/review';

+ 9
- 3
zenitPlatformAtmosSet1/src/Resources/app/storefront/src/scss/layout/_footer.scss Просмотреть файл

@@ -94,8 +94,14 @@
&.icon-instagram {
padding: 5px;
}
}
svg {
color: $sw-color-brand-primary;
svg {
color: $sw-color-brand-primary;
}
&:hover {
background-color: $sw-color-brand-primary;
svg {
color: #fff;
}
}
}
}

+ 33
- 9
zenitPlatformAtmosSet1/src/Resources/app/storefront/src/scss/page/product-detail/_product-detail.scss Просмотреть файл

@@ -2,7 +2,7 @@
.product-detail-media {
padding-right: 40px;
.gallery-slider-image {
width: 100%;
width: 100%;
}
.aku-cms-factory-element {
display: flex;
@@ -20,7 +20,7 @@
padding: 9px 9px 6px 9px;
transition: border 0.2s ease-in-out;
&.active {
border-color: #b1c3d9;
border-color: #b1c3d9;
}
img {
width: 55px;
@@ -69,12 +69,12 @@
}
}
.modal-content {
.modal-title {
margin-bottom: 10px;
}
h2 {
margin-top: 25px;
}
.modal-title {
margin-bottom: 10px;
}
h2 {
margin-top: 25px;
}
}
}
}
@@ -84,15 +84,20 @@
background-color: #E9F4FC;
padding-top: 40px;
.product-detail-short-description {
border-bottom: 1px solid #B1C3D9;
border-bottom: 1px solid #B1C3D9;
}
.product-detail-name {
font-size: 60px;
line-height: 54px;
color: $sw-color-brand-primary;
}
.product-detail-price-container {
display: flex;
align-items: baseline;
}
.product-detail-price {
color: $sw-color-brand-primary;
margin-right: 15px;
}
.product-detail-tax-link {
color: #222;
@@ -101,6 +106,19 @@
text-decoration: none;
}
}
.product-detail-form-container {
padding: 35px 0;
margin-top: 25px;
border-top: 1px solid #B1C3D9;
border-bottom: 1px solid #B1C3D9;
}
.product-detail-delivery-information {
margin-bottom: 0;
}
.product-wishlist {
border-top: 1px solid #B1C3D9;
padding: 25px 0;
}
.btn-primary {
background: transparent;
color: $sw-color-brand-primary;
@@ -117,5 +135,11 @@
color: #fff;
}
}
.product-wishlist-btn-content {
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
}

+ 26
- 0
zenitPlatformAtmosSet1/src/Resources/app/storefront/src/scss/page/product-detail/_tabs.scss Просмотреть файл

@@ -0,0 +1,26 @@
.cms-block-product-description-reviews .cms-block-container {
background: #e9f4fc;
padding-top: 3rem;
padding-bottom: 3rem;
color: #222;
}
.card-tabs {
.nav-link {
text-transform: uppercase;
letter-spacing: 1.6px;
}
.tab-content {
h2 {
font-family: $sw-font-family-base;
font-size: 1.375rem;
font-weight: 500;
color: #222;
}
h3, h4, h5, h6 {
color: #222;
}
.product-detail-description-text {
max-width: 900px;
}
}
}

+ 46
- 0
zenitPlatformAtmosSet1/src/Resources/views/storefront/component/buy-widget/buy-widget-price.html.twig Просмотреть файл

@@ -0,0 +1,46 @@
{% sw_extends '@Storefront/storefront/component/buy-widget/buy-widget-price.html.twig' %}
{% block buy_widget_price_content %}
{% set listPrice = price.listPrice %}
<p class="product-detail-price{% if listPrice.percentage > 0 %} with-list-price{% endif %}">
{{ price.unitPrice|currency }}{{ "general.star"|trans|sw_sanitize }}
</p>
{% set weekProductCount = 0 %}
{% if (product.customFields.custom_weightlossplan_day1_image != null) %}{% set weekProductCount = weekProductCount + 1 %}{% endif %}
{% if (product.customFields.custom_weightlossplan_day2_image != null) %}{% set weekProductCount = weekProductCount + 1 %}{% endif %}
{% if (product.customFields.custom_weightlossplan_day3_image != null) %}{% set weekProductCount = weekProductCount + 1 %}{% endif %}
{% if (product.customFields.custom_weightlossplan_day4_image != null) %}{% set weekProductCount = weekProductCount + 1 %}{% endif %}
{% if (product.customFields.custom_weightlossplan_day5_image != null) %}{% set weekProductCount = weekProductCount + 1 %}{% endif %}
{% if (product.customFields.custom_weightlossplan_day6_image != null) %}{% set weekProductCount = weekProductCount + 1 %}{% endif %}
{% if weekProductCount >= 1 %}
<span class="spwn-week-count"><small>{{ (price.unitPrice / weekProductCount) | json_encode() | round(2) | number_format(2, ',', '.') }} € pro Tag</small></span>
{% endif %}
{% if listPrice.percentage > 0 %}
{% block buy_widget_was_price %}
{% block buy_widget_was_price_badge %}
<span class="list-price-badge">&#37;</span>
{% endblock %}
{% set afterListPriceSnippetExists = "listing.afterListPrice"|trans|length > 0 %}
{% set beforeListPriceSnippetExists = "listing.beforeListPrice"|trans|length > 0 %}
{% block buy_widget_was_price_wrapper %}
<span class="product-detail-list-price-wrapper">
{% if beforeListPriceSnippetExists %}{{"listing.beforeListPrice"|trans|trim}}{% endif %}
<span{% if not (afterListPriceSnippetExists or beforeListPriceSnippetExists) %} class="list-price-price"{% endif %}>{{ listPrice.price|currency }}{{ "general.star"|trans|sw_sanitize }}</span>
{% if afterListPriceSnippetExists %}
{{"listing.afterListPrice"|trans|trim}}
{% endif %}
<span class="list-price-percentage">{{ "detail.listPricePercentage"|trans({'%price%': listPrice.percentage })|sw_sanitize }}</span>
</span>
{% endblock %}
{% endblock %}
{% endif %}
{% endblock %}

+ 202
- 14
zenitPlatformAtmosSet1/src/Resources/views/storefront/component/buy-widget/buy-widget.html.twig Просмотреть файл

@@ -1,21 +1,209 @@
{% sw_extends '@Storefront/storefront/component/buy-widget/buy-widget.html.twig' %}
{% block buy_widget_price %}
<div class="product-detail-price-container">
{% if page.product.translated.customFields.deposittype %}
<div class="product-detail-deposittype">
{{ page.product.translated.customFields.deposittype }}
</div>
{% block buy_widget %}
<div class="product-detail-buy{% if elementId %}-{{ elementId }}{% endif %} js-magnifier-zoom-image-container">
{% block buy_widget_rich_snippets %}
{% block buy_widget_rich_snippets_brand %}
{% if product.manufacturer %}
<meta itemprop="brand"
content="{{ product.manufacturer.translated.name }}"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_gtin13 %}
{% if product.ean %}
<meta itemprop="gtin13"
content="{{ product.ean }}"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_mpn %}
{% if product.manufacturerNumber %}
<meta itemprop="mpn"
content="{{ product.manufacturerNumber }}"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_weight %}
{% if product.weight %}
<meta itemprop="weight"
content="{{ product.weight }} kg"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_height %}
{% if product.height %}
<meta itemprop="height"
content="{{ product.height }} mm"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_width %}
{% if product.width %}
<meta itemprop="width"
content="{{ product.width }} mm"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_depth %}
{% if product.length %}
<meta itemprop="depth"
content="{{ product.length }} mm"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_release_date %}
<meta itemprop="releaseDate"
content="{{ product.releaseDate|format_date(pattern="Y-MM-dd", locale=app.request.locale) }}"/>
{% endblock %}
{% endblock %}
{% if not feature('FEATURE_NEXT_16992') %}
{# @deprecated tag:v6.5.0 tag:)(FEATURE_NEXT_16992) - Block will be removed in v6.5.0 #}
{% block buy_widget_not_available %}
{% endblock %}
{% endif %}
{{ parent() }}
{% if page.product.translated.customFields.deposit %}
{% set deposit = page.product.translated.customFields.deposit|currency %}
<div class="product-detail-deposit">
{{ "FlowsiteDepositSystemBasic.plusDeposit"|trans({
'%deposit%': deposit
})|sw_sanitize }}
{% block buy_widget_buy_container %}
<div itemprop="offers"
itemscope
itemtype="{% if product.calculatedPrices|length > 1 %}http://schema.org/AggregateOffer{% else %}http://schema.org/Offer{% endif %}">
{% block buy_widget_data %}
{% block buy_widget_data_rich_snippet_url %}
<meta itemprop="url"
content="{{ seoUrl('frontend.detail.page', { productId: product.id }) }}"/>
{% endblock %}
{% block buy_widget_data_rich_snippet_price_range %}
{% if product.calculatedPrices|length > 1 %}
{% set lowestPrice = false %}
{% set highestPrice = false %}
{% for price in product.calculatedPrices %}
{% if not lowestPrice or price.unitPrice < lowestPrice %}
{% set lowestPrice = price.unitPrice %}
{% endif %}
{% if not highestPrice or price.unitPrice > highestPrice %}
{% set highestPrice = price.unitPrice %}
{% endif %}
{% endfor %}
<meta itemprop="lowPrice" content="{{ lowestPrice }}"/>
<meta itemprop="highPrice" content="{{ highestPrice }}"/>
<meta itemprop="offerCount" content="{{ product.calculatedPrices|length }}"/>
{% endif %}
{% endblock %}
{% block buy_widget_data_rich_snippet_price_currency %}
<meta itemprop="priceCurrency"
content="{{ context.currency.translated.shortName }}"/>
{% endblock %}
{% block buy_widget_price %}
<div class="product-detail-price-container">
{% sw_include '@Storefront/storefront/component/buy-widget/buy-widget-price.html.twig' %}
</div>
{% endblock %}
{% block buy_widget_tax %}
<div class="product-detail-tax-container">
{% if context.taxState == "gross" %}
{% set taxText = "general.grossTaxInformation"|trans|sw_sanitize %}
{% else %}
{% set taxText = "general.netTaxInformation"|trans|sw_sanitize %}
{% endif %}
<p class="product-detail-tax">
{% block buy_widget_tax_link %}
<a class="product-detail-tax-link"
href="{{ path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') }) }}"
title="{{ taxText }}"
data-toggle="modal"
data-url="{{ path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') }) }}">
{{ taxText }}
</a>
{% endblock %}
</p>
</div>
{% endblock %}
{% block buy_widget_deposit %}
{% if page.product.translated.customFields.deposit %}
{% set deposit = page.product.translated.customFields.deposit|currency %}
<div class="product-detail-deposit">
{{ "FlowsiteDepositSystemBasic.plusDeposit"|trans({
'%deposit%': deposit
})|sw_sanitize }}
</div>
{% endif %}
{% endblock %}
{% set remoteClickOptions = {
selector: "#review-tab-" ~ product.id,
scrollToElement: true
} %}
{% set reviewTabHref = "#review-tab-" ~ product.id ~ "-pane" %}
{% block buy_widget_reviews %}
{% if product.ratingAverage > 0 and totalReviews > 0 and config('core.listing.showReview') %}
<div class="product-detail-reviews">
{% sw_include '@Storefront/storefront/component/review/rating.html.twig' with {
points: product.ratingAverage,
style: 'text-primary'
} %}
<a data-toggle="tab"
class="product-detail-reviews-link"
data-offcanvas-tabs="true"
data-remote-click="true"
data-remote-click-options='{{ remoteClickOptions|json_encode }}'
href="{{ reviewTabHref }}"
aria-controls="review-tab-pane">
{{ totalReviews }}
{{ "detail.reviewLinkText"|trans({'%count%': totalReviews})|sw_sanitize }}
</a>
</div>
{% endif %}
{% endblock %}
{% endblock %}
{% block buy_widget_configurator_include %}
{% if product.parentId and configuratorSettings|length > 0 %}
<div class="product-detail-configurator-container">
{% sw_include '@Storefront/storefront/component/buy-widget/configurator.html.twig' %}
</div>
{% endif %}
{% endblock %}
{% block buy_widget_buy_form %}
{% if product.active %}
<div class="product-detail-form-container">
{% sw_include '@Storefront/storefront/component/buy-widget/buy-widget-form.html.twig' %}
</div>
{% endif %}
{% endblock %}
</div>
{% endblock %}
{% block buy_widget_delivery_informations %}
<div class="product-detail-delivery-information">
{% sw_include '@Storefront/storefront/component/delivery-information.html.twig' %}
</div>
{% endblock %}
{% if config('core.cart.wishlistEnabled') %}
{% block buy_widget_wishlist %}
{% sw_include '@Storefront/storefront/component/product/card/wishlist.html.twig' with {
showText: true,
size: 'md',
productId: product.id
} %}
{% endblock %}
{% endif %}
{% block buy_widget_ordernumber_container %}
{% endblock %}
</div>
{% endblock %}

+ 3
- 0
zenitPlatformAtmosSet1/src/Resources/views/storefront/page/checkout/cart/index.html.twig Просмотреть файл

@@ -61,3 +61,6 @@
</div>
</div>
{% endblock %}
{% block page_checkout_cart_shipping_costs %}
{% endblock %}

+ 35
- 0
zenitPlatformAtmosSet1/src/Resources/views/storefront/page/product-detail/buy-widget-price.html.twig Просмотреть файл

@@ -0,0 +1,35 @@
{% sw_extends '@Storefront/storefront/page/product-detail/buy-widget-price.html.twig' %}
{% block page_product_detail_price_content %}
{% set listPrice = price.listPrice %}
<p class="product-detail-price{% if listPrice.percentage > 0 %} with-list-price{% endif %}">
{{ price.unitPrice|currency }}{{ "general.star"|trans|sw_sanitize }}
</p>
{% if listPrice.percentage > 0 %}
{% block page_product_detail_was_price %}
{% block page_product_detail_was_price_badge %}
<span class="list-price-badge">&#37;</span>
{% endblock %}
{% set afterListPriceSnippetExists = "listing.afterListPrice"|trans|length > 0 %}
{% set beforeListPriceSnippetExists = "listing.beforeListPrice"|trans|length > 0 %}
{% block page_product_detail_was_price_wrapper %}
<span class="product-detail-list-price-wrapper">
{% if beforeListPriceSnippetExists %}{{"listing.beforeListPrice"|trans|trim}}{% endif %}
<span{% if not (afterListPriceSnippetExists or beforeListPriceSnippetExists) %} class="list-price-price"{% endif %}>{{ listPrice.price|currency }}{{ "general.star"|trans|sw_sanitize }}</span>
{% if afterListPriceSnippetExists %}
{{"listing.afterListPrice"|trans|trim}}
{% endif %}
<span class="list-price-percentage">{{ "detail.listPricePercentage"|trans({'%price%': listPrice.percentage })|sw_sanitize }}</span>
</span>
{% endblock %}
{% endblock %}
{% endif %}
{% endblock %}

+ 207
- 0
zenitPlatformAtmosSet1/src/Resources/views/storefront/page/product-detail/buy-widget.html.twig Просмотреть файл

@@ -0,0 +1,207 @@
{% sw_extends '@Storefront/storefront/page/product-detail/buy-widget.html.twig' %}
{% block page_product_detail_buy_inner %}
<div class="js-magnifier-zoom-image-container">
{% block page_product_detail_rich_snippets %}
{% block page_product_detail_rich_snippets_brand %}
{% if page.product.manufacturer %}
<meta itemprop="brand"
content="{{ page.product.manufacturer.translated.name }}"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_gtin13 %}
{% if page.product.ean %}
<meta itemprop="gtin13"
content="{{ page.product.ean }}"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_mpn %}
{% if page.product.manufacturerNumber %}
<meta itemprop="mpn"
content="{{ page.product.manufacturerNumber }}"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_weight %}
{% if page.product.weight %}
<meta itemprop="weight"
content="{{ page.product.weight }} kg"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_height %}
{% if page.product.height %}
<meta itemprop="height"
content="{{ page.product.height }} mm"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_width %}
{% if page.product.width %}
<meta itemprop="width"
content="{{ page.product.width }} mm"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_depth %}
{% if page.product.length %}
<meta itemprop="depth"
content="{{ page.product.length }} mm"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_release_date %}
<meta itemprop="releaseDate"
content="{{ page.product.releaseDate|format_date(pattern="Y-MM-dd", locale=app.request.locale) }}"/>
{% endblock %}
{% endblock %}
{% if not feature('FEATURE_NEXT_16992') %}
{# @deprecated tag:v6.5.0 tag:)(FEATURE_NEXT_16992) - Block will be removed in v6.5.0 #}
{% block page_product_detail_not_available %}
{% endblock %}
{% endif %}
{% block page_product_detail_buy_container %}
<div itemprop="offers"
itemscope
itemtype="{% if page.product.calculatedPrices|length > 1 %}http://schema.org/AggregateOffer{% else %}http://schema.org/Offer{% endif %}">
{% block page_product_detail_data %}
{% block page_product_detail_data_rich_snippet_url %}
<meta itemprop="url"
content="{{ seoUrl('frontend.detail.page', { productId: page.product.id }) }}"/>
{% endblock %}
{% block page_product_detail_data_rich_snippet_price_range %}
{% if page.product.calculatedPrices|length > 1 %}
{% set lowestPrice = false %}
{% set highestPrice = false %}
{% for price in page.product.calculatedPrices %}
{% if not lowestPrice or price.unitPrice < lowestPrice %}
{% set lowestPrice = price.unitPrice %}
{% endif %}
{% if not highestPrice or price.unitPrice > highestPrice %}
{% set highestPrice = price.unitPrice %}
{% endif %}
{% endfor %}
<meta itemprop="lowPrice" content="{{ lowestPrice }}"/>
<meta itemprop="highPrice" content="{{ highestPrice }}"/>
<meta itemprop="offerCount" content="{{ page.product.calculatedPrices|length }}"/>
{% endif %}
{% endblock %}
{% block page_product_detail_data_rich_snippet_price_currency %}
<meta itemprop="priceCurrency"
content="{{ context.currency.translated.shortName }}"/>
{% endblock %}
{% block page_product_detail_price %}
<div class="product-detail-price-container">
{% sw_include '@Storefront/storefront/page/product-detail/buy-widget-price.html.twig' %}
</div>
{% endblock %}
{% block page_product_detail_tax %}
<div class="product-detail-tax-container">
{% if context.taxState == "gross" %}
{% set taxText = "general.grossTaxInformation"|trans|sw_sanitize %}
{% else %}
{% set taxText = "general.netTaxInformation"|trans|sw_sanitize %}
{% endif %}
<p class="product-detail-tax">
{% block page_product_detail_tax_link %}
<a class="product-detail-tax-link"
href="{{ path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') }) }}"
title="{{ taxText }}"
data-toggle="modal"
data-url="{{ path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') }) }}">
{{ taxText }}
</a>
{% endblock %}
</p>
</div>
{% endblock %}
{% block page_product_detail_deposit %}
{% if page.product.translated.customFields.deposit %}
{% set deposit = page.product.translated.customFields.deposit|currency %}
<div class="product-detail-deposit">
{{ "FlowsiteDepositSystemBasic.plusDeposit"|trans({
'%deposit%': deposit
})|sw_sanitize }}
</div>
{% endif %}
{% endblock %}
{% set remoteClickOptions = {
selector: "#review-tab",
scrollToElement: true
} %}
{% block page_product_detail_reviews %}
{% if page.product.ratingAverage > 0 and page.reviews.totalReviews > 0 and config('core.listing.showReview') %}
<div class="product-detail-reviews">
{% sw_include '@Storefront/storefront/component/review/rating.html.twig' with {
points: page.product.ratingAverage,
style: 'text-primary'
} %}
<a data-toggle="tab"
class="product-detail-reviews-link"
data-offcanvas-tabs="true"
data-remote-click="true"
data-remote-click-options='{{ remoteClickOptions|json_encode }}'
href="#review-tab-pane"
aria-controls="review-tab-pane">
{{ page.reviews.totalReviews }}
{{ "detail.reviewLinkText"|trans({'%count%': page.reviews.totalReviews})|sw_sanitize }}
</a>
</div>
{% endif %}
{% endblock %}
{% endblock %}
{% block page_product_detail_configurator_include %}
{% if page.product.parentId and page.configuratorSettings|length > 0 %}
<div class="product-detail-configurator-container">
{% sw_include '@Storefront/storefront/page/product-detail/configurator.html.twig' %}
</div>
{% endif %}
{% endblock %}
{% block page_product_detail_buy_form %}
{% if page.product.active %}
<div class="product-detail-form-container">
{% sw_include '@Storefront/storefront/page/product-detail/buy-widget-form.html.twig' %}
</div>
{% endif %}
{% endblock %}
</div>
{% endblock %}
{% block page_product_detail_delivery_informations %}
<div class="product-detail-delivery-information">
{% sw_include '@Storefront/storefront/component/delivery-information.html.twig' %}
</div>
{% endblock %}
{% if config('core.cart.wishlistEnabled') %}
{% block page_product_detail_wishlist %}
{% sw_include '@Storefront/storefront/component/product/card/wishlist.html.twig' with {
showText: true,
size: 'md',
productId: page.product.id
} %}
{% endblock %}
{% endif %}
{% block page_product_detail_ordernumber_container %}
{% endblock %}
</div>
{% endblock %}

+ 39
- 0
zenitPlatformAtmosSet1/src/Resources/views/storefront/page/product-detail/tabs.html.twig Просмотреть файл

@@ -0,0 +1,39 @@
{% sw_extends '@Storefront/storefront/page/product-detail/tabs.html.twig' %}
{% block zen_page_product_detail_tabs_navigation_custom_tab_global %}
{% if page.product.translated.customFields.custom_nutrition_energy_kcal|length > 0 %}
{% set customTab = {
'translated': {
title: "zentheme.atmos.content.customTabTitle"|trans({"%placeholder%": config('zenitPlatformAtmos.config.customTabTitle')}),
text: "zentheme.atmos.content.customTabText"|trans({"%placeholder%": config('zenitPlatformAtmos.config.customTabText')})
}
} %}
<li class="nav-item">
<a class="nav-link product-detail-tab-navigation-link"
id="custom-field-global-tab"
data-toggle="tab"
data-offcanvas-tabs="true"
href="#custom-field-global-tab-pane"
role="tab"
aria-controls="custom-field-global-tab-pane"
aria-selected="false">
<span>{{ customTab.translated.title }}</span>
<span class="product-detail-tab-navigation-icon">
{% sw_icon 'arrow-medium-right' style {'pack':'solid'} %}
</span>
</a>
</li>
{% endif %}
{% endblock %}
{% block zen_page_product_detail_tabs_content_custom_tab_global %}
{% if page.product.translated.customFields.custom_nutrition_energy_kcal|length > 0 %}
<div class="tab-pane fade show"
id="custom-field-global-tab-pane"
role="tabpanel"
aria-labelledby="custom-field-global-tab">
{% sw_include '@Storefront/storefront/page/product-detail/zen-custom-global-tab.html.twig' %}
</div>
{% endif %}
{% endblock %}

+ 89
- 0
zenitPlatformAtmosSet1/src/Resources/views/storefront/page/product-detail/zen-custom-global-tab.html.twig Просмотреть файл

@@ -0,0 +1,89 @@
{% sw_extends '@Storefront/storefront/utilities/offcanvas.html.twig' %}
{% block utilities_offcanvas_content %}
{% block zen_page_product_detail_custom_field_global_container %}
<div class="product-detail-custom-field1 tab-pane-container">
{% set customTab = {
'translated': {
title: "zentheme.atmos.content.customTabTitle"|trans({"%placeholder%": config('zenitPlatformAtmos.config.customTabTitle')}),
text: "zentheme.atmos.content.customTabText"|trans({"%placeholder%": config('zenitPlatformAtmos.config.customTabText')})
}
} %}
{% block zen_page_product_detail_custom_field_global_content %}
{% if page.product.translated.customFields.custom_nutrition_energy_kcal|length > 0 %}
<h3>{{ "customFields.custom_nutrition"|trans }} pro 100&thinsp;{% if (page.product.unit.name == "kg") or (page.product.unit.name == "g") %}g{% elseif page.product.unit.name == "Liter" %}ml{% endif %}:</h3>
<table class="table table-striped product-detail-properties-table">
<tbody>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_energy_kcal"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_energy_kcal|raw }}&thinsp;kcal / {{ page.product.translated.customFields.custom_nutrition_energy_kj|raw }}&thinsp;kJ
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_fat"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_fat|raw|number_format(1, ',', '.') }}&thinsp;g
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_fattyacids"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_fattyacids|raw|number_format(1, ',', '.') }}&thinsp;g
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_carbohydrates"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_carbohydrates|raw|number_format(1, ',', '.') }}&thinsp;g
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_sugar"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_sugar|raw|number_format(1, ',', '.') }}&thinsp;g
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_protein"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_protein|raw|number_format(1, ',', '.') }}&thinsp;g
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_salt"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_salt|raw|number_format(2, ',', '.') }}&thinsp;g
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_be"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_be|raw|number_format(1, ',', '.') }}&thinsp;BE
</td>
</tr>
</tbody>
</table>
{% endif %}
{% endblock %}
</div>
{% endblock %}
{% endblock %}

+ 1
- 31
zenitPlatformAtmosSet2/src/Resources/app/storefront/src/scss/layout/_container.scss Просмотреть файл

@@ -1,37 +1,7 @@
body.is-act-home {
body {
@include media-breakpoint-down(xs) {
.cms-section.bg-image {
background-position: center left;
}
}
@include media-breakpoint-up(sm) {
.content-main {
margin-left: -20px;
margin-right: -20px;
.cms-section-default.full-width {
padding-left: 5px;
padding-right: 5px;
}
}
}
@include media-breakpoint-up(md) {
.content-main {
margin-left: -40px;
margin-right: -40px;
.cms-section-default.full-width {
padding-left: 10px;
padding-right: 10px;
}
}
}
@include media-breakpoint-up(xl) {
.content-main {
margin-left: -80px;
margin-right: -80px;
.cms-section-default.full-width {
padding-left: 20px;
padding-right: 20px;
}
}
}
}

+ 3
- 1
zenitPlatformAtmosSet2/src/Resources/app/storefront/src/scss/layout/_footer.scss Просмотреть файл

@@ -62,7 +62,9 @@
a:not(.btn) {
margin-top: 16px;
margin-bottom: 0;
line-height: 15px;
font-size: 22px;
line-height: 24px;
font-weight: 500;
}
}
.footer-contact-form {


+ 0
- 2
zenitPlatformAtmosSet2/src/Resources/app/storefront/src/scss/layout/_header.scss Просмотреть файл

@@ -71,11 +71,9 @@
}
}
}
.is-lo-full-width .container {
max-width: 1120px;
}
.nav-header>.container {
padding-left: 0;
padding-right: 0;


+ 4
- 0
zenitPlatformAtmosSet2/src/Resources/app/storefront/src/scss/overrides.scss Просмотреть файл

@@ -14,6 +14,7 @@ html {
body {
background: #fff;
border-top: 5px solid $sw-color-brand-primary !important;
overflow-x:hidden;
}

h1 {
@@ -75,6 +76,9 @@ h6 {
font-weight: 600;
letter-spacing: 1px;
padding: 5px 32px !important;
&:hover {
color: #fff !important;
}
}

.aku-cms-factory-element,


+ 24
- 0
zenitPlatformAtmosSet2/src/Resources/app/storefront/src/scss/page/product-detail/_product-detail.scss Просмотреть файл

@@ -82,8 +82,13 @@
color: $sw-color-brand-secondary;
line-height: 40px !important;
}
.product-detail-price-container {
display: flex;
align-items: baseline;
}
.product-detail-price {
color: $sw-color-brand-primary;
margin-right: 15px;
}
.product-detail-tax-link {
color: #222;
@@ -92,6 +97,19 @@
text-decoration: none;
}
}
.product-detail-form-container {
padding: 35px 0;
margin-top: 25px;
border-top: 1px solid #86b04b;
border-bottom: 1px solid #86b04b;
}
.product-detail-delivery-information {
margin-bottom: 0;
}
.product-wishlist {
border-top: 1px solid #86b04b;
padding: 25px 0;
}
.btn-primary {
background: transparent;
color: $sw-color-brand-primary;
@@ -108,5 +126,11 @@
color: #fff;
}
}
.product-wishlist-btn-content {
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
}

+ 46
- 0
zenitPlatformAtmosSet2/src/Resources/views/storefront/component/buy-widget/buy-widget-price.html.twig Просмотреть файл

@@ -0,0 +1,46 @@
{% sw_extends '@Storefront/storefront/component/buy-widget/buy-widget-price.html.twig' %}
{% block buy_widget_price_content %}
{% set listPrice = price.listPrice %}
<p class="product-detail-price{% if listPrice.percentage > 0 %} with-list-price{% endif %}">
{{ price.unitPrice|currency }}{{ "general.star"|trans|sw_sanitize }}
</p>
{% set weekProductCount = 0 %}
{% if (product.customFields.custom_weightlossplan_day1_image != null) %}{% set weekProductCount = weekProductCount + 1 %}{% endif %}
{% if (product.customFields.custom_weightlossplan_day2_image != null) %}{% set weekProductCount = weekProductCount + 1 %}{% endif %}
{% if (product.customFields.custom_weightlossplan_day3_image != null) %}{% set weekProductCount = weekProductCount + 1 %}{% endif %}
{% if (product.customFields.custom_weightlossplan_day4_image != null) %}{% set weekProductCount = weekProductCount + 1 %}{% endif %}
{% if (product.customFields.custom_weightlossplan_day5_image != null) %}{% set weekProductCount = weekProductCount + 1 %}{% endif %}
{% if (product.customFields.custom_weightlossplan_day6_image != null) %}{% set weekProductCount = weekProductCount + 1 %}{% endif %}
{% if weekProductCount >= 1 %}
<span class="spwn-week-count"><small>{{ (price.unitPrice / weekProductCount) | json_encode() | round(2) | number_format(2, ',', '.') }} € pro Tag</small></span>
{% endif %}
{% if listPrice.percentage > 0 %}
{% block buy_widget_was_price %}
{% block buy_widget_was_price_badge %}
<span class="list-price-badge">&#37;</span>
{% endblock %}
{% set afterListPriceSnippetExists = "listing.afterListPrice"|trans|length > 0 %}
{% set beforeListPriceSnippetExists = "listing.beforeListPrice"|trans|length > 0 %}
{% block buy_widget_was_price_wrapper %}
<span class="product-detail-list-price-wrapper">
{% if beforeListPriceSnippetExists %}{{"listing.beforeListPrice"|trans|trim}}{% endif %}
<span{% if not (afterListPriceSnippetExists or beforeListPriceSnippetExists) %} class="list-price-price"{% endif %}>{{ listPrice.price|currency }}{{ "general.star"|trans|sw_sanitize }}</span>
{% if afterListPriceSnippetExists %}
{{"listing.afterListPrice"|trans|trim}}
{% endif %}
<span class="list-price-percentage">{{ "detail.listPricePercentage"|trans({'%price%': listPrice.percentage })|sw_sanitize }}</span>
</span>
{% endblock %}
{% endblock %}
{% endif %}
{% endblock %}

+ 202
- 14
zenitPlatformAtmosSet2/src/Resources/views/storefront/component/buy-widget/buy-widget.html.twig Просмотреть файл

@@ -1,21 +1,209 @@
{% sw_extends '@Storefront/storefront/component/buy-widget/buy-widget.html.twig' %}
{% block buy_widget_price %}
<div class="product-detail-price-container">
{% if page.product.translated.customFields.deposittype %}
<div class="product-detail-deposittype">
{{ page.product.translated.customFields.deposittype }}
</div>
{% block buy_widget %}
<div class="product-detail-buy{% if elementId %}-{{ elementId }}{% endif %} js-magnifier-zoom-image-container">
{% block buy_widget_rich_snippets %}
{% block buy_widget_rich_snippets_brand %}
{% if product.manufacturer %}
<meta itemprop="brand"
content="{{ product.manufacturer.translated.name }}"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_gtin13 %}
{% if product.ean %}
<meta itemprop="gtin13"
content="{{ product.ean }}"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_mpn %}
{% if product.manufacturerNumber %}
<meta itemprop="mpn"
content="{{ product.manufacturerNumber }}"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_weight %}
{% if product.weight %}
<meta itemprop="weight"
content="{{ product.weight }} kg"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_height %}
{% if product.height %}
<meta itemprop="height"
content="{{ product.height }} mm"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_width %}
{% if product.width %}
<meta itemprop="width"
content="{{ product.width }} mm"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_depth %}
{% if product.length %}
<meta itemprop="depth"
content="{{ product.length }} mm"/>
{% endif %}
{% endblock %}
{% block buy_widget_rich_snippets_release_date %}
<meta itemprop="releaseDate"
content="{{ product.releaseDate|format_date(pattern="Y-MM-dd", locale=app.request.locale) }}"/>
{% endblock %}
{% endblock %}
{% if not feature('FEATURE_NEXT_16992') %}
{# @deprecated tag:v6.5.0 tag:)(FEATURE_NEXT_16992) - Block will be removed in v6.5.0 #}
{% block buy_widget_not_available %}
{% endblock %}
{% endif %}
{{ parent() }}
{% if page.product.translated.customFields.deposit %}
{% set deposit = page.product.translated.customFields.deposit|currency %}
<div class="product-detail-deposit">
{{ "FlowsiteDepositSystemBasic.plusDeposit"|trans({
'%deposit%': deposit
})|sw_sanitize }}
{% block buy_widget_buy_container %}
<div itemprop="offers"
itemscope
itemtype="{% if product.calculatedPrices|length > 1 %}http://schema.org/AggregateOffer{% else %}http://schema.org/Offer{% endif %}">
{% block buy_widget_data %}
{% block buy_widget_data_rich_snippet_url %}
<meta itemprop="url"
content="{{ seoUrl('frontend.detail.page', { productId: product.id }) }}"/>
{% endblock %}
{% block buy_widget_data_rich_snippet_price_range %}
{% if product.calculatedPrices|length > 1 %}
{% set lowestPrice = false %}
{% set highestPrice = false %}
{% for price in product.calculatedPrices %}
{% if not lowestPrice or price.unitPrice < lowestPrice %}
{% set lowestPrice = price.unitPrice %}
{% endif %}
{% if not highestPrice or price.unitPrice > highestPrice %}
{% set highestPrice = price.unitPrice %}
{% endif %}
{% endfor %}
<meta itemprop="lowPrice" content="{{ lowestPrice }}"/>
<meta itemprop="highPrice" content="{{ highestPrice }}"/>
<meta itemprop="offerCount" content="{{ product.calculatedPrices|length }}"/>
{% endif %}
{% endblock %}
{% block buy_widget_data_rich_snippet_price_currency %}
<meta itemprop="priceCurrency"
content="{{ context.currency.translated.shortName }}"/>
{% endblock %}
{% block buy_widget_price %}
<div class="product-detail-price-container">
{% sw_include '@Storefront/storefront/component/buy-widget/buy-widget-price.html.twig' %}
</div>
{% endblock %}
{% block buy_widget_tax %}
<div class="product-detail-tax-container">
{% if context.taxState == "gross" %}
{% set taxText = "general.grossTaxInformation"|trans|sw_sanitize %}
{% else %}
{% set taxText = "general.netTaxInformation"|trans|sw_sanitize %}
{% endif %}
<p class="product-detail-tax">
{% block buy_widget_tax_link %}
<a class="product-detail-tax-link"
href="{{ path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') }) }}"
title="{{ taxText }}"
data-toggle="modal"
data-url="{{ path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') }) }}">
{{ taxText }}
</a>
{% endblock %}
</p>
</div>
{% endblock %}
{% block buy_widget_deposit %}
{% if page.product.translated.customFields.deposit %}
{% set deposit = page.product.translated.customFields.deposit|currency %}
<div class="product-detail-deposit">
{{ "FlowsiteDepositSystemBasic.plusDeposit"|trans({
'%deposit%': deposit
})|sw_sanitize }}
</div>
{% endif %}
{% endblock %}
{% set remoteClickOptions = {
selector: "#review-tab-" ~ product.id,
scrollToElement: true
} %}
{% set reviewTabHref = "#review-tab-" ~ product.id ~ "-pane" %}
{% block buy_widget_reviews %}
{% if product.ratingAverage > 0 and totalReviews > 0 and config('core.listing.showReview') %}
<div class="product-detail-reviews">
{% sw_include '@Storefront/storefront/component/review/rating.html.twig' with {
points: product.ratingAverage,
style: 'text-primary'
} %}
<a data-toggle="tab"
class="product-detail-reviews-link"
data-offcanvas-tabs="true"
data-remote-click="true"
data-remote-click-options='{{ remoteClickOptions|json_encode }}'
href="{{ reviewTabHref }}"
aria-controls="review-tab-pane">
{{ totalReviews }}
{{ "detail.reviewLinkText"|trans({'%count%': totalReviews})|sw_sanitize }}
</a>
</div>
{% endif %}
{% endblock %}
{% endblock %}
{% block buy_widget_configurator_include %}
{% if product.parentId and configuratorSettings|length > 0 %}
<div class="product-detail-configurator-container">
{% sw_include '@Storefront/storefront/component/buy-widget/configurator.html.twig' %}
</div>
{% endif %}
{% endblock %}
{% block buy_widget_buy_form %}
{% if product.active %}
<div class="product-detail-form-container">
{% sw_include '@Storefront/storefront/component/buy-widget/buy-widget-form.html.twig' %}
</div>
{% endif %}
{% endblock %}
</div>
{% endblock %}
{% block buy_widget_delivery_informations %}
<div class="product-detail-delivery-information">
{% sw_include '@Storefront/storefront/component/delivery-information.html.twig' %}
</div>
{% endblock %}
{% if config('core.cart.wishlistEnabled') %}
{% block buy_widget_wishlist %}
{% sw_include '@Storefront/storefront/component/product/card/wishlist.html.twig' with {
showText: true,
size: 'md',
productId: product.id
} %}
{% endblock %}
{% endif %}
{% block buy_widget_ordernumber_container %}
{% endblock %}
</div>
{% endblock %}

+ 3
- 0
zenitPlatformAtmosSet2/src/Resources/views/storefront/page/checkout/cart/index.html.twig Просмотреть файл

@@ -61,3 +61,6 @@
</div>
</div>
{% endblock %}
{% block page_checkout_cart_shipping_costs %}
{% endblock %}

+ 35
- 0
zenitPlatformAtmosSet2/src/Resources/views/storefront/page/product-detail/buy-widget-price.html.twig Просмотреть файл

@@ -0,0 +1,35 @@
{% sw_extends '@Storefront/storefront/page/product-detail/buy-widget-price.html.twig' %}
{% block page_product_detail_price_content %}
{% set listPrice = price.listPrice %}
<p class="product-detail-price{% if listPrice.percentage > 0 %} with-list-price{% endif %}">
{{ price.unitPrice|currency }}{{ "general.star"|trans|sw_sanitize }}
</p>
{% if listPrice.percentage > 0 %}
{% block page_product_detail_was_price %}
{% block page_product_detail_was_price_badge %}
<span class="list-price-badge">&#37;</span>
{% endblock %}
{% set afterListPriceSnippetExists = "listing.afterListPrice"|trans|length > 0 %}
{% set beforeListPriceSnippetExists = "listing.beforeListPrice"|trans|length > 0 %}
{% block page_product_detail_was_price_wrapper %}
<span class="product-detail-list-price-wrapper">
{% if beforeListPriceSnippetExists %}{{"listing.beforeListPrice"|trans|trim}}{% endif %}
<span{% if not (afterListPriceSnippetExists or beforeListPriceSnippetExists) %} class="list-price-price"{% endif %}>{{ listPrice.price|currency }}{{ "general.star"|trans|sw_sanitize }}</span>
{% if afterListPriceSnippetExists %}
{{"listing.afterListPrice"|trans|trim}}
{% endif %}
<span class="list-price-percentage">{{ "detail.listPricePercentage"|trans({'%price%': listPrice.percentage })|sw_sanitize }}</span>
</span>
{% endblock %}
{% endblock %}
{% endif %}
{% endblock %}

+ 207
- 0
zenitPlatformAtmosSet2/src/Resources/views/storefront/page/product-detail/buy-widget.html.twig Просмотреть файл

@@ -0,0 +1,207 @@
{% sw_extends '@Storefront/storefront/page/product-detail/buy-widget.html.twig' %}
{% block page_product_detail_buy_inner %}
<div class="js-magnifier-zoom-image-container">
{% block page_product_detail_rich_snippets %}
{% block page_product_detail_rich_snippets_brand %}
{% if page.product.manufacturer %}
<meta itemprop="brand"
content="{{ page.product.manufacturer.translated.name }}"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_gtin13 %}
{% if page.product.ean %}
<meta itemprop="gtin13"
content="{{ page.product.ean }}"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_mpn %}
{% if page.product.manufacturerNumber %}
<meta itemprop="mpn"
content="{{ page.product.manufacturerNumber }}"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_weight %}
{% if page.product.weight %}
<meta itemprop="weight"
content="{{ page.product.weight }} kg"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_height %}
{% if page.product.height %}
<meta itemprop="height"
content="{{ page.product.height }} mm"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_width %}
{% if page.product.width %}
<meta itemprop="width"
content="{{ page.product.width }} mm"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_depth %}
{% if page.product.length %}
<meta itemprop="depth"
content="{{ page.product.length }} mm"/>
{% endif %}
{% endblock %}
{% block page_product_detail_rich_snippets_release_date %}
<meta itemprop="releaseDate"
content="{{ page.product.releaseDate|format_date(pattern="Y-MM-dd", locale=app.request.locale) }}"/>
{% endblock %}
{% endblock %}
{% if not feature('FEATURE_NEXT_16992') %}
{# @deprecated tag:v6.5.0 tag:)(FEATURE_NEXT_16992) - Block will be removed in v6.5.0 #}
{% block page_product_detail_not_available %}
{% endblock %}
{% endif %}
{% block page_product_detail_buy_container %}
<div itemprop="offers"
itemscope
itemtype="{% if page.product.calculatedPrices|length > 1 %}http://schema.org/AggregateOffer{% else %}http://schema.org/Offer{% endif %}">
{% block page_product_detail_data %}
{% block page_product_detail_data_rich_snippet_url %}
<meta itemprop="url"
content="{{ seoUrl('frontend.detail.page', { productId: page.product.id }) }}"/>
{% endblock %}
{% block page_product_detail_data_rich_snippet_price_range %}
{% if page.product.calculatedPrices|length > 1 %}
{% set lowestPrice = false %}
{% set highestPrice = false %}
{% for price in page.product.calculatedPrices %}
{% if not lowestPrice or price.unitPrice < lowestPrice %}
{% set lowestPrice = price.unitPrice %}
{% endif %}
{% if not highestPrice or price.unitPrice > highestPrice %}
{% set highestPrice = price.unitPrice %}
{% endif %}
{% endfor %}
<meta itemprop="lowPrice" content="{{ lowestPrice }}"/>
<meta itemprop="highPrice" content="{{ highestPrice }}"/>
<meta itemprop="offerCount" content="{{ page.product.calculatedPrices|length }}"/>
{% endif %}
{% endblock %}
{% block page_product_detail_data_rich_snippet_price_currency %}
<meta itemprop="priceCurrency"
content="{{ context.currency.translated.shortName }}"/>
{% endblock %}
{% block page_product_detail_price %}
<div class="product-detail-price-container">
{% sw_include '@Storefront/storefront/page/product-detail/buy-widget-price.html.twig' %}
</div>
{% endblock %}
{% block page_product_detail_tax %}
<div class="product-detail-tax-container">
{% if context.taxState == "gross" %}
{% set taxText = "general.grossTaxInformation"|trans|sw_sanitize %}
{% else %}
{% set taxText = "general.netTaxInformation"|trans|sw_sanitize %}
{% endif %}
<p class="product-detail-tax">
{% block page_product_detail_tax_link %}
<a class="product-detail-tax-link"
href="{{ path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') }) }}"
title="{{ taxText }}"
data-toggle="modal"
data-url="{{ path('frontend.cms.page',{ id: config('core.basicInformation.shippingPaymentInfoPage') }) }}">
{{ taxText }}
</a>
{% endblock %}
</p>
</div>
{% endblock %}
{% block page_product_detail_deposit %}
{% if page.product.translated.customFields.deposit %}
{% set deposit = page.product.translated.customFields.deposit|currency %}
<div class="product-detail-deposit">
{{ "FlowsiteDepositSystemBasic.plusDeposit"|trans({
'%deposit%': deposit
})|sw_sanitize }}
</div>
{% endif %}
{% endblock %}
{% set remoteClickOptions = {
selector: "#review-tab",
scrollToElement: true
} %}
{% block page_product_detail_reviews %}
{% if page.product.ratingAverage > 0 and page.reviews.totalReviews > 0 and config('core.listing.showReview') %}
<div class="product-detail-reviews">
{% sw_include '@Storefront/storefront/component/review/rating.html.twig' with {
points: page.product.ratingAverage,
style: 'text-primary'
} %}
<a data-toggle="tab"
class="product-detail-reviews-link"
data-offcanvas-tabs="true"
data-remote-click="true"
data-remote-click-options='{{ remoteClickOptions|json_encode }}'
href="#review-tab-pane"
aria-controls="review-tab-pane">
{{ page.reviews.totalReviews }}
{{ "detail.reviewLinkText"|trans({'%count%': page.reviews.totalReviews})|sw_sanitize }}
</a>
</div>
{% endif %}
{% endblock %}
{% endblock %}
{% block page_product_detail_configurator_include %}
{% if page.product.parentId and page.configuratorSettings|length > 0 %}
<div class="product-detail-configurator-container">
{% sw_include '@Storefront/storefront/page/product-detail/configurator.html.twig' %}
</div>
{% endif %}
{% endblock %}
{% block page_product_detail_buy_form %}
{% if page.product.active %}
<div class="product-detail-form-container">
{% sw_include '@Storefront/storefront/page/product-detail/buy-widget-form.html.twig' %}
</div>
{% endif %}
{% endblock %}
</div>
{% endblock %}
{% block page_product_detail_delivery_informations %}
<div class="product-detail-delivery-information">
{% sw_include '@Storefront/storefront/component/delivery-information.html.twig' %}
</div>
{% endblock %}
{% if config('core.cart.wishlistEnabled') %}
{% block page_product_detail_wishlist %}
{% sw_include '@Storefront/storefront/component/product/card/wishlist.html.twig' with {
showText: true,
size: 'md',
productId: page.product.id
} %}
{% endblock %}
{% endif %}
{% block page_product_detail_ordernumber_container %}
{% endblock %}
</div>
{% endblock %}

+ 39
- 0
zenitPlatformAtmosSet2/src/Resources/views/storefront/page/product-detail/tabs.html.twig Просмотреть файл

@@ -0,0 +1,39 @@
{% sw_extends '@Storefront/storefront/page/product-detail/tabs.html.twig' %}
{% block zen_page_product_detail_tabs_navigation_custom_tab_global %}
{% if page.product.translated.customFields.custom_nutrition_energy_kcal|length > 0 %}
{% set customTab = {
'translated': {
title: "zentheme.atmos.content.customTabTitle"|trans({"%placeholder%": config('zenitPlatformAtmos.config.customTabTitle')}),
text: "zentheme.atmos.content.customTabText"|trans({"%placeholder%": config('zenitPlatformAtmos.config.customTabText')})
}
} %}
<li class="nav-item">
<a class="nav-link product-detail-tab-navigation-link"
id="custom-field-global-tab"
data-toggle="tab"
data-offcanvas-tabs="true"
href="#custom-field-global-tab-pane"
role="tab"
aria-controls="custom-field-global-tab-pane"
aria-selected="false">
<span>{{ customTab.translated.title }}</span>
<span class="product-detail-tab-navigation-icon">
{% sw_icon 'arrow-medium-right' style {'pack':'solid'} %}
</span>
</a>
</li>
{% endif %}
{% endblock %}
{% block zen_page_product_detail_tabs_content_custom_tab_global %}
{% if page.product.translated.customFields.custom_nutrition_energy_kcal|length > 0 %}
<div class="tab-pane fade show"
id="custom-field-global-tab-pane"
role="tabpanel"
aria-labelledby="custom-field-global-tab">
{% sw_include '@Storefront/storefront/page/product-detail/zen-custom-global-tab.html.twig' %}
</div>
{% endif %}
{% endblock %}

+ 89
- 0
zenitPlatformAtmosSet2/src/Resources/views/storefront/page/product-detail/zen-custom-global-tab.html.twig Просмотреть файл

@@ -0,0 +1,89 @@
{% sw_extends '@Storefront/storefront/utilities/offcanvas.html.twig' %}
{% block utilities_offcanvas_content %}
{% block zen_page_product_detail_custom_field_global_container %}
<div class="product-detail-custom-field1 tab-pane-container">
{% set customTab = {
'translated': {
title: "zentheme.atmos.content.customTabTitle"|trans({"%placeholder%": config('zenitPlatformAtmos.config.customTabTitle')}),
text: "zentheme.atmos.content.customTabText"|trans({"%placeholder%": config('zenitPlatformAtmos.config.customTabText')})
}
} %}
{% block zen_page_product_detail_custom_field_global_content %}
{% if page.product.translated.customFields.custom_nutrition_energy_kcal|length > 0 %}
<h3>{{ "customFields.custom_nutrition"|trans }} pro 100&thinsp;{% if (page.product.unit.name == "kg") or (page.product.unit.name == "g") %}g{% elseif page.product.unit.name == "Liter" %}ml{% endif %}:</h3>
<table class="table table-striped product-detail-properties-table">
<tbody>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_energy_kcal"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_energy_kcal|raw }}&thinsp;kcal / {{ page.product.translated.customFields.custom_nutrition_energy_kj|raw }}&thinsp;kJ
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_fat"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_fat|raw|number_format(1, ',', '.') }}&thinsp;g
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_fattyacids"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_fattyacids|raw|number_format(1, ',', '.') }}&thinsp;g
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_carbohydrates"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_carbohydrates|raw|number_format(1, ',', '.') }}&thinsp;g
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_sugar"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_sugar|raw|number_format(1, ',', '.') }}&thinsp;g
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_protein"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_protein|raw|number_format(1, ',', '.') }}&thinsp;g
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_salt"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_salt|raw|number_format(2, ',', '.') }}&thinsp;g
</td>
</tr>
<tr class="properties-row">
<th class="properties-label">
{{ "customFields.custom_nutrition_be"|trans }}
</th>
<td class="properties-value">
{{ page.product.translated.customFields.custom_nutrition_be|raw|number_format(1, ',', '.') }}&thinsp;BE
</td>
</tr>
</tbody>
</table>
{% endif %}
{% endblock %}
</div>
{% endblock %}
{% endblock %}

Загрузка…
Отмена
Сохранить