* Startseite
* Sidebar-Widgets: Reisemagazin, Reiseführer, Angebote git-svn-id: http://78.47.251.156/svn/dev/sterntours-3@3301 f459cee4-fb09-11de-96c3-f9c5f16c3c76
This commit is contained in:
parent
353b758bcd
commit
4278e110fc
12 changed files with 305 additions and 381 deletions
|
|
@ -49,6 +49,7 @@
|
||||||
%}
|
%}
|
||||||
<link rel="stylesheet" href="{{ asset_url }}"/>
|
<link rel="stylesheet" href="{{ asset_url }}"/>
|
||||||
{% endstylesheets %}
|
{% endstylesheets %}
|
||||||
|
<style>.box-slider .slide:not(.active) {display: none;}</style>{# TODO Move to custom.css #}
|
||||||
{% endblock stylesheets %}
|
{% endblock stylesheets %}
|
||||||
|
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4 col-sm-12 col-xs-12 text-center">
|
<div class="col-md-4 col-sm-12 col-xs-12 text-center">
|
||||||
<a href="#" title=""><i class="fa fa-envelope"></i> Kontaktformular</a>
|
<a href="/kontakt" title=""><i class="fa fa-envelope"></i> Kontaktformular</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3 col-sm-12 col-xs-12">
|
<div class="col-md-3 col-sm-12 col-xs-12">
|
||||||
<div class="social-footer text-right">
|
<div class="social-footer text-right">
|
||||||
<a href="#" title="Über uns"><i class="fa fa-users"></i></a>
|
<a href="/docs/ueber-uns.html" title="Über uns"><i class="fa fa-users"></i></a>
|
||||||
<a href="#" title="Facebook"><i class="fa fa-facebook"></i></a>
|
<a href="#" title="Facebook"><i class="fa fa-facebook"></i></a>
|
||||||
<a href="#" title="Google"><i class="fa fa-google-plus"></i></a>
|
<a href="#" title="Google"><i class="fa fa-google-plus"></i></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
<div class="owl-fullwidth owl-carousel owl-theme">
|
||||||
|
|
||||||
|
{% for page in pages %}
|
||||||
|
<div class="owl-item-full">
|
||||||
|
<div class="travel-wrapper get-box-link">
|
||||||
|
<div class="item text-center">
|
||||||
|
|
||||||
|
|
||||||
|
<div class="item-img">
|
||||||
|
{% include 'default/components/pageBoxImage.html.twig' %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="box_mid">
|
||||||
|
|
||||||
|
<div class="hl5">{{ page.title }}</div>
|
||||||
|
|
||||||
|
{% if (page.boxBody ?? page.description) is not empty %}
|
||||||
|
<p>{{ page.boxBody|default(page.description) }}</p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if page.travelProgram is not empty and page.travelProgram.lowestPrice > 0 %}
|
||||||
|
<div class="price">
|
||||||
|
Für {{ page.travelProgram.lowestPrice|number_format }},- € p.P.
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a class="item-button is-box-link" href="{{ page.urlPath }}">ansehen</a>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div><!-- end travel-wrapper -->
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
@ -15,17 +15,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if child_page.boxImageUrl is not empty %}
|
{% include 'default/components/pageBoxImage.html.twig' with {page: child_page} %}
|
||||||
{% set image_url = child_page.boxImageUrl %}
|
|
||||||
{% set image_alt = child_page.travelProgram.title|default(child_page.title) %}
|
|
||||||
{% elseif child_page.travelProgram is not empty and child_page.travelProgram.previewImage is not empty %}
|
|
||||||
{% set image_url = '/uploads/travel_program/' ~ child_page.travelProgram.previewImage.fileNameWithExtension %}
|
|
||||||
{% set image_alt = child_page.title %}
|
|
||||||
{% else %}
|
|
||||||
{% set image_url = '/bundles/app/images/no-picture.png' %}
|
|
||||||
{% set image_alt = 'Kein Vorschaubild vorhanden' %}
|
|
||||||
{% endif %}
|
|
||||||
<img src="{{ image_url }}" alt="{{ image_alt }}">
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="box_mid">
|
<div class="box_mid">
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
{% if page.boxImageUrl is not empty %}
|
||||||
|
{% set image_url = page.boxImageUrl %}
|
||||||
|
{% set image_alt = page.travelProgram.title|default(page.title) %}
|
||||||
|
{% elseif page.travelProgram is not empty and page.travelProgram.previewImage is not empty %}
|
||||||
|
{% set image_url = '/uploads/travel_program/' ~ page.travelProgram.previewImage.fileNameWithExtension %}
|
||||||
|
{% set image_alt = page.title %}
|
||||||
|
{% else %}
|
||||||
|
{% set image_url = '/bundles/app/images/no-picture.png' %}
|
||||||
|
{% set image_alt = 'Kein Vorschaubild vorhanden' %}
|
||||||
|
{% endif %}
|
||||||
|
<img src="{{ image_url }}" alt="{{ image_alt }}">
|
||||||
|
|
@ -47,93 +47,16 @@
|
||||||
|
|
||||||
</div><!-- end widget -->
|
</div><!-- end widget -->
|
||||||
|
|
||||||
|
{% if (show_travel_guide_sidebar_widget ?? true) and page is defined and page.country is not empty %}
|
||||||
|
{{ render(controller('AppBundle:Default:travelGuideSidebarWidget', {country: page.country})) }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div class="widget clearfix">
|
{% if (show_travel_magazine_sidebar_widget ?? true) and page is defined and page.country is not empty %}
|
||||||
<div class="widget-title">
|
{{ render(controller('AppBundle:Default:travelMagazineSidebarWidget', {country: page.country})) }}
|
||||||
Video
|
{% endif %}
|
||||||
</div><!-- end title -->
|
|
||||||
<div class="travel-wrapper">
|
|
||||||
<div itemprop="video" itemscope itemtype="http://schema.org/VideoObject">
|
|
||||||
<div class="item text-center">
|
|
||||||
<div class="embed-responsive embed-responsive-16by9">
|
|
||||||
<meta itemprop="embedURL" content="http://www.youtube.com/watch?v=XzgjEBOlC8I">
|
|
||||||
<meta itemprop="thumbnailUrl" content="http://exampel.com/Party_Thumbnail.png">
|
|
||||||
<meta content="Lorem ipsum dolor sit amet, consectetuer adipiscing elit.">
|
|
||||||
<meta itemprop="uploadDate" content="2013-10-01T08:00:00+08:00">
|
|
||||||
<meta itemprop="duration" content="T3M35S">
|
|
||||||
<iframe class="embed-responsive-item" width="560" height="315" src="http://www.youtube.com/embed/XzgjEBOlC8I" frameborder="0" allowfullscreen></iframe>
|
|
||||||
</div>
|
|
||||||
<div class="box_mid">
|
|
||||||
<div class="hl5" itemprop="name">Unser Video des Tages</div>
|
|
||||||
<p itemprop="description">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div><!-- end travel-wrapper -->
|
|
||||||
|
|
||||||
<div class="item-switch clearfix">
|
{% if (show_offers_sidebar_widget ?? true) and page is defined and page.country is not empty %}
|
||||||
<a href="#prev" class="item-button-prev">zurück</a>
|
{{ render(controller('AppBundle:Default:offersSidebarWidget', {country: page.country})) }}
|
||||||
<a href="#next" class="item-button-next">weiter</a>
|
{% endif %}
|
||||||
</div>
|
|
||||||
|
|
||||||
</div><!-- end widget -->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="widget clearfix">
|
|
||||||
<div class="widget-title">
|
|
||||||
Reiseführer
|
|
||||||
</div><!-- end title -->
|
|
||||||
<div class="newswidget clearfix">
|
|
||||||
<a href="#"><div class="hl5">Sicherheit auf Reisen: Alles ist relativ</div>
|
|
||||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab aut dignissimos ea est, impedit incidunt, laboriosam maxime molestias numquam odio officiis. Ab aut dignissimos ea est, impedit incidunt.</p></a>
|
|
||||||
<div class="item-switch clearfix">
|
|
||||||
<a href="#prev" class="item-button-prev">zurück</a>
|
|
||||||
<a href="#next" class="item-button-next">weiter</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div><!-- end newswidget -->
|
|
||||||
</div><!-- end widget -->
|
|
||||||
|
|
||||||
|
|
||||||
<div class="widget clearfix">
|
|
||||||
<div class="widget-title">
|
|
||||||
Reisemagazin
|
|
||||||
</div><!-- end title -->
|
|
||||||
<div class="newswidget clearfix">
|
|
||||||
<a href="#"><div class="hl5">Sicherheit auf Reisen: Alles ist relativ</div>
|
|
||||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab aut dignissimos ea est, impedit incidunt, laboriosam maxime molestias numquam odio officiis. Ab aut dignissimos ea est, impedit incidunt.</p></a>
|
|
||||||
<div class="item-switch clearfix">
|
|
||||||
<a href="#prev" class="item-button-prev">zurück</a>
|
|
||||||
<a href="#next" class="item-button-next">weiter</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div><!-- end newswidget -->
|
|
||||||
</div><!-- end widget -->
|
|
||||||
|
|
||||||
<div class="widget clearfix">
|
|
||||||
<div class="widget-title">
|
|
||||||
Angebote
|
|
||||||
</div><!-- end title -->
|
|
||||||
<div class="travel-wrapper">
|
|
||||||
<a href="#1" class="item text-center">
|
|
||||||
<div class="item-img">
|
|
||||||
{% image '@AppBundle/Resources/public/images/page1_img1.jpg' %}<img src="{{ asset_url }}" alt="">{% endimage %}
|
|
||||||
</div>
|
|
||||||
<div class="box_mid">
|
|
||||||
<div class="hl5">8 Tage Rundreise Höhepunkte Israels</div>
|
|
||||||
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
|
|
||||||
<div class="price">Für 550,- EUR</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div><!-- end travel-wrapper -->
|
|
||||||
|
|
||||||
<div class="item-switch clearfix">
|
|
||||||
<a href="#prev" class="item-button-prev">zurück</a>
|
|
||||||
<a href="#next" class="item-button-next">weiter</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div><!-- end widget -->
|
|
||||||
|
|
||||||
</div><!-- end col -->
|
</div><!-- end col -->
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
{% if pages is not empty %}
|
||||||
|
<div class="widget clearfix">
|
||||||
|
|
||||||
|
<div class="widget-title">
|
||||||
|
{{ slider_title }}
|
||||||
|
</div><!-- end title -->
|
||||||
|
|
||||||
|
<div class="box-slider">
|
||||||
|
{% for page in pages %}
|
||||||
|
|
||||||
|
<div class="travel-wrapper slide{{ loop.first ? ' active' }}">
|
||||||
|
|
||||||
|
<a href="{{ page.urlPath|default('javascript:void(0);') }}" class="item text-center">
|
||||||
|
<div class="item-img">
|
||||||
|
{% include 'default/components/pageBoxImage.html.twig' %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="box_mid">
|
||||||
|
<div class="hl5">{{ page.title }}</div>
|
||||||
|
|
||||||
|
{{ page.boxBody ?? page.description }}
|
||||||
|
|
||||||
|
{% if page.travelProgram is not empty and page.travelProgram.lowestPrice > 0 %}
|
||||||
|
<div class="price">
|
||||||
|
Für {{ child_page.travelProgram.lowestPrice|number_format }},- € p.P.
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div><!-- end travel-wrapper -->
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<div class="item-switch clearfix">
|
||||||
|
<a href="javascript:void(0);" class="item-button-prev">zurück</a>
|
||||||
|
<a href="javascript:void(0);" class="item-button-next">weiter</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><!-- end widget -->
|
||||||
|
{% endif %}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
{% if slides is not empty %}
|
||||||
|
<div class="widget clearfix">
|
||||||
|
|
||||||
|
<div class="widget-title">
|
||||||
|
{{ slider_title }}
|
||||||
|
</div><!-- end title -->
|
||||||
|
|
||||||
|
<div class="box-slider newswidget clearfix">
|
||||||
|
|
||||||
|
{% for slide in slides %}
|
||||||
|
<a href="{{ slide.urlPath|default('javascript:void(0);') }}" class="slide{{ loop.first ? ' active' }}">
|
||||||
|
<div class="hl5">{{ slide.title }}</div>
|
||||||
|
<p>{{ slide.boxBody|default(slide.description) }}</p>
|
||||||
|
</a>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
<div class="item-switch clearfix">
|
||||||
|
<a href="javascript:void(0);" class="item-button-prev">zurück</a>
|
||||||
|
<a href="javascript:void(0);" class="item-button-next">weiter</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><!-- end newswidget -->
|
||||||
|
|
||||||
|
</div><!-- end widget -->
|
||||||
|
{% endif %}
|
||||||
|
|
@ -12,141 +12,14 @@
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<section class="clearfix">
|
<section class="clearfix">
|
||||||
<div class="hl2">Unsere beliebtesten Kulturreisen</div>
|
<div class="hl2">Unsere beliebtesten Kulturreisen</div>
|
||||||
<div class="owl-fullwidth owl-carousel owl-theme">
|
|
||||||
<div class="owl-item-full">
|
|
||||||
<div class="travel-wrapper get-box-link">
|
|
||||||
<div class="item text-center">
|
|
||||||
<div class="item-img">{% image '@AppBundle/Resources/public/images/page1_img1.jpg' %}<img src="{{ asset_url }}" alt="">{% endimage %}</div>
|
|
||||||
<div class="box_mid">
|
|
||||||
<div class="hl5">8 Tage Rundreise Höhepunkte Israels</div>
|
|
||||||
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ab aut dignissimos ea est, impedit incidunt, laboriosam maxime molestias numquam odio officiis. Ab aut dignissimos ea est, impedit incidunt.</p>
|
|
||||||
<div class="price">Für 550,- EUR</div>
|
|
||||||
</div>
|
|
||||||
<a class="item-button is-box-link" href="#">Ansehen das ist ein langer Text im Button Ansehen das ist ein langer Text im Button</a>
|
|
||||||
</div>
|
|
||||||
</div><!-- end travel-wrapper -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="owl-item-full">
|
{% include 'default/components/multiPageBoxCarousel.html.twig' with {pages: offers} %}
|
||||||
<div class="travel-wrapper get-box-link">
|
|
||||||
<div class="item text-center">
|
|
||||||
<div class="item-img">{% image '@AppBundle/Resources/public/images/page1_img2.jpg' %}<img src="{{ asset_url }}" alt="">{% endimage %}</div>
|
|
||||||
<div class="box_mid">
|
|
||||||
<div class="hl5">Höhepunkte Jordaniens bis 31.10.2016</div>
|
|
||||||
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
|
|
||||||
<div class="price">Für 550,- EUR</div>
|
|
||||||
</div>
|
|
||||||
<a class="item-button is-box-link" href="#1" title="">Ansehen</a>
|
|
||||||
</div>
|
|
||||||
</div><!-- end travel-wrapper -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="owl-item-full">
|
|
||||||
<div class="travel-wrapper get-box-link">
|
|
||||||
<div class="item text-center">
|
|
||||||
<div class="item-img">{% image '@AppBundle/Resources/public/images/page1_img3.jpg' %}<img src="{{ asset_url }}" alt="">{% endimage %}</div>
|
|
||||||
<div class="box_mid">
|
|
||||||
<div class="hl5">Israel Standardreise<br><br></div>
|
|
||||||
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
|
|
||||||
<div class="price">Für 550,- EUR</div>
|
|
||||||
</div>
|
|
||||||
<a class="item-button is-box-link" href="#1" title="">Ansehen</a>
|
|
||||||
</div>
|
|
||||||
</div><!-- end travel-wrapper -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="owl-item-full">
|
|
||||||
<div class="travel-wrapper get-box-link">
|
|
||||||
<div class="item text-center">
|
|
||||||
<div class="item-img">{% image '@AppBundle/Resources/public/images/page1_img4.jpg' %}<img src="{{ asset_url }}" alt="">{% endimage %}</div>
|
|
||||||
<div class="box_mid">
|
|
||||||
<div class="hl5">Höhepunkte Jordaniens bis 31.10.2016</div>
|
|
||||||
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
|
|
||||||
<div class="price">Für 550,- EUR</div>
|
|
||||||
</div>
|
|
||||||
<a class="item-button is-box-link" href="#1" title="">Ansehen</a>
|
|
||||||
</div>
|
|
||||||
</div><!-- end travel-wrapper -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="owl-item-full">
|
|
||||||
<div class="travel-wrapper get-box-link">
|
|
||||||
<div class="item text-center">
|
|
||||||
<div class="item-img">{% image '@AppBundle/Resources/public/images/page1_img2.jpg' %}<img src="{{ asset_url }}" alt="">{% endimage %}</div>
|
|
||||||
<div class="box_mid">
|
|
||||||
<div class="hl5">Höhepunkte Jordaniens bis 31.10.2016</div>
|
|
||||||
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
|
|
||||||
<div class="price">Für 550,- EUR</div>
|
|
||||||
</div>
|
|
||||||
<a class="item-button is-box-link" href="#1" title="">Ansehen</a>
|
|
||||||
</div>
|
|
||||||
</div><!-- end travel-wrapper -->
|
|
||||||
</div>
|
|
||||||
</div><!-- end container -->
|
|
||||||
</section><!-- end section -->
|
</section><!-- end section -->
|
||||||
|
|
||||||
<section class="clearfix">
|
<section class="clearfix">
|
||||||
<div class="hl2">Alle Reisekategorien auf einem Blick</div>
|
<div class="hl2">Alle Reisekategorien auf einem Blick</div>
|
||||||
<div class="owl-fullwidth owl-carousel owl-theme">
|
|
||||||
<div class="owl-item-full">
|
|
||||||
<div class="travel-wrapper get-box-link">
|
|
||||||
<div class="item text-center">
|
|
||||||
<div class="item-img">{% image '@AppBundle/Resources/public/images/page1_img1.jpg' %}<img src="{{ asset_url }}" alt="">{% endimage %}</div>
|
|
||||||
<div class="box_mid">
|
|
||||||
<div class="hl5 bottom">Ägypten Reisen</div>
|
|
||||||
</div>
|
|
||||||
<a class="item-button is-box-link" href="#1" title="">Ansehen</a>
|
|
||||||
</div>
|
|
||||||
</div><!-- end travel-wrapper -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="owl-item-full">
|
{% include 'default/components/multiPageBoxCarousel.html.twig' with {pages: country_pages} %}
|
||||||
<div class="travel-wrapper get-box-link">
|
|
||||||
<div class="item text-center">
|
|
||||||
<div class="item-img">{% image '@AppBundle/Resources/public/images/page1_img2.jpg' %}<img src="{{ asset_url }}" alt="">{% endimage %}</div>
|
|
||||||
<div class="box_mid">
|
|
||||||
<div class="hl5 bottom">Israel Reisen</div>
|
|
||||||
</div>
|
|
||||||
<a class="item-button is-box-link" href="#1" title="">Ansehen</a>
|
|
||||||
</div>
|
|
||||||
</div><!-- end travel-wrapper -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="owl-item-full">
|
|
||||||
<div class="travel-wrapper get-box-link">
|
|
||||||
<div class="item text-center">
|
|
||||||
<div class="item-img">{% image '@AppBundle/Resources/public/images/page1_img3.jpg' %}<img src="{{ asset_url }}" alt="">{% endimage %}</div>
|
|
||||||
<div class="box_mid">
|
|
||||||
<div class="hl5 bottom">Ferienwohnungen Usedom</div>
|
|
||||||
</div>
|
|
||||||
<a class="item-button is-box-link" href="#1" title="">Ansehen</a>
|
|
||||||
</div>
|
|
||||||
</div><!-- end travel-wrapper -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="owl-item-full">
|
|
||||||
<div class="travel-wrapper get-box-link">
|
|
||||||
<div class="item text-center">
|
|
||||||
<div class="item-img">{% image '@AppBundle/Resources/public/images/page1_img4.jpg' %}<img src="{{ asset_url }}" alt="">{% endimage %}</div>
|
|
||||||
<div class="box_mid">
|
|
||||||
<div class="hl5 bottom">Ägypten Reisen</div>
|
|
||||||
</div>
|
|
||||||
<a class="item-button is-box-link" href="#1" title="">Ansehen</a>
|
|
||||||
</div>
|
|
||||||
</div><!-- end travel-wrapper -->
|
|
||||||
</div>
|
|
||||||
<div class="owl-item-full">
|
|
||||||
<div class="travel-wrapper get-box-link">
|
|
||||||
<div class="item text-center">
|
|
||||||
<div class="item-img">{% image '@AppBundle/Resources/public/images/page1_img2.jpg' %}<img src="{{ asset_url }}" alt="">{% endimage %}</div>
|
|
||||||
<div class="box_mid">
|
|
||||||
<div class="hl5 bottom">Ägypten Reise</div>
|
|
||||||
</div>
|
|
||||||
<a class="item-button is-box-link one-line" href="#1" title="">Ansehen</a>
|
|
||||||
</div>
|
|
||||||
</div><!-- end travel-wrapper -->
|
|
||||||
</div>
|
|
||||||
</div><!-- end container -->
|
|
||||||
</section><!-- end section -->
|
</section><!-- end section -->
|
||||||
|
|
||||||
<section class="clearfix">
|
<section class="clearfix">
|
||||||
|
|
@ -162,139 +35,4 @@
|
||||||
</div>
|
</div>
|
||||||
</section><!-- end section -->
|
</section><!-- end section -->
|
||||||
|
|
||||||
|
|
||||||
<section class="clearfix">
|
|
||||||
<h3>Weiterführende Links</h3>
|
|
||||||
<div class="owl-fullwidth owl-carousel owl-theme">
|
|
||||||
<div class="owl-item-full">
|
|
||||||
<div class="listings-wrapper">
|
|
||||||
<h4>Spanien</h4>
|
|
||||||
<ul class="c1">
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
</ul>
|
|
||||||
</div><!-- end listings-wrapper -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="owl-item-full">
|
|
||||||
<div class="listings-wrapper">
|
|
||||||
<h4>Spanien</h4>
|
|
||||||
<ul class="c1">
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
</ul>
|
|
||||||
</div><!-- end listings-wrapper -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="owl-item-full">
|
|
||||||
<div class="listings-wrapper">
|
|
||||||
<h4>Spanien</h4>
|
|
||||||
<ul class="c1">
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
</ul>
|
|
||||||
</div><!-- end listings-wrapper -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="owl-item-full">
|
|
||||||
<div class="listings-wrapper">
|
|
||||||
<h4>Spanien</h4>
|
|
||||||
<ul class="c1">
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
</ul>
|
|
||||||
</div><!-- end listings-wrapper -->
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="owl-item-full">
|
|
||||||
<div class="listings-wrapper">
|
|
||||||
<h4>Spanien</h4>
|
|
||||||
<ul class="c1">
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
<li><a href="#">Visual Page Builder Included</a></li>
|
|
||||||
<li><a href="#">Many Customizable Options</a></li>
|
|
||||||
<li><a href="#">Interactive Page Elements</a></li>
|
|
||||||
<li><a href="#">Completely Customizable</a></li>
|
|
||||||
<li><a href="#">Free & Dedicated Support</a></li>
|
|
||||||
<li><a href="#">Fully responsive lay</a></li>
|
|
||||||
</ul>
|
|
||||||
</div><!-- end listings-wrapper -->
|
|
||||||
</div>
|
|
||||||
</div><!-- end container -->
|
|
||||||
</section><!-- end section -->
|
|
||||||
{% endblock body %}
|
{% endblock body %}
|
||||||
|
|
@ -5,7 +5,7 @@ namespace AppBundle\Controller;
|
||||||
use AppBundle\Entity\BreadcrumbEntry;
|
use AppBundle\Entity\BreadcrumbEntry;
|
||||||
use AppBundle\Entity\ContactRequest;
|
use AppBundle\Entity\ContactRequest;
|
||||||
use AppBundle\Entity\Page;
|
use AppBundle\Entity\Page;
|
||||||
use AppBundle\Entity\TravelProgram;
|
use AppBundle\Entity\TravelCountry;
|
||||||
use AppBundle\Form\ContactRequestType;
|
use AppBundle\Form\ContactRequestType;
|
||||||
use AppBundle\Form\SearchRequestType;
|
use AppBundle\Form\SearchRequestType;
|
||||||
use AppBundle\Form\TtSearchRequestType;
|
use AppBundle\Form\TtSearchRequestType;
|
||||||
|
|
@ -16,7 +16,6 @@ use Gedmo\Tree\TreeListener;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\Routing\Annotation\Route;
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
use Symfony\Component\Stopwatch\Stopwatch;
|
|
||||||
|
|
||||||
class DefaultController extends Controller
|
class DefaultController extends Controller
|
||||||
{
|
{
|
||||||
|
|
@ -44,6 +43,8 @@ class DefaultController extends Controller
|
||||||
'show_search_sidebar_widget' => false,
|
'show_search_sidebar_widget' => false,
|
||||||
'search_form' => $this->createForm(SearchRequestType::class)->createView(),
|
'search_form' => $this->createForm(SearchRequestType::class)->createView(),
|
||||||
'tt_search_form' => $this->createForm(TtSearchRequestType::class)->createView(),
|
'tt_search_form' => $this->createForm(TtSearchRequestType::class)->createView(),
|
||||||
|
'offers' => $this->getEntityManager()->getRepository('AppBundle:Page')->findOffers(),
|
||||||
|
'country_pages' => $this->getEntityManager()->getRepository('AppBundle:Page')->findCountryPages(),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -256,7 +257,7 @@ class DefaultController extends Controller
|
||||||
$this->get('mailer')->send(\Swift_Message::newInstance()
|
$this->get('mailer')->send(\Swift_Message::newInstance()
|
||||||
->setSubject('Kontaktformular (stern-tours.de)')
|
->setSubject('Kontaktformular (stern-tours.de)')
|
||||||
->setFrom('stern@stern-tours.de', 'STERN TOURS')
|
->setFrom('stern@stern-tours.de', 'STERN TOURS')
|
||||||
->setTo('ulrich.hecht@hecht-software.de')
|
->setTo('stern@stern-tours.de')
|
||||||
->setBody(
|
->setBody(
|
||||||
$this->renderView('default/email/contactServiceEmail.txt.twig', [
|
$this->renderView('default/email/contactServiceEmail.txt.twig', [
|
||||||
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||||
|
|
@ -284,19 +285,7 @@ class DefaultController extends Controller
|
||||||
|
|
||||||
public function headerAction()
|
public function headerAction()
|
||||||
{
|
{
|
||||||
$qb = $this->getEntityManager()->createQueryBuilder();
|
$navPages = $this->getEntityManager()->getRepository('AppBundle:Page')->findTopCountryNavPages();
|
||||||
$navPages = $qb
|
|
||||||
->from('AppBundle:Page', 'page')
|
|
||||||
->select('page')
|
|
||||||
->leftJoin('page.children', 'childPage', Expr\Join::WITH, 'childPage.status > 0')
|
|
||||||
->addSelect('childPage')
|
|
||||||
->where('page.status > 0')
|
|
||||||
->andWhere('page.template = \'overview\'')
|
|
||||||
->andWhere('page.lvl = 0')
|
|
||||||
->orderBy('page.lft,page.title,childPage.lft,childPage.title')
|
|
||||||
->getQuery()
|
|
||||||
->execute()
|
|
||||||
;
|
|
||||||
return $this->render('default/components/header.html.twig', [
|
return $this->render('default/components/header.html.twig', [
|
||||||
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||||
'nav_pages' => $navPages,
|
'nav_pages' => $navPages,
|
||||||
|
|
@ -383,6 +372,47 @@ class DefaultController extends Controller
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function travelGuideSidebarWidgetAction(TravelCountry $country)
|
||||||
|
{
|
||||||
|
$repo = $this->getEntityManager()->getRepository('AppBundle:Page');
|
||||||
|
$rootPage = $repo->find(13);
|
||||||
|
$pages = $repo->getChildrenQueryBuilder($rootPage)
|
||||||
|
->andWhere('IDENTITY(node.country) = '. $country->getId())
|
||||||
|
->setMaxResults(3)
|
||||||
|
->getQuery()
|
||||||
|
->execute()
|
||||||
|
;
|
||||||
|
return $this->render('default/components/sidebar/textSliderSidebarWidget.html.twig', [
|
||||||
|
'slider_title' => 'Reiseführer',
|
||||||
|
'slides' => $pages
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function travelMagazineSidebarWidgetAction(TravelCountry $country)
|
||||||
|
{
|
||||||
|
$repo = $this->getEntityManager()->getRepository('AppBundle:Page');
|
||||||
|
$rootPage = $repo->find(2803);
|
||||||
|
$pages = $repo->getChildrenQueryBuilder($rootPage)
|
||||||
|
->andWhere('IDENTITY(node.country) = '. $country->getId())
|
||||||
|
->setMaxResults(3)
|
||||||
|
->getQuery()
|
||||||
|
->execute()
|
||||||
|
;
|
||||||
|
return $this->render('default/components/sidebar/textSliderSidebarWidget.html.twig', [
|
||||||
|
'slider_title' => 'Reisemagazin',
|
||||||
|
'slides' => $pages
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function offersSidebarWidgetAction(TravelCountry $country)
|
||||||
|
{
|
||||||
|
$pages = $this->getEntityManager()->getRepository('AppBundle:Page')->findWithTravelProgramsOfCountry($country);
|
||||||
|
return $this->render('default/components/sidebar/pageSliderSidebarWidget.html.twig', [
|
||||||
|
'slider_title' => 'Angebote',
|
||||||
|
'pages' => $pages
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Suche Kindknoten
|
Suche Kindknoten
|
||||||
Für jeden Kindknoten
|
Für jeden Kindknoten
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace AppBundle\Entity;
|
namespace AppBundle\Entity;
|
||||||
|
|
||||||
use Gedmo\Tree\Entity\Repository\NestedTreeRepository;
|
use Gedmo\Tree\Entity\Repository\NestedTreeRepository;
|
||||||
|
use Doctrine\ORM\Query\Expr;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PageRepository
|
* PageRepository
|
||||||
|
|
@ -41,6 +43,73 @@ class PageRepository extends NestedTreeRepository
|
||||||
return $pages;
|
return $pages;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function findWithTravelProgramsOfCountry(TravelCountry $country)
|
||||||
|
{
|
||||||
|
return $this->createQueryBuilder('node')
|
||||||
|
->innerJoin('node.travelProgram', 'tp')
|
||||||
|
->innerJoin('tp.countries', 'c')
|
||||||
|
->where('c.id = '. $country->getId())
|
||||||
|
->getQuery()
|
||||||
|
->execute()
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Page[]
|
||||||
|
*/
|
||||||
|
public function findOffers()
|
||||||
|
{
|
||||||
|
$ret = [];
|
||||||
|
$countries = $this->getEntityManager()->getRepository('AppBundle:TravelCountry')->findAll();
|
||||||
|
foreach ($countries as $country)
|
||||||
|
{
|
||||||
|
$ret = array_merge($ret, $this->createQueryBuilder('node')
|
||||||
|
->innerJoin('node.travelProgram', 'tp')
|
||||||
|
->addSelect('tp')
|
||||||
|
->innerJoin('tp.countries', 'c')
|
||||||
|
->where('c.id = '. $country->getId())
|
||||||
|
->andWhere('node.status > 0')
|
||||||
|
->andWhere('tp.status > 0')
|
||||||
|
->orderBy('node.order')
|
||||||
|
->addOrderBy('tp.position')
|
||||||
|
->addOrderBy('node.title')
|
||||||
|
->setMaxResults(3)
|
||||||
|
->getQuery()
|
||||||
|
->execute()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
shuffle($ret);
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function findCountryPages()
|
||||||
|
{
|
||||||
|
return $this->createQueryBuilder('node')
|
||||||
|
->innerJoin('node.country', 'country')
|
||||||
|
->where('node.status > 0')
|
||||||
|
->andWhere('node.template = \'overview\'')
|
||||||
|
->andWhere('node.lvl = 0')
|
||||||
|
->orderBy('node.lft,node.title')
|
||||||
|
->getQuery()
|
||||||
|
->execute()
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function findTopCountryNavPages()
|
||||||
|
{
|
||||||
|
return $this->createQueryBuilder('node')
|
||||||
|
->innerJoin('node.country', 'country')
|
||||||
|
->leftJoin('node.children', 'childPage', Expr\Join::WITH, 'childPage.status > 0')
|
||||||
|
->addSelect('childPage')
|
||||||
|
->where('node.status > 0')
|
||||||
|
->andWhere('node.template = \'overview\'')
|
||||||
|
->andWhere('node.lvl = 0')
|
||||||
|
->orderBy('node.lft,node.title,childPage.lft,childPage.title')
|
||||||
|
->getQuery()
|
||||||
|
->execute()
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Page $page
|
* @param Page $page
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ jQuery(document).ready(function($) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
/* ==============================================
|
/* ==============================================
|
||||||
VIDEOS
|
VIDEOS -->
|
||||||
=============================================== */
|
=============================================== */
|
||||||
|
|
||||||
var videos$ = $('a[id^="video_"]');
|
var videos$ = $('a[id^="video_"]');
|
||||||
|
|
@ -61,7 +61,7 @@ jQuery(document).ready(function($) {
|
||||||
});
|
});
|
||||||
|
|
||||||
/* ==============================================
|
/* ==============================================
|
||||||
KEYWORDS
|
KEYWORDS -->
|
||||||
=============================================== */
|
=============================================== */
|
||||||
|
|
||||||
var modal$ = $('#st-default-modal');
|
var modal$ = $('#st-default-modal');
|
||||||
|
|
@ -77,6 +77,65 @@ jQuery(document).ready(function($) {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/* ==============================================
|
||||||
|
SIDEBAR BOX SLIDER -->
|
||||||
|
=============================================== */
|
||||||
|
|
||||||
|
function createSlider(ctx$)
|
||||||
|
{
|
||||||
|
function setSlideInterval()
|
||||||
|
{
|
||||||
|
if(slideInterval)
|
||||||
|
{
|
||||||
|
clearInterval(slideInterval);
|
||||||
|
}
|
||||||
|
slideInterval = setInterval(function() {
|
||||||
|
|
||||||
|
jumpToNextSlide();
|
||||||
|
}, 5000);
|
||||||
|
}
|
||||||
|
|
||||||
|
function jumpToNextSlide()
|
||||||
|
{
|
||||||
|
setActiveSlide(slideIndex === slideCount - 1 ? 0 : slideIndex + 1);
|
||||||
|
setSlideInterval();
|
||||||
|
}
|
||||||
|
|
||||||
|
function setActiveSlide(newIndex)
|
||||||
|
{
|
||||||
|
slide$s[slideIndex].removeClass('active');
|
||||||
|
slideIndex = newIndex;
|
||||||
|
slide$s[slideIndex].addClass('active');
|
||||||
|
}
|
||||||
|
|
||||||
|
var slides$ = $('.slide', ctx$);
|
||||||
|
var slideCount = slides$.length;
|
||||||
|
if(slideCount > 1)
|
||||||
|
{
|
||||||
|
var slideInterval;
|
||||||
|
|
||||||
|
var slide$s = [];
|
||||||
|
for(var i = 0; i < slideCount; ++i)
|
||||||
|
{
|
||||||
|
slide$s.push($(slides$.get(i)));
|
||||||
|
}
|
||||||
|
|
||||||
|
var slideIndex = 0;
|
||||||
|
setSlideInterval();
|
||||||
|
|
||||||
|
$('.item-button-next', ctx$).click(function() {
|
||||||
|
jumpToNextSlide();
|
||||||
|
});
|
||||||
|
$('.item-button-prev', ctx$).click(function() {
|
||||||
|
setActiveSlide(slideIndex === 0 ? slideCount - 1 : slideIndex - 1);
|
||||||
|
setSlideInterval();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$('.box-slider').each(function() {
|
||||||
|
createSlider($(this));
|
||||||
|
});
|
||||||
|
|
||||||
/* ==============================================
|
/* ==============================================
|
||||||
HEADER STICKY -->
|
HEADER STICKY -->
|
||||||
=============================================== */
|
=============================================== */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue