templates/homepage.html.twig line 1

Open in your IDE?
  1. {# get root node if there is no document defined (for pages which are routed directly through static route) #}
  2. {% if not document is defined or not document %}
  3.     {% set document = pimcore_document(1) %}
  4. {% endif %}
  5. {# get the document which should be used to start in navigation | default home #}
  6. {% if locale == 'de' %}
  7.     {% set navStartNode = pimcore_document( constant('SITE_ROOT_ID_DE') ) %}
  8. {% elseif locale == 'en' %}
  9.     {% set navStartNode = pimcore_document( constant('SITE_ROOT_ID_EN') ) %}
  10. {% else %}
  11.     {% set navStartNode = document.getProperty('navigationRoot') %}
  12. {% endif %}
  13. {# Pimcore default -> deactivated
  14. {% if not navStartNode is instanceof('\\Pimcore\\Model\\Document\\Page') %}
  15.     {% set navStartNode = pimcore_document(1) %}
  16. {% endif %}
  17. #}
  18. {% set mainNavigation = pimcore_build_nav({
  19.     active: document,
  20.     root: navStartNode
  21. }) %}
  22. {% if document.getDescription is not empty %}
  23.       {% do pimcore_head_meta().setDescription(document.getDescription) %}
  24. {% endif %}
  25. {% do pimcore_head_meta().setProperty('og:locale', locale) %}
  26. {% do pimcore_head_meta().setProperty('og:url', app.request.uri ) %}
  27. {% do pimcore_head_meta().setProperty('og:site_name', constant('SITE_NAME') ) %}
  28. {% if newsarticle is defined %}
  29.     {% if newsarticle is instanceof('\\Pimcore\Model\DataObject\Newsblog') %}
  30.         {% do pimcore_head_meta().setProperty('og:type', 'article') %}
  31.         {% do pimcore_head_meta().setProperty('og:title', newsarticle.headline ) %}
  32.         {% do pimcore_head_meta().setProperty('og:description', newsarticle.teaser | raw ) %}
  33.         {% do pimcore_head_meta().setProperty('article:modified_time', date( timestamp ).format('c') ) %}
  34.     {% endif %}
  35. {% endif %}
  36. {% set user = app.user %}
  37. <!DOCTYPE html>
  38. <html lang="{{ locale }}"> 
  39.   <head>
  40.     <meta charset="utf-8">
  41.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  42.     <meta name="viewport" content="width=device-width, initial-scale=1">    
  43.     <title>{% if document.getTitle() is not empty %}{{ document.getTitle() }}{% endif %}</title>   
  44.     {{ pimcore_head_meta() }}
  45.     <link rel="canonical" href="{{ app.request.uri }}" />
  46.     <meta name="author" content="{{ constant('SITE_NAME') }}">
  47.     <meta name="generator" content="78media solutions">    
  48.     <link rel="icon" href="{{ constant('SITE_TEMPLATE_PATH') }}/img/favicons/favicon-192x192.png" sizes="192x192" type="image/png">
  49.     <link rel="apple-touch-icon" href="{{ constant('SITE_TEMPLATE_PATH') }}/img/favicons/apple-touch-icon.png" sizes="180x180">
  50.     <link rel="icon" href="{{ constant('SITE_TEMPLATE_PATH') }}/img/favicons/favicon-32x32.png" sizes="32x32" type="image/png">
  51.     <link rel="icon" href="{{ constant('SITE_TEMPLATE_PATH') }}/img/favicons/favicon-16x16.png" sizes="16x16" type="image/png">
  52.     <link rel="manifest" href="{{ constant('SITE_TEMPLATE_PATH') }}/img/favicons/manifest.json">
  53.     <link rel="mask-icon" href="{{ constant('SITE_TEMPLATE_PATH') }}/img/favicons/safari-pinned-tab.svg" color="#563d7c">
  54.     <link rel="icon" href="{{ constant('SITE_TEMPLATE_PATH') }}/img/favicons/favicon.ico">    
  55.     <!-- base -->
  56.     <link href="{{ constant('SITE_TEMPLATE_PATH') }}/css/bootstrap.min.css" rel="stylesheet">
  57.     <link href="{{ constant('SITE_TEMPLATE_PATH') }}/css/animate.min.css" rel="stylesheet" />
  58.     <link href="{{ constant('SITE_TEMPLATE_PATH') }}/css/jquery.fancybox.min.css" rel="stylesheet">
  59.     <link href="{{ constant('SITE_TEMPLATE_PATH') }}/plugins/slick/slick.css" rel="stylesheet">
  60.     <link href="{{ constant('SITE_TEMPLATE_PATH') }}/plugins/slick/slick-theme.css" rel="stylesheet">
  61.     <!-- theme -->
  62.     <link href="{{ constant('SITE_TEMPLATE_PATH') }}/css/screen.less?v={{ 'now'|date('U') }}" rel="stylesheet/less" type="text/css">   
  63.     <script src="{{ constant('SITE_TEMPLATE_PATH') }}/js/less.min.js" language="javascript"></script> 
  64.     {% if editmode %}
  65.     <link href="{{ constant('SITE_TEMPLATE_PATH') }}/css/editmode.css?v={{ 'now'|date('U') }}" rel="stylesheet">
  66.     {% endif %}
  67.     
  68.     <!-- Google tag (gtag.js) -->
  69.     <script async src="https://www.googletagmanager.com/gtag/js?id=AW-927743781">
  70.     </script>
  71.     <script>
  72.       window.dataLayer = window.dataLayer || [];
  73.       function gtag(){dataLayer.push(arguments);}
  74.       gtag('js', new Date());
  75.       gtag('config', 'AW-927743781');
  76.     </script>
  77.   </head>
  78.   <body id="body">
  79.     <header>
  80.       <!-- div wrapper needed !!! -->
  81.       <div class="header-options">       
  82.         <a class="navbar-toggler d-block" data-toggle="navbar-header">
  83.           <div id="nav-icon">
  84.             <span></span>
  85.             <span></span>
  86.             <span></span>
  87.             <span></span>
  88.           </div>
  89.         </a>        
  90.         <a class="language-switch" data-toggle="language-selection" href="/{{ (locale=='en' ? 'de' : 'en') }}/">
  91.           <img class="language {{ (locale=='en') ? 'active-en' : 'active-de' }}" src="{{ constant('SITE_TEMPLATE_PATH') }}/img/flags/de-en.png" />
  92.         </a>
  93.         <a href="https://www.deutschertourismusverband.de/">
  94.           <img class="dtv-link" src="{{ constant('SITE_TEMPLATE_PATH') }}/img/dtv_4_sterneferien.png" />
  95.         </a>       
  96.       </div>
  97.       <!-- end div wrapper !!! -->
  98.       <div class="header-logo">
  99.         <a href="/{{ locale }}">
  100.           <img src="{{ constant('SITE_TEMPLATE_PATH') }}/img/logo_7schwaben.png" alt="7SCHWABEN" title="7SCHWABEN Ferienwohnungen Apartments in Bad Urach" />
  101.         </a>
  102.       </div>      
  103.     </header>
  104.     
  105.     {# \Pimcore\Navigation\Renderer\Menu #}
  106.     {% set menuRenderer = pimcore_nav_renderer('menu') %}
  107.     {{ menuRenderer.renderPartial( mainNavigation, '_includes/7schwaben_navigation.html.twig' ) | raw }}
  108.     
  109.     <main>
  110.       <!-- page banner -->
  111.       <div class="page-banner">
  112.         {{ pimcore_image('home_main_image') }}           
  113.         <div class="container">
  114.           <div class="row">
  115.             <div class="col-12">
  116.               <div class="page-header main-header">
  117.                 <h3><span class="d-block d-sm-inline">{{ pimcore_input('home_main_header3') | replace({'7SCHWABEN': '<strong class="condensed"><span class="red">7</span>SCHWABEN</strong>'}) | raw }}</h3> 
  118.                 <h1>{{ pimcore_input('home_main_header1') | replace({'7SCHWABEN': '<strong class="condensed"><span class="red">7</span>SCHWABEN</strong>'}) | raw }}</h1> 
  119.               </div>  
  120.             </div>
  121.           </div>
  122.         </div>
  123.       </div>
  124.       <!-- slider gallery -->
  125.       <!--
  126.       <section>           
  127.         {{ pimcore_renderlet('slidergallery', {
  128.             "controller" : "App\\Controller\\DocumentController::sliderGalleryAction",
  129.             "title" : "Assets-Ordner mit Bildern per Drag+Drop zuweisen",
  130.             "height" : 400
  131.           })
  132.         }}        
  133.         <div class="container mt-5">
  134.           <div class="row">
  135.             <div class="col-12">
  136.               {{ pimcore_wysiwyg('home_main_welcome') | replace({'7SCHWABEN': '<strong class="condensed"><span class="red">7</span>SCHWABEN</strong>'}) | raw }}  
  137.             </div>
  138.           </div>
  139.         </div>       
  140.       </section>
  141.       -->
  142.       
  143.       <!-- apartments section -->     
  144.       <section class="bg-grey" style="overflow:hidden;">        
  145.         <!-- apartments slider -->       
  146.         <div class="appartments-slider">                  
  147.           {% if (apartments is defined and apartments | length > 0) %}
  148.           {% for apartment in apartments %}              
  149.           <div class="appartment-preview">
  150.                       <img class="appartment-preview-image" src="{{ apartment.mainImage }}" />
  151.             <div class="appartment-preview-box">
  152.               <h3 class="appartment-name red">
  153.                 {{ apartment.name }}
  154.               </h3>
  155.               <div class="appartment-description">
  156.                 {{ apartment.shortDescription }}
  157.               </div>
  158.               <div class="appartment-options">
  159.                 <a class="btn btn-default" href="/{{ locale }}/buchen.php">{{ 'booking' | trans }}</a><a class="btn btn-default" href="/{{ locale }}/apartments/{{ apartment.key }}">{{ 'details' | trans }}</a>
  160.               </div>
  161.             </div>
  162.                   </div>          
  163.           {% endfor %}
  164.           {% endif %}
  165.         </div>
  166.         <!-- end apartments slider -->      
  167.       </section>
  168.       
  169.       <section>
  170.         <div class="container mt-2">
  171.           <div class="row">
  172.             <div class="col-12">
  173.               {{ pimcore_wysiwyg('home_main_welcome') | replace({'7SCHWABEN': '<strong class="condensed"><span class="red">7</span>SCHWABEN</strong>'}) | raw }}  
  174.             </div>
  175.           </div>
  176.         </div>       
  177.       </section>
  178.       
  179.       <!-- apartments section -->
  180.       <section>
  181.         <div class="container">
  182.           <div class="page-header scroll-animated" data-animation="slideInUp">
  183.             <h3>{{ pimcore_input('home_section1_header3') | replace({'7SCHWABEN': '<strong class="condensed"><span class="red">7</span>SCHWABEN</strong>'}) | raw }}</h3> 
  184.             <p class="grey">{{ pimcore_input('home_section1_text1') | replace({'7SCHWABEN': '<strong class="condensed"><span class="red">7</span>SCHWABEN</strong>'}) | raw }}</p>
  185.           </div>          
  186.           
  187.           <!-- slider gallery -->
  188.           <div class="document-gallery-wrapper">           
  189.             {{ pimcore_renderlet('slidergallery2', {
  190.                 "controller" : "App\\Controller\\DocumentController::sliderGalleryAction",
  191.                 "title" : "Assets-Ordner mit Bildern per Drag+Drop zuweisen",
  192.                 "height" : 400
  193.               })
  194.             }}
  195.           </div>
  196.           
  197.           <div class="page-introduction scroll-animated" data-animation="slideInUp">
  198.             {{ pimcore_wysiwyg('home_section1_text2') | replace({'7SCHWABEN': '<strong class="condensed"><span class="red">7</span>SCHWABEN</strong>'}) | raw }}
  199.           </div>
  200.                   
  201.           {% if (apartments is defined and apartments | length > 0) %}
  202.           {% for apartment in apartments %}            
  203.           <div class="apmt-preview-box">
  204.             <div class="row">
  205.               <div class="col-12 col-lg-3">
  206.                 <div class="apmt-preview-image">
  207.                   <img class="apmt-image" src="{{ apartment.logo }}" />
  208.                 </div>
  209.               </div>
  210.               <div class="col-12 col-lg-9">
  211.                 <div class="apmt-preview-description">
  212.                   <h3 class="apmt-description-header">{% if apartment.stars > 0 %}<img class="apmt-stars-rating" alt="{{ apartment.stars }} Sterne" src="/themes/7schwaben/img/{{ apartment.stars }}_Sterne.png" />{% endif %}{{ apartment.shortDescription | raw }}</h3>
  213.                   <div class="apmt-preview-icons">
  214.                     {% if apartment.icon1 %}<span class="icon-apmt icon-apmt-double"></span>{% endif %}
  215.                     {% if apartment.icon2 %}<span class="icon-apmt icon-apmt-single"></span>{% endif %}
  216.                     {% if apartment.icon3 %}<span class="icon-apmt icon-apmt-bunk"></span>{% endif %}                   
  217.                     {% if apartment.icon4 %}<span class="icon-apmt icon-apmt-terrace"></span>{% endif %}
  218.                     {% if apartment.icon5 %}<span class="icon-apmt icon-apmt-disabled"></span></span>{% endif %}
  219.                     {% if apartment.icon6 %}<span class="icon-apmt icon-apmt-balcony"></span>{% endif %}
  220.                     {% if apartment.icon7 %}<span class="icon-apmt icon-apmt-view"></span>{% endif %}
  221.                   </div>
  222.                   <div>
  223.                     {{ apartment.description | raw }}
  224.                   </div>
  225.                   <div class="apmt-price-tag">
  226.                     {{ 'from' | trans }} {{ apartment.price }} &euro;
  227.                   </div>
  228.                 </div> 
  229.                 <div class="apmt-preview-actions"> 
  230.                   <a class="btn btn-default" href="/{{ locale }}/apartments/{{ apartment.key }}">{{ 'details' | trans }}</a> &nbsp; <a class="btn btn-default" href="/{{ locale }}/buchen.php">{{ 'booking' | trans }}</a>
  231.                 </div>
  232.               </div>
  233.             </div>
  234.           </div>            
  235.           {% endfor %}
  236.           {% endif %}
  237.         </div>
  238.       </section>
  239.       
  240.       <section>
  241.         <div class="container">                   
  242.           <div class="page-header scroll-animated" data-animation="slideInUp">
  243.             <h3>{{ pimcore_input('home_section2_header3') | replace({'7SCHWABEN': '<strong class="condensed"><span class="red">7</span>SCHWABEN</strong>'}) | raw }}</h3> 
  244.             <p class="grey">{{ pimcore_input('home_section2_text1') | replace({'7SCHWABEN': '<strong class="condensed"><span class="red">7</span>SCHWABEN</strong>'}) | raw }}</p>
  245.           </div>
  246.           <div class="page-introduction scroll-animated" data-animation="slideInUp">
  247.             <div class="row">
  248.               <div class="col-12 col-lg-6">
  249.                 {{ pimcore_image('home_section2_image1') | replace({'7SCHWABEN': '<strong class="condensed"><span class="red">7</span>SCHWABEN</strong>'}) | raw }}
  250.               </div>
  251.               <div class="col-12 col-lg-6">
  252.                 {{ pimcore_wysiwyg('home_section2_text2') | replace({'7SCHWABEN': '<strong class="condensed"><span class="red">7</span>SCHWABEN</strong>'}) | raw }}          
  253.               </div>
  254.           </div>
  255.         </div>
  256.       </section>
  257.       
  258.       <!-- apartments section -->     
  259.       <section class="bg-grey" style="overflow:hidden;">        
  260.         <!-- apartments slider -->       
  261.         <div class="appartments-slider">                  
  262.           {% if (apartments is defined and apartments | length > 0) %}
  263.           {% for apartment in apartments %}              
  264.           <div class="appartment-preview">
  265.                       <img class="appartment-preview-image" src="{{ apartment.mainImage }}" />
  266.             <div class="appartment-preview-box">
  267.               <h3 class="appartment-name red">
  268.                 {{ apartment.name }}
  269.               </h3>
  270.               <div class="appartment-description">
  271.                 {{ apartment.shortDescription }}
  272.               </div>
  273.               <div class="appartment-options">
  274.                 <a class="btn btn-default" href="/{{ locale }}/buchen.php">{{ 'booking' | trans }}</a><a class="btn btn-default" href="/{{ locale }}/apartments/{{ apartment.key }}">{{ 'details' | trans }}</a>
  275.               </div>
  276.             </div>
  277.                   </div>          
  278.           {% endfor %}
  279.           {% endif %}
  280.         </div>
  281.         <!-- end apartments slider -->      
  282.       </section>
  283.       <div id="footer-switch" style="height:1px; background:transparent;">
  284.       </div>
  285.   
  286.       {{ include('_includes/contactForm.html.twig') }}
  287.       
  288.       {% if articles is defined and articles | length > 0 %}
  289.       <div class="widget news-widget animate__animated animate__bounceInUp" id="news-widget">
  290.         <a class="widget-toggler" data-toggle="news-widget"><span class="lsf">plus</span></a>
  291.         <div class="widget-content">
  292.           <h4 class="widget-header">News</h4>
  293.           <div class="widget-body">
  294.             <ul class="news-list">
  295.               {% for article in articles %}
  296.               <li class="news-list-item">
  297.                 <h3 class="news-item-header">{{ article.headline }}</h3>
  298.                 <a href="/{{ locale ~ blog.blogPathPrefix }}/{{ article.getKey }}" class="news-item-link"><span class="lsf">right</span> {{ 'news-learn-more' | trans }}</a>
  299.               </li>
  300.               {% endfor %}
  301.             </ul>
  302.           </div>
  303.         </div>
  304.       </div>
  305.       {% endif %}
  306.   
  307.       <!-- document block content -->  
  308.       {{ block('main_content') }}
  309.     </main>
  310.     {{ include('_includes/footer.html.twig') }}
  311.   </body>
  312. </html>