{% extends '@SyliusShop/layout.html.twig' %}
{% block title %}{{ product.name }} | {{ parent() }}{% endblock %}
{% block metatags %}
{% if product.metaDescription is defined %}
<meta name="description" content="{{ product.metaDescription }}">
{% endif %}
{% endblock %}
{% block banner %}
{{ render(url('odiseo_sylius_banner_plugin_shop_partial_banner', {'template': '@SyliusShop/Banner/banner1.html.twig'})) }}
{% endblock %}
{% block content %}
<div class="" id="p">
{% include '@SyliusShop/Product/Show/_breadcrumb.html.twig' %}
<div class="ui hidden divider"></div>
<div class="ui two column stackable grid product-details">
<div class="column product-details__left-col">
{% set productname = product.name %}
{% if mode == "gift" %}
{% set productname = 'sylius.ui.gift.offrez'|trans %}
{% endif %}
<h1 id="sylius-product-name" class="product-details__name" {{ sylius_test_html_attribute('product-name', product.name) }}>{{ productname }}</h1>
{% if mode == "gift" %}
{% include '@SyliusShop/Product/Show/_giftcard.html.twig' %}
{% else %}
{% include '@SyliusShop/Product/Show/_detailproduct.html.twig' %}
{% include '@SyliusShop/Product/Show/_productaction.html.twig' %}
{% endif %}
</div>
<div class="column">
{% if product.images|length == 1 %}
{% include '@SyliusShop/Product/Show/_images.html.twig' %}
{% else %}
{% if product.images|length > 1 %}
<div class="product-details__slider-main produit">
{% for image in product.images %}
{% set path = image.path is not null ? image.path|imagine_filter('sylius_large') : '' %}
<img src="{{ path }}" alt="{{ product.name }}" />
{% endfor %}
</div>
<div class="product-details__slider-navigation">
{% for image in product.images %}
{% set path = image.path is not null ? image.path|imagine_filter('sylius_large') : '' %}
<img src="{{ path }}" alt="{{ product.name }}" />
{% endfor %}
</div>
{% endif %}
{% endif %}
{% if product.getVideo() is not empty %}
<div class="product_video product-details__product_video" style="padding-top:10px;">
{{ product.getVideo() | raw }}
</div>
{% endif %}
{% if product.getDispoDescription() is not empty %}
<div class="dispo_description product-details__dispo_description">
{{ product.getDispoDescription() | raw }}
</div>
{% endif %}
</div>
</div>
{% if mode != "gift" %}
<div class="ui top attached large tabular menu">
<a class="item active" data-tab="details">{{ 'sylius.product.informationscomplementaires'|trans }}</a>
{% if SimpleAttributes.pratiques is defined %}
<a class="item" data-tab="attributes" {{ sylius_test_html_attribute('tab', 'attributes') }}>{{ 'sylius.product.informationspratiques'|trans }}</a>
{% endif %}
<a class="item" data-tab="reviews">{{ 'sylius.ui.reviews'|trans }} ({{ product.acceptedReviews|length }})</a>
</div>
{% include '@SyliusShop/Product/Show/Tabs/_details.html.twig' %}
{% include '@SyliusShop/Product/Show/Tabs/_infospratiques.html.twig' %}
{% include '@SyliusShop/Product/Show/Tabs/_reviews.html.twig' %}
{% endif %}
<div class="text-center product-details__back-button">
<a href="{{ path('app_shop_product_search') }}" class="button button--outline">
<i class="fas fa-arrow-left"></i> {{ 'sylius.ui.retourliste'|trans }}
</a>
</div>
{% for association in product.associations %}
{{ render(url('sylius_shop_partial_product_association_show', {'productId': product.id, 'id': association.id, 'template': '@SyliusShop/Product/Show/_association.html.twig'})) }}
{% else %}
<div class="related-products">
<img class="related-products__icon" src="{{ asset('assets/shop/img/associated-icon.png') }}" alt="{{ 'sylius.ui.produitsassocies'|trans }}">
<span class="related-products__tagline">{{ 'sylius.ui.produitsassocies'|trans }}</span>
<h4 class="related-products__title">{{ 'sylius.ui.clientontcommande'|trans }} </h4>
{{ render(url('sylius_shop_partial_product_index_latest', {'count': 10, 'template': '@SyliusShop/Product/_horizontalList.html.twig'})) }}
</div>
{% endfor %}
</div>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"/>
<script>
//lightbox.option({
// 'albumLabel': '{{ 'sylius.lightbox.image_album_label'|trans|escape('js') }}'
//});
$(document).ready(function () {
$('.sylius_add_to_cart_cartItem_variant_button').on('click', function () {
var selector = '';
key = $(this).data( "key" );
var price = $(this).data( "price" );
var originalPrice = $(this).data( "originalprice" );
if (price !== undefined) {
$('#product-price').text(price);
if (originalPrice !== undefined && originalPrice != "" && originalPrice != price ) {
$('#product-original-price').css('display', 'inline').html('<del>' + originalPrice + '</del>');
} else {
$('#product-original-price').css('display', 'none');
}
} else {
$('#product-price').text($('#sylius-variants-pricing').attr('data-unavailable-text'));
$('button[type=submit]').attr('disabled', 'disabled');
}
});
$('.product-details__slider-main').slick({
slidesToShow: 1,
slidesToScroll: 1,
arrows: true,
fade: true,
infinite: false,
asNavFor: '.product-details__slider-navigation',
autoplay: true,
autoplaySpeed: 3000
});
$('.product-details__slider-navigation').slick({
slidesToShow: 4,
slidesToScroll: 1,
asNavFor: '.product-details__slider-main',
arrows: false,
infinite: false,
focusOnSelect: true,
autoplay: true,
autoplaySpeed: 3000
});
$('.related-products__products').slick({
slidesToShow: 3,
slidesToScroll: 1,
arrows: true,
dots: true,
infinite: false,
autoplay: true,
autoplaySpeed: 3000,
responsive: [
{
breakpoint: 991,
settings: {
slidesToShow: 2,
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 1,
}
},
]
});
const hideScreens = () => {
document.querySelector('#gift_screen1').style.display = 'none'
document.querySelector('#gift_screen2').style.display = 'none'
document.querySelector('#gift_screen3').style.display = 'none'
}
const showScreen1 = () => {
document.querySelector('#gift_screen1').style.display = 'block'
}
const showScreen2 = () => {
document.querySelector('#gift_screen2').style.display = 'block'
}
const showScreen3 = () => {
document.querySelector('#gift_screen3').style.display = 'block'
}
// form steps
document.querySelectorAll('.gotostep1').forEach((item) => {
item.addEventListener('click', (e) => {
e.preventDefault();
hideScreens();
showScreen1();
})
})
document.querySelectorAll('.gotostep2').forEach((item) => {
item.addEventListener('click', (e) => {
e.preventDefault();
hideScreens();
showScreen2();
})
})
document.querySelectorAll('.gotostep3').forEach((item) => {
item.addEventListener('click', (e) => {
e.preventDefault();
hideScreens();
showScreen3();
})
});
})
</script>
{% endblock %}