templates/basePages/page/product_page.html.twig line 1

Open in your IDE?
  1. {# <pre>
  2.   {{ dump(content) }}
  3. </pre> #}
  4. <script>
  5. const slides = {{ content.aboutProduct.about_photos|length }};
  6. const productId = "{{ app.request.get('id') ~ "-" ~ app.request.get('hash') }}";
  7. </script>
  8. {% set currentPath = path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) %}
  9. <section class="product-preview">
  10.   <div class="product-preview-image">
  11.     <div class="product-preview-image-bubbles app-imagesBubblesList" {% if content.aboutProduct.about_photos|length < 2 %}style="opacity:0.2;user-select:none;pointer-events:none;"{% endif %}>
  12.       <div class="product-preview-image-view-arrow app-imageBubbleController" data-control='-1' onclick="changeProductPhoto(null, this)">&#xF284;</div>
  13.       {% for itmco in 0 .. min(content.aboutProduct.about_photos|length, 5) - 1 %}
  14.         <div class="product-preview-image-view-bubble app-imageBubble" {% if itmco == 0 %} data-active='1' {% endif %} data-control='{{ itmco }}'></div>        
  15.       {% endfor %}
  16.       <div class="product-preview-image-view-arrow app-imageBubbleController" data-control='{% if content.aboutProduct.about_photos|length >= 1 %}1{% else %}-1{% endif %}' onclick="changeProductPhoto(null, this)">&#xF285;</div>
  17.     </div>
  18.     <label class="product-preview-image-wishlist">
  19.       <input autocomplete="off" type="checkbox" value="1" {% if content.wish.status %}checked{% endif %} onchange="this.checked = !this.checked; {% if acc.if %}changeWishStatus(!this.checked, '{{ content.wish.hash }}', this);{% else %} window.location.href = '{{ path('auth_site', {log_type: 'login'}) }}?routeTo={{ currentPath|url_encode }}'; {% endif %}">
  20.       <div class="product-preview-image-wishlist-group">
  21.         <div class="on">
  22.           <svg style="height:37px;width:37px;fill:#101010;" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-heart-fill" viewBox="0 0 16 16">
  23.             <path fill-rule="evenodd" d="M8 1.314C12.438-3.248 23.534 4.735 8 15-7.534 4.736 3.562-3.248 8 1.314z"/>
  24.           </svg>
  25.         </div>
  26.         <div class="off">
  27.           <svg style="height:37px;width:37px;fill:#101010;" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-heart" viewBox="0 0 16 16">
  28.             <path d="m8 2.748-.717-.737C5.6.281 2.514.878 1.4 3.053c-.523 1.023-.641 2.5.314 4.385.92 1.815 2.834 3.989 6.286 6.357 3.452-2.368 5.365-4.542 6.286-6.357.955-1.886.838-3.362.314-4.385C13.486.878 10.4.28 8.717 2.01L8 2.748zM8 15C-7.333 4.868 3.279-3.04 7.824 1.143c.06.055.119.112.176.171a3.12 3.12 0 0 1 .176-.17C12.72-3.042 23.333 4.867 8 15z"/>
  29.           </svg>
  30.         </div>
  31.       </div>
  32.     </label>
  33.     <div class="product-preview-image-window app-imagePreview">
  34.       {% if content.aboutProduct.about_photos|length > 0 %}      
  35.         {% for itmco in 1 .. content.aboutProduct.about_photos|length %}
  36.           <img {% if itmco == 1 %} data-active='1' {% endif %} class="app-imgePreviewImage" src="{{ content.aboutProduct.about_photos[itmco - 1].url }}" alt="prekes-nuotrauka">
  37.         {% endfor %}
  38.       {% else %}
  39.         <img data-active='1' class="app-imgePreviewImage" src="https://srv1.cnts.venderes.com/resources/uploads/items/@default.png" alt="nera-nuotraukos">
  40.       {% endif %}
  41.     </div>
  42.   </div>
  43.   <div class="product-preview-info">
  44.     <div class="product-preview-info-window">
  45. {#       <div class="product-preview-info-window-stickers-container">
  46.         <div data-sticker="danger">Pardavėjas ilgai neatnaujino duomenų</div>
  47.       </div> #}
  48.       <div class="product-preview-info-window-name">{{ content.aboutProduct.a_name }}</div>
  49.       <div class="product-preview-info-window-price-container"><span class="regular-price">{{ '%.2f'|format((content.aboutProduct.price_mode == 1 ? content.aboutProduct.price_discount : content.aboutProduct.price_normal) / 100) }} EUR</span>
  50.       {% if content.aboutProduct.price_mode == 1 %}<span class="discount-price">{{ '%.2f'|format(content.aboutProduct.price_normal / 100) }} EUR</span>{% endif %}</div>
  51.       <div class="product-preview-info-window-seller-container">
  52.         <span>Pardavėjas: </span><span class="sellernm">{{ content.aboutSeller.name }}</span><br>
  53.         {# <img src="/data/assets/swedbank.png"> #}
  54.       </div>
  55.       <a target="_blank" href="{{ path('productredirect_site', {id: app.request.get('id'), hash: app.request.get('hash')}) }}"><button class="product-preview-info-window-visit">Apsilankyti</button></a>
  56.       <hr class="product-preview-info-window-hr">
  57.       <div class="product-preview-info-window-description-container">
  58.         <span class="header">Apie prekę:</span><br>
  59.         <p>{% if content.aboutProduct.a_description == '' %}<i>Pardavėjas nepateikė aprašymo</i>{% endif %}{{ content.aboutProduct.a_description }}</p>
  60.         <br><span style="font-size:80%;">„Venderes“ prekės ID: <b>{{ app.request.get('id') ~ "-" ~ app.request.get('hash')|upper }}</b></span>
  61.       </div>
  62.     </div>
  63.   </div>
  64. </section>
  65. <section class="product-stats">
  66.   <p style="color:#4d4d4d;font-size:80%;">Pateikiama konkrečios paros intervalo prekės didžiausia kaina. Kainos fiksuojamos {{ "now"|date("T") }} laiko zonoje. Demonstruojami tik pasikeitusių reikšmių duomenys.</p>
  67.   <div><div id="main" style="width:100%;height:300px;"></div></div>
  68. </section>
  69. <section class="app-recommendations" data-blocksnames="{{ ['Panašios prekės']|json_encode()|escape('html_attr') }}">
  70. </section>
  71. {# <!-- REKOMENDACIJA -->
  72. <section class="goods-list">
  73.   <div class="goods-list-header">
  74.     <span class="goods-list-header-name">Panašios prekės</span>
  75.   </div>
  76.   <div class="goods-list-group"></div>
  77. </section>
  78. <section class="goods-list">
  79.   <div class="goods-list-header">
  80.     <span class="goods-list-header-name">Populiaru</span>
  81.   </div>
  82.   <div class="goods-list-group"></div>
  83. </section> #}
  84. <template id="template_item_0">
  85.   <div class="goods-card-sizebox">
  86.     <a data-temp style="text-decoration: none;">
  87.       <div class="good-card">
  88.         <div class="good-card-image" data-temp></div>
  89.         <div class="good-card-price-container"><span class="regular-price" data-temp></span><span class="discount-price" data-temp></span></div>
  90.         <div class="good-card-name-container" data-temp></div>
  91.       </div>
  92.     </a>
  93.   </div>
  94. </template>
  95. <template id="template_itemContainer_0">
  96.   <div class="goods-list">
  97.     <div class="goods-list-header">
  98.       <span class="goods-list-header-name" data-temp>Panašios prekės</span>
  99.     </div>
  100.     <div class="goods-list-group" data-temp></div>
  101.   </div>
  102. </template>
  103. <script src="/data/js/product_page__imageprev.js"></script>
  104. <script src="/data/js/product_page__recommendations.js"></script>
  105. <script type="text/javascript">
  106. var myChart = echarts.init(document.getElementById('main'));
  107. var option = {
  108.   color: [
  109.     '#EF7B00'
  110.   ],
  111.   tooltip: {
  112.     trigger: "axis",
  113.     axisPointer: {
  114.       type: "shadow",
  115.     },
  116.     formatter: '{b0}: <b>{c0} &euro;</b>',
  117.   },
  118.   xAxis: {
  119.     type: 'category',
  120.     data: {{ content.stats.days|json_encode()|raw }}
  121.   },
  122.   yAxis: {
  123.     axisLabel: {
  124.       formatter: '{value} EUR'
  125.     },
  126.     min: {{ content.stats.yax[0] }},
  127.     max: {{ content.stats.yax[1] }}
  128.   },
  129.   series: [
  130.     {
  131.       data: {{ content.stats.vals|json_encode()|raw }},
  132.       type: 'line'
  133.     }
  134.   ],
  135.   grid: {
  136.     left: 0,
  137.     right: 0,
  138.     bottom: 0,
  139.     containLabel: true
  140.   }
  141. };
  142. myChart.setOption(option);
  143. window.addEventListener('resize', myChart.resize);
  144. </script>