templates/layout/fe_page.html5 line 246

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html lang="<?php echo $this->language?>"<?php if ($this->isRTL): ?> dir="rtl"<?php endif; ?>>
  3. <head>
  4. <?php $this->block('head'); ?>
  5. <?php $this->block('meta'); ?>
  6. <meta charset="<?php echo $this->charset?>">
  7. <meta name="robots" content="<?php echo $this->robots?>">
  8. <meta name="description" content="<?php echo $this->description?>">
  9. <meta name="keywords" content="<?php echo $this->keywords?>">
  10. <meta name="generator" content="Contao Open Source CMS">
  11. <?php $this->endblock(); ?>
  12. <title><?php echo $this->title?></title>
  13. <base href="<?php echo $this->base?>">
  14. <link rel="shortcut icon" href="files/cto_layout/img/favicon.ico" type="image/x-icon">
  15. <link rel="apple-touch-icon" href="files/cto_layout/img/apple-touch-icon.png">
  16. <?php echo $this->framework?>
  17. <?php echo $this->mooScripts?>
  18. <?php echo $this->stylesheets?>
  19. <script src="assets/jquery/js/jquery.min.js"></script>
  20. <script>
  21. /**
  22.  * PrivacyManager
  23.  */
  24. var PrivacyManager =
  25. {
  26.     /**
  27.      * The privacy localStorage key
  28.      * @var string
  29.      */
  30.     privacy_session : 'user_privacy_settings',
  31.     /**
  32.      * Get the selected privacy checkbox values from a formular array
  33.      * @param array 
  34.      * @return array
  35.      */
  36.     getUserSelectionFromFormData: function (arrSubmitted)
  37.     {
  38.         if (arrSubmitted == null || arrSubmitted == undefined)
  39.         {
  40.             return [];
  41.         }
  42.         var arrReturn = [];
  43.         for (var k in arrSubmitted)
  44.         {
  45.             var v = arrSubmitted[k];
  46.             if (v['name'] == 'privacy')
  47.             { 
  48.                 arrReturn.push(v['value']);
  49.             }
  50.         }
  51.         return arrReturn;
  52.     },
  53.     /**
  54.      * Access control
  55.      * @param string
  56.      */
  57.     hasAccess : function (varSelection)
  58.     {
  59.         var token = localStorage.getItem( this.privacy_session );
  60.         if( token == undefined )
  61.         {
  62.             return false;
  63.         }
  64.         // convert to string
  65.         if( typeof(varSelection) == 'number' )
  66.         {
  67.             varSelection = varSelection.toString();
  68.         }
  69.         // convert to array
  70.         if( typeof(varSelection) == 'string' )
  71.         {
  72.             varSelection = varSelection.split(',');
  73.         }
  74.         for(i in varSelection)
  75.         {
  76.             var value = varSelection[i].toString().replace(' ','');
  77.             if( token.indexOf( value ) >= 0 )
  78.             {
  79.                 return true;
  80.             }
  81.         }
  82.         return false;
  83.     },
  84.     /**
  85.      * Clear privacy settings and redirect page
  86.      * @param boolean
  87.      */
  88.     optout: function (strRedirect)
  89.     {
  90.         // clear local storage
  91.         localStorage.removeItem(this.privacy_session);
  92.         localStorage.removeItem(this.privacy_session+'_expires');
  93.         // fire event
  94.         jQuery(document).trigger('Privacy.clear_privacy_settings',{});
  95.         // log
  96.         console.log('Privacy settings cleared');
  97.         // redirect
  98.         if (strRedirect != undefined)
  99.         {
  100.             location.href = strRedirect;
  101.         }
  102.         else
  103.         {
  104.             location.reload();
  105.         }
  106.     },
  107.     /**
  108.      * Clear all cookies and localstorage
  109.      */
  110.     clearAll: function()
  111.     {
  112.         var host = window.location.hostname;
  113.         var domain = host.substring( host.indexOf('.') , host.length);
  114.         // clear all cookies
  115.         document.cookie.split(";").forEach(function(c) 
  116.         { 
  117.             document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"+ ";domain="+host); 
  118.             document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"+ ";domain="+domain); 
  119.         });
  120.         // clear whole localstorage
  121.         window.localStorage.clear();
  122.         for (var i = 0; i <= localStorage.length; i++) 
  123.         {
  124.            localStorage.removeItem(localStorage.key(i));
  125.         }
  126.         // log
  127.         console.log('Cookies and localstorage cleared');
  128.     }
  129. };
  130. </script>
  131. <script>
  132. /**
  133.  * Univerasl optin protection
  134.  * @param string    Type of element to be protected e.g. img or iframe etc.
  135.  */
  136. PrivacyManager.optin = function(strElementType)
  137. {
  138.     if(strElementType == undefined || strElementType == '')
  139.     {
  140.         return;
  141.     }
  142.     // user settings not applied yet
  143.     if(localStorage.getItem(this.privacy_session) == undefined || localStorage.getItem(this.privacy_session) == '' || localStorage.getItem(this.privacy_session) <= 0)
  144.     {
  145.         return
  146.     }
  147.     // find all scripts having a data-src attribute
  148.     var targets = jQuery(strElementType+'[data-src]');    
  149.     
  150.     if(targets.length > 0)
  151.     {
  152.         jQuery.each(targets,function(i,e)
  153.         {
  154.             var privacy = jQuery(e).data('privacy');
  155.             if(privacy == undefined)
  156.             {
  157.                 privacy = 0;
  158.             }
  159.             
  160.             var attr = 'src';
  161.             if(strElementType == 'link')
  162.             {
  163.                 attr = 'href';
  164.             }
  165.             else if(strElementType == 'object')
  166.             {
  167.                 attr = 'data';
  168.             }
  169.             
  170.             if(localStorage.getItem('user_privacy_settings').indexOf(privacy) >= 0)
  171.             {
  172.                 jQuery(e).attr(attr,jQuery(e).data('src') );
  173.             }
  174.         });
  175.     }
  176. }
  177. jQuery(document).on('Privacy.changed', function() 
  178. {
  179.     PrivacyManager.optin('script');
  180.     PrivacyManager.optin('link');
  181.     PrivacyManager.optin('iframe');
  182.     PrivacyManager.optin('object');
  183.     PrivacyManager.optin('img');
  184. });
  185. jQuery(document).ready(function()
  186. {
  187.     PrivacyManager.optin('script');
  188.     PrivacyManager.optin('link');
  189.     PrivacyManager.optin('iframe');
  190.     PrivacyManager.optin('object');
  191.     PrivacyManager.optin('img');
  192. });
  193. </script>
  194. <?php if( $this->seo_protocol == 'http2' ): ?>
  195. <link rel="stylesheet" type="text/css" media="screen" href="files/cto_layout/scripts/swiper/swiper.min.css">
  196. <link rel="stylesheet" type="text/css" media="screen" href="files/cto_layout/scripts/mmenu/mmenu.css">
  197. <link rel="stylesheet" type="text/css" media="screen" href="files/cto_layout/css/animate.css">
  198. <link rel="stylesheet" type="text/css" media="screen" href="files/cto_layout/scripts/jquery.mb.YTPlayer/css/YTPlayer.css">
  199. <link rel="stylesheet" type="text/css" media="screen" href="files/cto_layout/scripts/isotope/isotope_styles.css">
  200. <link rel="stylesheet" type="text/css" media="screen" href="files/cto_layout/css/font-awesome.min.css">
  201. <link rel="stylesheet" type="text/css" media="screen" href="files/cto_layout/css/framework.css">
  202. <link rel="stylesheet" type="text/css" media="screen" href="files/cto_layout/css/customelements.css">
  203. <link rel="stylesheet" type="text/css" media="screen" href="files/cto_layout/css/customcatalog.css">
  204. <link rel="stylesheet" type="text/css" media="screen" href="files/cto_layout/css/styles.css">
  205. <?php else: ?>
  206. <link rel="stylesheet" type="text/css" media="screen" href="<?php
  207.     $objCombiner = new \Contao\Combiner();
  208.     $objCombiner->add('files/cto_layout/scripts/swiper/swiper.min.css');
  209.     $objCombiner->add('files/cto_layout/scripts/mmenu/mmenu.css');
  210.     $objCombiner->add('files/cto_layout/css/animate.css');
  211.     $objCombiner->add('files/cto_layout/scripts/jquery.mb.YTPlayer/css/YTPlayer.css');
  212.     $objCombiner->add('files/cto_layout/scripts/isotope/isotope_styles.css');
  213.     $objCombiner->add('files/cto_layout/css/font-awesome.min.css');
  214.     $objCombiner->add('files/cto_layout/css/framework.css');
  215.     $objCombiner->add('files/cto_layout/css/customelements.css');
  216.     $objCombiner->add('files/cto_layout/css/customcatalog.css');
  217.     $objCombiner->add('files/cto_layout/css/styles.css');
  218.     echo $objCombiner->getCombinedFile();?>">
  219. <?php endif; ?>
  220. <?php if($this->pct_layout_css): ?>
  221. <link id="layout_css" rel="stylesheet" title="layout_css" type="text/css" href="<?php echo $this->pct_layout_css?>">
  222. <?php endif; ?>
  223. <link id="layout_css_temp" rel="stylesheet" title="layout_css_temp" href="files/cto_layout/themedesigner/css/5_1583408487.css">
  224. <?php if(filesize(TL_ROOT.'/files/cto_layout/css/customize.css') > 0): ?><link rel="stylesheet" type="text/css" href="files/cto_layout/css/customize.css"><?php endif; ?>
  225. <?php echo $this->head?>
  226. <script>
  227.     function initGoogleAnalytics()
  228.     {
  229.         (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  230.       ga('create', 'UA-155725062-1', 'auto');
  231.       <?php if (Config::get('privacyAnonymizeGA')): ?>
  232.         ga('set', 'anonymizeIp', true);
  233.       <?php endif; ?>
  234.       ga('send', 'pageview');
  235.     }    
  236.         
  237.     // Optin privacy setting token
  238.     if(localStorage.getItem('user_privacy_settings') >= 3)
  239.     {
  240.           initGoogleAnalytics();
  241.     }
  242.     
  243.     // listen to Eclipse.user_privacy Event
  244.     jQuery(document).on('Eclipse.user_privacy',function(event,params)
  245.     {
  246.         if(params.level >= 3)
  247.         {
  248.             initGoogleAnalytics();
  249.         }
  250.     });
  251. </script>
  252. <?php $this->endblock(); ?>
  253. </head>
  254. <body class="{{ua::class}}<?php if ($this->class) echo ' ' trim(preg_replace('/fa(?:-[-\w]+|\b)/',''$this->class)); ?>"<?php if ($this->onload): ?> onload="<?php echo $this->onload?>"<?php endif; ?> itemscope itemtype="http://schema.org/WebPage">
  255. <?php if (!empty($this->sections['body_top'])): ?><div class="body_top"><?php echo $this->sections['body_top']; ?></div><?php endif; ?>
  256. <div>
  257. <?php $this->block('body'); ?>
  258.     <div id="contentwrapper">
  259.         <div id="fix-wrapper">
  260.         <div id="top-wrapper">
  261.             <?php if (!empty($this->sections['top_section'])): ?>
  262.                 <?php $this->block('top_section'); ?>
  263.                     <div id="top">
  264.                         <div class="inside">
  265.                             <?php echo $this->sections['top_section']; ?>
  266.                             <hr class="clear">
  267.                         </div>
  268.                         <div class="offcanvas-trigger"><span class="line1"></span><span class="line2"></span></div>
  269.                     </div>
  270.                 <?php $this->endblock(); ?>
  271.             <?php endif; ?>
  272.             <?php $this->block('header'); ?>
  273.                 <?php if ($this->header): ?>
  274.                     <header id="header" class="header original" itemscope itemtype="http://schema.org/WPHeader">
  275.                         <div class="inside">
  276.                             <?php echo $this->header?>
  277.                         <div class="clear"></div>
  278.                         </div>
  279.                     </header>
  280.                     <div class="clear"></div>
  281.                 <?php endif; ?>
  282.             <?php $this->endblock(); ?>
  283.         </div>
  284.         </div>
  285.         <?php $this->block('slider'); ?>
  286.             <div id="slider"<?php if(empty(trim$this->sections['slider']))): ?> class="empty"<?php endif; ?>>
  287.                 <?php if(!empty(trim$this->sections['slider']))): ?>
  288.                 <div class="inside">
  289.                     <?php echo trim$this->sections['slider'] ); ?>
  290.                 </div>
  291.                 <?php endif; ?>
  292.             </div>
  293.         <?php $this->endblock(); ?>
  294.         <?php if (!empty($this->sections['breadcrumb'])): ?>
  295.             <?php $this->block('breadcrumb'); ?>
  296.                 <div id="breadcrumb"><?php echo $this->sections['breadcrumb']; ?></div>
  297.             <?php $this->endblock(); ?>
  298.         <?php endif; ?>
  299.         <?php $this->block('container'); ?>
  300.             <div id="wrapper">
  301.                 <div id="container">
  302.                     <?php $this->block('main'); ?>
  303.                         <section id="main" itemscope itemtype="http://schema.org/WebPageElement" itemprop="mainContentOfPage">
  304.                             <div class="inside">
  305.                                 <?php echo $this->main?>
  306.                             </div>
  307.                         </section>
  308.                     <?php $this->endblock(); ?>
  309.                     <?php $this->block('left'); ?>
  310.                         <?php if ($this->left): ?>
  311.                             <aside id="left">
  312.                                 <div class="inside">
  313.                                     <?php echo $this->left?>
  314.                                 </div>
  315.                             </aside>
  316.                         <?php endif; ?>
  317.                     <?php $this->endblock(); ?>
  318.                     <?php $this->block('right'); ?>
  319.                         <?php if ($this->right): ?>
  320.                             <aside id="right">
  321.                                 <div class="inside">
  322.                                     <?php echo $this->right?>
  323.                                 </div>
  324.                             </aside>
  325.                         <?php endif; ?>
  326.                     <?php $this->endblock(); ?>
  327.                 </div>
  328.             </div>
  329.         <?php $this->endblock(); ?>
  330.         <?php $this->block('footer'); ?>
  331.             <?php if ($this->footer): ?>
  332.                 <footer id="footer" itemscope itemtype="http://schema.org/WPFooter">
  333.                     <div class="inside">
  334.                         <?php echo $this->footer?>
  335.                         <a href="{{env::request}}#contentwrapper" class="totop"></a>
  336.                     </div>
  337.                 </footer>
  338.             <?php endif; ?>
  339.         <?php $this->endblock(); ?>
  340.         <?php if (!empty($this->sections['bottom'])): ?>
  341.             <?php $this->block('bottom'); ?>
  342.                 <div id="bottom">
  343.                     <div class="inside">
  344.                         <?php echo $this->sections['bottom']; ?>
  345.                     </div>
  346.                 </div>
  347.             <?php $this->endblock(); ?>
  348.         <?php endif; ?>
  349.     </div>
  350. </div>
  351. <div class="body_bottom"><?php echo $this->sections['body_bottom']; ?></div>
  352. <?php if (!empty($this->sections['body'])): ?><?php echo $this->sections['body']; ?><?php endif; ?>
  353. <?php if (!empty($this->sections['mmenu_top'])): ?><div id="mmenu_top"><?php echo $this->sections['mmenu_top']; ?></div><?php endif; ?>
  354. <?php if (!empty($this->sections['mmenu_bottom'])): ?><div id="mmenu_bottom"><?php echo $this->sections['mmenu_bottom']; ?></div><?php endif; ?>
  355. <script>jQuery.noConflict();</script>
  356. <script src="assets/jquery-ui/js/jquery-ui.min.js"></script>
  357. <?php echo $this->mootools?>
  358. <?php if( $this->seo_protocol == 'http2' ): ?>
  359.     <script src="files/cto_layout/scripts/cookie/jquery.cookie.js"></script>
  360.     <script src="files/cto_layout/scripts/mmenu/mmenu.js"></script>
  361.     <script src="files/cto_layout/scripts/waypoints/waypoints.min.js"></script>
  362.     <script src="files/cto_layout/scripts/jquery.mb.YTPlayer/inc/jquery.mb.YTPlayer.js"></script>
  363.     <script src="files/cto_layout/scripts/isotope/jquery.isotope.min.js"></script>
  364.     <script src="files/cto_layout/scripts/typed/js/typed.js"></script>
  365.     <script src="files/cto_layout/scripts/countup/countUp.min.js"></script>
  366.     <script src="files/cto_layout/scripts/parallax/jquery.stellar.min.js"></script>
  367.     <script src="files/cto_layout/scripts/doubletaptogo/doubletaptogo.js"></script>
  368.     <script src="files/cto_layout/scripts/easypiecharts/easypiechart.min.js"></script>
  369.     <script src="files/cto_layout/scripts/swiper/swiper.jquery.min.js"></script>
  370.     <script src="files/cto_layout/scripts/scripts.js"></>
  371. <?php else: ?>
  372. <script src="<?php
  373.     $objCombiner = new \Contao\Combiner();
  374.     $objCombiner->add('files/cto_layout/scripts/cookie/jquery.cookie.js');
  375.     $objCombiner->add('files/cto_layout/scripts/mmenu/mmenu.js');
  376.     $objCombiner->add('files/cto_layout/scripts/waypoints/waypoints.min.js');
  377.     $objCombiner->add('files/cto_layout/scripts/jquery.mb.YTPlayer/inc/jquery.mb.YTPlayer.js');
  378.     $objCombiner->add('files/cto_layout/scripts/isotope/jquery.isotope.min.js');
  379.     $objCombiner->add('files/cto_layout/scripts/typed/js/typed.js');
  380.     $objCombiner->add('files/cto_layout/scripts/countup/countUp.min.js');
  381.     $objCombiner->add('files/cto_layout/scripts/parallax/jquery.stellar.min.js');
  382.     $objCombiner->add('files/cto_layout/scripts/doubletaptogo/doubletaptogo.js');
  383.     $objCombiner->add('files/cto_layout/scripts/easypiecharts/easypiechart.min.js');
  384.     $objCombiner->add('files/cto_layout/scripts/swiper/swiper.jquery.min.js');
  385.     $objCombiner->add('files/cto_layout/scripts/scripts.js');
  386.     echo $objCombiner->getCombinedFile();?>"></script>
  387. <?php endif; ?>
  388. <?php if(filesize(TL_ROOT.'/files/cto_layout/scripts/customize.js') > 0): ?><script src="files/cto_layout/scripts/customize.js"></script><?php endif; ?>
  389. <?php $this->endblock(); ?>
  390. </body>
  391. </html>