templates/web/index.html.twig line 1

Open in your IDE?
  1. {% extends 'web/base.html.twig' %}
  2. {% block title %}2sweet – Slastičarnica Zagreb | Svadbene torte, desert stolovi, kolači{% endblock %}
  3. {% block seo %}
  4. <meta name="description" content="2sweet slastičarnica Zagreb – svadbene torte, desert stolovi i kolači po narudžbi. 15+ godina iskustva, 500+ svadbenih torti. Naručite već danas: 01/707-9009">
  5. <meta property="og:title" content="2sweet – Slastičarnica Zagreb | Svadbene torte i kolači">
  6. <meta property="og:description" content="Svadbene torte, desert stolovi i kolači po narudžbi iz Zagreba. 15+ godina iskustva. Nazovite: 01/707-9009">
  7. {% endblock %}
  8. {% block body %}
  9.     {{ include('web/components/inner/header-slider.html.twig') }}
  10.     {{ include('web/components/inner/goodies.html.twig') }}
  11.     {% if latestVideos|length > 0 %}
  12.     <div class="bgWhite">
  13.         <div class="container">
  14.             <div class="emptySpace75 emptySpace-xs40"></div>
  15.             <div class="row">
  16.                 <div class="col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3" style="text-align:center;">
  17.                     <div class="big titleShortcode">
  18.                         <h2 class="h2 bottomLine">Videoteka</h2>
  19.                         <div class="emptySpace30"></div>
  20.                     </div>
  21.                 </div>
  22.             </div>
  23.             <div class="emptySpace30 emptySpace-xs15"></div>
  24.             <div class="row">
  25.                 {% for video in latestVideos %}
  26.                 <div class="col-sm-6 col-md-4" style="margin-bottom:30px;">
  27.                     <div style="cursor:pointer;" onclick="openVideoModal('home_{{ video.id }}')">
  28.                         <div style="position:relative; border-radius:6px; overflow:hidden;">
  29.                             {% if video.type == 'youtube' and video.youtubeId %}
  30.                                 <img src="https://img.youtube.com/vi/{{ video.youtubeId }}/hqdefault.jpg"
  31.                                      style="width:100%; height:200px; object-fit:cover; display:block;" alt="{{ video.title }}">
  32.                             {% elseif video.thumbnail %}
  33.                                 <img src="{{ asset('uploads/' ~ video.thumbnail) }}"
  34.                                      style="width:100%; height:200px; object-fit:cover; display:block;" alt="{{ video.title }}">
  35.                             {% else %}
  36.                                 <div style="width:100%; height:200px; background:#f0ebe8; display:flex; align-items:center; justify-content:center;">
  37.                                     <span style="font-size:48px; opacity:0.4;">🎬</span>
  38.                                 </div>
  39.                             {% endif %}
  40.                             <div style="position:absolute; inset:0; background:rgba(0,0,0,0.25); display:flex; align-items:center; justify-content:center;"
  41.                                  onmouseover="this.style.background='rgba(0,0,0,0.4)'"
  42.                                  onmouseout="this.style.background='rgba(0,0,0,0.25)'">
  43.                                 <div style="width:52px; height:52px; background:#b85b63; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 16px rgba(0,0,0,0.3);">
  44.                                     <span style="color:#fff; font-size:20px; margin-left:4px;">&#9654;</span>
  45.                                 </div>
  46.                             </div>
  47.                         </div>
  48.                         <div class="emptySpace10"></div>
  49.                         <h4 class="h4" style="margin-bottom:4px;">{{ video.title }}</h4>
  50.                         {% if video.description %}
  51.                             <p class="normall" style="color:#888; font-size:13px;">{{ video.description|slice(0, 80) }}{% if video.description|length > 80 %}…{% endif %}</p>
  52.                         {% endif %}
  53.                     </div>
  54.                 </div>
  55.                 {% endfor %}
  56.             </div>
  57.             <div class="emptySpace30"></div>
  58.             <div class="row">
  59.                 <div class="col-sm-12" style="text-align:center;">
  60.                     <a href="{{ path('web_videos') }}" class="btn" style="background:#b85b63; color:#fff; padding:12px 36px; border-radius:3px; font-size:14px; font-weight:600; text-decoration:none; display:inline-block; text-transform:uppercase; letter-spacing:1px;">
  61.                         Svi videi
  62.                     </a>
  63.                 </div>
  64.             </div>
  65.             <div class="emptySpace75 emptySpace-xs40"></div>
  66.         </div>
  67.     </div>
  68.     {% endif %}
  69.     {{ include('web/components/inner/services-home.html.twig') }}
  70.     <!-- CTA Banner -->
  71.     <div style="background: linear-gradient(135deg, #4b2c20 0%, #7a3f2e 100%); padding: 70px 0; text-align:center;">
  72.         <div class="container">
  73.             <h2 class="h2" style="color:#fff; margin-bottom:15px;">Svadbena torta po Vašoj mjeri</h2>
  74.             <p class="normall" style="color:rgba(255,255,255,0.85); max-width:560px; margin:0 auto 35px; line-height:1.8;">
  75.                 Napravili smo ih stotine — svaka je bila jedinstvena, kao i par koji je stoji iza nje.
  76.                 Kontaktirajte nas i zajedno ćemo kreirati tortu o kojoj ste sanjali.
  77.             </p>
  78.             <a href="{{ path('web_calculator') }}" class="btn" style="background:#b85b63; color:#fff; padding:14px 40px; border-radius:3px; font-size:15px; font-weight:600; text-decoration:none; display:inline-block; margin-right:12px; margin-bottom:10px;">
  79.                 Kalkulator
  80.             </a>
  81.             <a href="{{ path('web_contact') }}" class="btn" style="background:transparent; color:#fff; padding:13px 40px; border-radius:3px; font-size:15px; font-weight:600; text-decoration:none; display:inline-block; border:2px solid rgba(255,255,255,0.6); margin-right:12px; margin-bottom:10px;">
  82.                 Kontaktirajte nas
  83.             </a>
  84.             <button onclick="document.getElementById('sibi-panel').classList.remove('is-closed'); document.getElementById('sibi-toggle').setAttribute('aria-expanded','true');" class="btn" style="background:transparent; color:#fff; padding:13px 40px; border-radius:3px; font-size:15px; font-weight:600; text-decoration:none; display:inline-block; border:2px solid rgba(255,255,255,0.6); margin-bottom:10px; cursor:pointer;">
  85.                 💬 Pitaj Slađanu
  86.             </button>
  87.         </div>
  88.     </div>
  89.     <!-- Stats strip -->
  90.     <div class="bgWhite">
  91.         <div class="container">
  92.             <div class="emptySpace75 emptySpace-xs40"></div>
  93.             <div class="row" style="text-align:center;">
  94.                 <div class="col-sm-4">
  95.                     <div class="emptySpace-xs30"></div>
  96.                     <p style="font-size:48px; font-weight:700; color:#b85b63; margin-bottom:5px; font-family:'Berkshire Swash', cursive;">500+</p>
  97.                     <p class="normall" style="color:#555; font-size:15px;">svadbenih torti</p>
  98.                 </div>
  99.                 <div class="col-sm-4">
  100.                     <div class="emptySpace-xs30"></div>
  101.                     <p style="font-size:48px; font-weight:700; color:#b85b63; margin-bottom:5px; font-family:'Berkshire Swash', cursive;">15+</p>
  102.                     <p class="normall" style="color:#555; font-size:15px;">godina iskustva</p>
  103.                 </div>
  104.                 <div class="col-sm-4">
  105.                     <div class="emptySpace-xs30"></div>
  106.                     <p style="font-size:48px; font-weight:700; color:#b85b63; margin-bottom:5px; font-family:'Berkshire Swash', cursive;">30+</p>
  107.                     <p class="normall" style="color:#555; font-size:15px;">vrsta kolača</p>
  108.                 </div>
  109.             </div>
  110.             <div class="emptySpace75 emptySpace-xs40"></div>
  111.         </div>
  112.     </div>
  113.     {# Video modal za naslovnicu #}
  114.     <div id="video-modal" style="display:none; position:fixed; inset:0; background:rgba(0,0,0,0.88); z-index:9998; align-items:center; justify-content:center;"
  115.          onclick="closeVideoModal()">
  116.         <button onclick="closeVideoModal()" style="position:absolute; top:20px; right:30px; background:none; border:none; color:#fff; font-size:36px; cursor:pointer;">&times;</button>
  117.         <div onclick="event.stopPropagation();" style="width:90vw; max-width:900px;">
  118.             <div id="video-modal-inner" style="position:relative; padding-bottom:56.25%; height:0;"></div>
  119.         </div>
  120.     </div>
  121.     <script>
  122.     var homeVideoData = {
  123.         {% for video in latestVideos %}
  124.         'home_{{ video.id }}': {
  125.             type: '{{ video.type }}',
  126.             {% if video.type == 'youtube' %}embedUrl: '{{ video.embedUrl }}',
  127.             {% elseif video.type == 'vimeo' %}embedUrl: '{{ video.embedUrl }}',
  128.             {% elseif video.type == 'upload' %}src: '{{ asset('uploads/' ~ video.videoSource) }}',
  129.             {% elseif video.type == 'link' %}embedUrl: '{{ video.embedUrl }}',
  130.             {% endif %}
  131.         },
  132.         {% endfor %}
  133.     };
  134.     function openVideoModal(id) {
  135.         var v = homeVideoData[id];
  136.         if (!v) return;
  137.         var inner = document.getElementById('video-modal-inner');
  138.         inner.innerHTML = v.type === 'upload'
  139.             ? '<video controls autoplay style="position:absolute;top:0;left:0;width:100%;height:100%;background:#000;"><source src="' + v.src + '"></video>'
  140.             : '<iframe style="position:absolute;top:0;left:0;width:100%;height:100%;" src="' + v.embedUrl + '" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe>';
  141.         document.getElementById('video-modal').style.display = 'flex';
  142.         document.body.style.overflow = 'hidden';
  143.     }
  144.     function closeVideoModal() {
  145.         document.getElementById('video-modal').style.display = 'none';
  146.         document.getElementById('video-modal-inner').innerHTML = '';
  147.         document.body.style.overflow = '';
  148.     }
  149.     document.addEventListener('keydown', function(e) { if (e.key === 'Escape') closeVideoModal(); });
  150.     </script>
  151.     <div class="footerSeparator"></div>
  152.     <div class="emptySpace50 emptySpace-xs30"></div>
  153. {% endblock %}