templates/base.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html lang="{{ app.request.locale|split('_')[0] }}">
  3.     <head>
  4.         <meta charset="utf-8">
  5.         <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.         <meta name="description" content="{% block metaDescription %}{% endblock %}">
  7.         <meta name="author" content="Maturin">
  8.         <link rel="shortcut icon" type="image/png" href="https://maturin.ca/favicon.png"/>
  9.         <link rel="icon" type="image/png" href="https://maturin.ca/favicon.png"/>
  10.         <link rel="apple-touch-icon" href="https://maturin.ca/favicon.png">
  11.         <title>{% block title %}Maturin - Dashboard{% endblock %}</title>
  12.         {% block CSS %}
  13.         {% endblock %}
  14.         {% block mainCSS %}
  15.             <link href="/assets/frontend/css/responsive.css?ver={{global.cssVersion}}" rel="stylesheet" type="text/css" media="all">
  16.             <link href="{{asset('build/admin/dashboard.css')}}" rel="stylesheet" type="text/css" />
  17.             <link href="/assets/admin/css/icons.css" rel="stylesheet" type="text/css" />
  18.             <link href="{{asset('build/base.css')}}" rel="stylesheet" type="text/css" />
  19.             <script src="{{ asset('bundles/fosjsrouting/js/router.min.js') }}"></script>
  20.             <script src="{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}"></script>
  21. <style>
  22.     #mainSearch {
  23.         background-color: white!important;
  24.         color: black!important;
  25.     }
  26.     #mainSearch::placeholder {
  27.         color: black!important;
  28.     }
  29.     #btn-main-search { color: black!important }
  30. </style>
  31.         {% endblock %}
  32.         <script src="/assets/admin/js/modernizr.min.js"></script>
  33.         <!-- Global site tag (gtag.js) - Google Analytics -->
  34.         <script async src="https://www.googletagmanager.com/gtag/js?id=UA-128702569-1"></script> 
  35.          <script>
  36.             window.dataLayer = window.dataLayer || [];
  37.             function gtag(){dataLayer.push(arguments);}
  38.             gtag('js', new Date());
  39.             gtag('config', 'UA-128702569-1');
  40.         </script>
  41.         <!-- Google Tag Manager -->
  42.         <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  43.             new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  44.                 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  45. 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  46.         })(window,document,'script','dataLayer','GTM-T88BGD9');</script>
  47.         <!-- End Google Tag Manager -->
  48.         {% block googleTags %}
  49.         {% endblock %}
  50.     </head>
  51.     <body class="{% block bodyClass %}{% endblock%}">
  52.         <!-- Google Tag Manager (noscript) -->
  53.         <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-T88BGD9"
  54.         height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  55.         <!-- End Google Tag Manager (noscript) -->
  56.         {% if loader is defined %}
  57.             <div class="se-pre-con" id="se-pre-con" style="{% block loaderStyle %}{% endblock %}">
  58.             {% block loaderText %}{% endblock %}
  59.             </div>
  60.         {% else %}
  61.             <div class="se-pre-con" id="se-pre-con" style="display: none">
  62.             </div>
  63.         {% endif %}
  64.         {% block body %}{% endblock %}
  65.         {# To fix a issue with mobile we do the cart adding in pure JS #}
  66.         <script>
  67.             window.addToCartNotification = 0;
  68.     function addToCart()
  69.     {
  70.         console.log('Base add to cart called');
  71.         event.preventDefault();
  72.         var type= this.getAttribute("data-type");
  73.         var id= this.getAttribute("data-id");
  74.         var quantityWidget = this.getAttribute('data-quantity');
  75.         if(quantityWidget && document.getElementById(quantityWidget)){
  76.             var quantity = document.getElementById(quantityWidget).value;
  77.         }else
  78.             var quantity = 1;
  79.         var xmlHttp = new XMLHttpRequest();
  80.         xmlHttp.onreadystatechange = function()
  81.         {
  82.             console.log(xmlHttp.readyState);
  83.             if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
  84.             {
  85.                 var total = parseInt(document.getElementById('menu-cart-count').innerHTML);
  86.                 document.getElementById('menu-cart-count').innerHTML = total+1;
  87.                 document.getElementById('menu-cart-count').style.display = 'block';;
  88.                 window.addToCartNotification++;
  89.                 var json = JSON.parse(xmlHttp.responseText);
  90.                 console.log(json);
  91.                 if(document.getElementById('menu_subtotal_cart'))
  92.                     document.getElementById('menu_subtotal_cart').innerHTML = json.totalCart;
  93.                 if(document.getElementById('mobile_menu_subtotal_cart'))
  94.                     document.getElementById('mobile_menu_subtotal_cart').innerHTML = json.totalCart;
  95.             }
  96.         }
  97.         var subscribe = this.getAttribute('data-subscribe');
  98.         if( subscribe )
  99.             xmlHttp.open("post", '/API/cart/add/'+id+'/'+quantity+'/'+subscribe);
  100.         else
  101.             xmlHttp.open("post", '/API/cart/add/'+id+'/'+quantity);
  102.         xmlHttp.send();
  103.         /*
  104.         $.ajax({
  105.             url: Routing.generate('addToCart', {id: id, quantity: quantity}),
  106.             method: 'POST',
  107.             dataType: 'json',
  108.             complete: _this.addedToCart
  109.         });
  110.          */
  111. }
  112. var classname = document.getElementsByClassName("add-to-cart");
  113. for (var i = 0; i < classname.length; i++) {
  114.     if(!classname[i].classList.contains("binded")){
  115.         var classString = classname[i].className;
  116.         var newClass = classString.concat(" binded");
  117.         classname[i].className = newClass;
  118.         classname[i].addEventListener('click', addToCart, false);
  119.     }
  120. }
  121.         </script>
  122.         {# end dirty fix add to cart #}
  123.         <input type="hidden" id="userLocale" value='{{ app.request.locale }}'>
  124.         <!-- END wrapper -->
  125.         {% block mainJS %}
  126.         {# To use the Routing System in the Javascript #}
  127.         <script src="/assets/frontend/js/jquery-3.1.1.min.js"></script>
  128.         <script src="{{ asset('bundles/fosjsrouting/js/router.min.js') }}"></script>
  129.         <script src="{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}"></script>
  130.         <script src="{{ asset('bundles/bazingajstranslation/js/translator.min.js') }}"></script>
  131.         <!-- <script src="{{ url('bazinga_jstranslation_js') }}"></script> -->
  132.         <script src="{{ asset('build/base.js') }}"></script>
  133.         {% endblock %}
  134.         {% block JS %}
  135.         {% endblock %}
  136.         {% block modals %}
  137.         {% include ('admin/modals/viewNotification.html.twig') %}
  138.         {% include ('admin/modals/newMessage.html.twig') %}
  139.         {% endblock %}
  140.         <div id="flashMessages" style="position:absolute;top: -200px;">
  141.             {% if app.request.hasPreviousSession %}
  142.             {% for type, messages in app.session.flashbag.all() %}
  143.             {% for message in messages %}
  144.             <div class="flashMessage flash-{{ type }}" data-type="{{type}}">
  145.                 {{ message }}
  146.             </div>
  147.             {% endfor %}
  148.             {% endfor %}
  149.             {% endif %}
  150.         </div>
  151.         <script src="/assets/admin/seo/optimization.js"></script>
  152.         {% if hideChat is not defined and app.environment != 'dev' %}
  153.         <script>
  154.             (function() {
  155.                 var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
  156.                 wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
  157.                 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
  158.             })();
  159.         </script>
  160.         <script type='text/javascript' data-cfasync='false'>window.purechatApi = { l: [], t: [], on: function () { this.l.push(arguments); } }; (function () { var done = false; var script = document.createElement('script'); script.async = true; script.type = 'text/javascript'; script.src = 'https://app.purechat.com/VisitorWidget/WidgetScript'; document.getElementsByTagName('HEAD').item(0).appendChild(script); script.onreadystatechange = script.onload = function (e) { if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) { var w = new PCWidget({c: 'fed674ea-4346-4843-82df-3fd025dbcfb0', f: true }); done = true; } }; })();</script>
  161.         {% endif %}
  162.     </body>
  163. </html>