April Mai 2019
This commit is contained in:
parent
8c514bbd4d
commit
6dbaa30791
37 changed files with 55121 additions and 310 deletions
|
|
@ -42,7 +42,6 @@
|
|||
<meta name="msapplication-TileColor" content="#da532c">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
|
||||
|
||||
{% block canonical_tag %}
|
||||
{% if canonical_url is not defined and page is defined %}
|
||||
{% if page.canonicalUrl is not empty %}
|
||||
|
|
@ -65,11 +64,15 @@
|
|||
|
||||
<style>
|
||||
#preloader{position:fixed;z-index:9999999;top:0;bottom:0;right:0;left:0;background:#fff}#preloader .inner{position:absolute;top:0;bottom:0;right:0;left:0;width:54px;height:54px;margin:auto}.page-loader{display:block;width:100%;height:100%;position:fixed;top:0;left:0;background:#fefefe;z-index:100000}#preloader span.loader{width:50px;height:50px;position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;font-size:10px;text-indent:-12345px;border-top:1px solid rgba(0,0,0,0.08);border-right:1px solid rgba(0,0,0,0.08);border-bottom:1px solid rgba(0,0,0,0.08);border-left:1px solid rgba(0,0,0,0.5);border-radius:50%;-webkit-animation:spinner 700ms infinite linear;animation:spinner 700ms infinite linear;z-index:100001}@-webkit-keyframes spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
|
||||
.item-img .img-responsiv-item { width: 100%; max-width: none; height: auto; }
|
||||
</style>
|
||||
|
||||
|
||||
<link rel="preload" href="{{ asset('css/my-custom.css?v') }}{{ get_file_last_time('css/my-custom.css') }}" as="style" onload="this.rel='stylesheet'">
|
||||
<noscript>
|
||||
<style>
|
||||
.item-img >div.img-background { display: none; }
|
||||
</style>
|
||||
<link rel="stylesheet" href="{{ asset('css/my-custom.css?v') }}{{ get_file_last_time('css/my-custom.css') }}">
|
||||
</noscript>
|
||||
|
||||
|
|
@ -134,17 +137,19 @@
|
|||
{{ include('default/components/breadcrumb.html.twig') }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
<!-- START CONTENT -->
|
||||
<div class="row">
|
||||
<div class="row" id="order_row">
|
||||
<div id="content" class="col-xs-12 col-sm-12 col-md-9 col-md-push-3 order_sec">
|
||||
{% block body %}{% endblock %}
|
||||
</div>
|
||||
<div id="sidebar" class="col-xs-12 col-sm-12 col-md-3 col-md-pull-9 order_first">
|
||||
{% if site_loading is defined and page is defined %}
|
||||
{{ render(controller('AppBundle:Component:makeSidebarWidget', {'site_loading': site_loading, 'page': page})) }}
|
||||
{% else %}
|
||||
{{ render(controller('AppBundle:Component:makeSidebarWidget', {'site_loading': 'default'})) }}
|
||||
{% endif %}
|
||||
<div id="content" class="col-md-9 col-sm-12 col-xs-12">
|
||||
{% block body %}{% endblock %}
|
||||
</div><!-- end col -->
|
||||
</div>
|
||||
|
||||
</div><!-- end row -->
|
||||
|
||||
<!-- END CONTENT -->
|
||||
|
|
@ -154,8 +159,6 @@
|
|||
</section><!-- end section -->
|
||||
|
||||
{% include 'default/components/footer.html.twig' %}
|
||||
|
||||
|
||||
<a class="js-go-to u-go-to-v1 animated" href="#!" data-type="fixed" data-offset-top="400" data-show-effect="zoomIn" data-hide-effect="zoomOut" data-position='{"bottom": 15, "right": 15 }'>
|
||||
<i class="icon-up-open-big"></i>
|
||||
</a>
|
||||
|
|
|
|||
|
|
@ -13,5 +13,5 @@
|
|||
{% endif %}
|
||||
<div class="img-background lozad" data-background-image="{{ image(image_url|trim('/')).cropResize(360).guess(70) }}" style="background-image:url({{ asset('images/placeholder-image.png') }})"></div>
|
||||
<noscript>
|
||||
<div class="img-background" style="background-image:url({{ image(image_url|trim('/')).cropResize(360).guess(70) }})"></div>
|
||||
<img width="234" height="180" src="{{ image(image_url|trim('/')).cropResize(360).guess(70) }}" class="img-responsiv img-responsiv-item" style="">
|
||||
</noscript>
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
{# @var page \AppBundle\Entity\Page #}
|
||||
<div id="sidebar" class="col-md-3 col-sm-12 col-xs-12">
|
||||
<div class="row">
|
||||
<div class="col-sm-6 col-md-12">
|
||||
{% for widget in widgets %}
|
||||
|
|
@ -16,4 +15,3 @@
|
|||
<hr class="visible-sm visible-xs">
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end col -->
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
{# @var booking_request \AppBundle\Entity\BookingRequest #}
|
||||
Sehr geehrte{{ booking_request.salutation == 1 ? 'r Herr' : ' Frau' }} {{ booking_request.lastName }},
|
||||
|
||||
vielen Dank für Ihren Buchungsauftrag. Dieser wird schnellstmöglich bearbeitet und stellt noch keine{#
|
||||
#} Buchungsbestätigung dar. Bitte prüfen Sie noch einmal Ihre Angaben und kontaktieren Sie uns bitte, wenn ein Fehler{#
|
||||
vielen Dank für Ihre Online-Buchung . Dieser wird schnellstmöglich bearbeitet und stellt noch keine{#
|
||||
#} Mietbestätigung dar. Bitte prüfen Sie noch einmal Ihre Angaben und kontaktieren Sie uns bitte, wenn ein Fehler{#
|
||||
#} enthalten ist.
|
||||
|
||||
{% include 'default/email/components/bookingSummary.txt.twig' %}
|
||||
|
|
|
|||
|
|
@ -814,9 +814,9 @@
|
|||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<button type="submit" value="SEND" id="submit"
|
||||
class="aligncenter btn btn-primary btn-lg border-radius btn-booking-form"
|
||||
>
|
||||
<i class="fa fa-angle-double-right" style="margin-bottom:-1px!important;"></i> kostenpflichtig<br class="visible-xs"> buchen
|
||||
class="aligncenter btn btn-primary btn-lg border-radius btn-booking-form">
|
||||
<span class="btn-booking-submit"><i class="fa fa-angle-double-right" style="margin-bottom:-1px!important;"></i> kostenpflichtig<br class="visible-xs"> buchen</span>
|
||||
<span class="btn-booking-loading hide"><i class="fa fa-spinner" style="margin-bottom:-1px!important;"></i> Formular <br class="visible-xs"> wird gesendet</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
{% endif %}
|
||||
<div class="img-background lozad" data-background-image="{{ image(image_url|trim('/')).cropResize(960).guess(90) }}" style="background-image:url({{ asset('images/placeholder-image.png') }}); height: 220px;"></div>
|
||||
<noscript>
|
||||
<div class="img-background" style="background-image:url({{ image(image_url|trim('/')).cropResize(960).guess(90) }})"></div>
|
||||
<img width="234" height="180" src="{{ image(image_url|trim('/')).cropResize(960).guess(90) }}" class="img-responsiv img-responsiv-item" style="">
|
||||
</noscript>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@
|
|||
{% include 'default/components/sidebar/navSidebarWidget.html.twig' %}
|
||||
{% endblock %}
|
||||
#}
|
||||
|
||||
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
|
||||
|
||||
<h1>{{ page.pagetitle|default(page.title) }}</h1>
|
||||
<div id="section_order">
|
||||
<section class="clearfix" id="section_order_second">
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
</section>
|
||||
<section class="clearfix" id="section_order_first">
|
||||
{% if(page.slug == "ferienwohnungen")%}
|
||||
{% if lodgingGroups is not empty %}
|
||||
{% for lodgingGroup in lodgingGroups %}
|
||||
|
|
@ -24,29 +24,18 @@
|
|||
{% endfor %}
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
|
||||
<h1>{{ page.pagetitle|default(page.title) }}</h1>
|
||||
|
||||
{#{% for i in 0..page.children|length//3 %}#}
|
||||
<div class="row">
|
||||
{% for child_page in page.children if child_page.status == 1 %}
|
||||
|
||||
{% include 'default/components/pageBox.html.twig' %}
|
||||
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
<section class="clearfix">
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
</section>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,11 +2,8 @@
|
|||
|
||||
{% block body %}
|
||||
|
||||
|
||||
|
||||
{% include 'default/pages/cms/components/ssSudan.html.twig' %}
|
||||
|
||||
|
||||
<div class="content-pane">
|
||||
<section class="clearfix">
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,47 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
</section>
|
||||
<hr>
|
||||
{% if( page.children is not empty) %}
|
||||
<section class="clearfix">
|
||||
<h2>{{ page.title }}</h2>
|
||||
<div class="row">
|
||||
{% for child_page in page.children %}
|
||||
{% if(child_page.status) %}
|
||||
<div class="col-md-4 col-sm-6">
|
||||
<div class="travel-wrapper get-box-link">
|
||||
<div class="item text-left">
|
||||
{% if(page.slug == 'reisefuehrer' ) %}
|
||||
<div class="item-img" style="height: 220px;">
|
||||
{% if child_page.boxImageUrl is not empty %}
|
||||
{% set image_url = child_page.boxImageUrl %}
|
||||
{% set image_alt = child_page.travelProgram.title|default(page.title) %}
|
||||
{% else %}
|
||||
{% set image_url = asset('/bundles/app/images/no-picture.png')%}
|
||||
{% set image_alt = 'Kein Vorschaubild vorhanden' %}
|
||||
{% endif %}
|
||||
<div class="img-background lozad" data-background-image="{{ image(image_url|trim('/')).cropResize(960).guess(90) }}" style="background-image:url({{ asset('images/placeholder-image.png') }}); height: 220px;"></div>
|
||||
<noscript>
|
||||
<img width="234" height="180" src="{{ image(image_url|trim('/')).cropResize(960).guess(90) }}" class="img-responsiv img-responsiv-item" style="">
|
||||
</noscript>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="box_mid">
|
||||
<div class="hl5">{{ child_page.title }}</div>
|
||||
<p>{{ child_page.boxBody ?? child_page.description }}</p>
|
||||
</div>
|
||||
<a class="item-button is-box-link dobble_line" href="{{ child_page.urlPath }}" title="{{ child_page.title }}">
|
||||
<span>{{ child_page.title }}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
|
@ -1,9 +1,13 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
<div id="section_order">
|
||||
<h1>{{ page.pagetitle|default(page.title) }}</h1>
|
||||
|
||||
<section class="clearfix" id="section_order_second">
|
||||
{{ page.content|keywords|raw|lozad }}
|
||||
</section>
|
||||
<section class="clearfix" id="section_order_first">
|
||||
{#{% for i in 0..page.children|length//3 %}#}
|
||||
<div class="row">
|
||||
{% for child_page in child_pages if child_page.status == 1 and child_page.travelProgram is not empty %}
|
||||
|
|
@ -28,10 +32,6 @@
|
|||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</section>
|
||||
|
||||
<section class="clearfix">
|
||||
{{ page.content|keywords|raw|lozad }}
|
||||
</section>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
@ -229,8 +229,6 @@
|
|||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Datenschutz</h5>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
{{ form_widget(form.acceptPrivacy) }}
|
||||
|
|
@ -245,12 +243,28 @@
|
|||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
||||
<div class="checkbox">
|
||||
{{ form_widget(form.acceptRentalConditions) }}
|
||||
<label for="{{ form.acceptRentalConditions.vars.id }}">
|
||||
Ich bin einverstanden mit den
|
||||
<a href="/pdf/Stern-Tours-Mietbedingungen.pdf" target="_blank">
|
||||
Mietbedingungen.
|
||||
</a>
|
||||
</label>
|
||||
<span class="checkbox_marker"></span>
|
||||
{{ form_errors(form.acceptRentalConditions) }}
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<button type="submit" value="SEND" id="submit"
|
||||
class="aligncenter btn btn-primary btn-lg border-radius btn-booking-form"
|
||||
>
|
||||
<i class="fa fa-angle-double-right" style="margin-bottom:-1px!important;"></i> kostenpflichtig<br class="visible-xs"> mieten
|
||||
<span class="btn-booking-submit"><i class="fa fa-angle-double-right" style="margin-bottom:-1px!important;"></i> zahlungspflichtig<br class="visible-xs"> mieten</span>
|
||||
<span class="btn-booking-loading hide"><i class="fa fa-spinner" style="margin-bottom:-1px!important;"></i> Formular <br class="visible-xs"> wird gesendet</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@
|
|||
|
||||
<div class="content-copy">
|
||||
|
||||
<h1>Vielen Dank für Ihren Buchungsauftrag!</h1>
|
||||
<h1>Vielen Dank für Ihre Online-Buchung.</h1>
|
||||
<p>Ihre Mietbestätigung erhalten Sie nach Bearbeitung gesondert per E-Mail.</p>
|
||||
|
||||
<div class="pull-right">
|
||||
<a href="/" class="btn btn-primary btn-sm"><< Zurück zur Startseite</a>
|
||||
|
|
|
|||
|
|
@ -13,40 +13,48 @@
|
|||
{% block breadcrumb %}{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
<h1>Unsere beliebtesten Kulturreisen</h1>
|
||||
{{ render(controller('AppBundle:Component:offersCarousel')) }}
|
||||
</section><!-- end section -->
|
||||
|
||||
<section class="clearfix">
|
||||
<div class="hl2">Alle Reisekategorien auf einem Blick</div>
|
||||
<div id="section_orders">
|
||||
<h1>Unsere beliebtesten Kulturreisen</h1>
|
||||
|
||||
<section id="">
|
||||
<div class="clearfix ">
|
||||
{{ render(controller('AppBundle:Component:offersCarousel')) }}
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<h2 class="h3 h3l">Alle Reisekategorien auf einem Blick</h2>
|
||||
</div>
|
||||
|
||||
{% include 'default/components/multiPageBoxCarousel.html.twig' with {pages: country_pages} %}
|
||||
</section><!-- end section -->
|
||||
|
||||
<section class="clearfix">
|
||||
|
||||
<section class="clearfix" id="">
|
||||
<div class="content-copy">
|
||||
<h1>STERN TOURS - Ihr Kulturreise-Spezialist aus Berlin für Ägypten, Israel, Jordanien, Marokko, Oman, Türkei, Iran, Uzbekistan</h1>
|
||||
<p class="ft">Herzlich willkommen bei STERN TOURS, Ihrem Reiseveranstalter für Reisen zu den interessantesten Zielen Vorderasiens. Gehen Sie mit uns auf große Reise in den Orient, entdecken Sie die historischen Schätze der Antike und erkunden Sie bisher wenig bekannte Länder. Als Spezialist für Kultur-Reisen in den Nahen Osten bieten wir Ihnen seit 1998 Rundreisen und Studienreisen an, bei denen Sie die Highlights eines jeden Landes kennenlernen. In unserem Büro in Berlin-Wilmersdorf beraten wir Sie gern persönlich oder telefonisch eingehend über Ihr gewünschtes Reiseziel. Unsere Mitarbeiter kennen die Länder, in die unsere Kultur-Reisen führen, aus eigener Erfahrung. Die Tipps unserer Experten sind praxisorientiert und sorgen für eine Reise mit unvergesslichen Eindrücken. Wir klären Sie auf über Einreisebestimmungen und Vorschriften, sodass Sie sich sicher in jedem Land bewegen können. Stimmen Sie sich auf unseren Seiten mit zauberhaften Videos und Bildern auf das von Ihnen gewählte Reiseziel ein. Profitieren Sie bei Ihrer Reiseplanung von unserem umfangreichen Wissen und unserer langjährigen Erfahrung mit Kultur-Reisen zu den schönsten Orten des Orients. Erleben Sie ein Märchen aus Tausendundeine Nacht bei einem Reiseveranstalter, für den Ihr persönliches Wohl an erster Stelle steht.</p>
|
||||
<h2>Ägypten – Land der Pyramiden und Pharaonen</h2>
|
||||
<h2 class="h3 h3l">Ägypten – Land der Pyramiden und Pharaonen</h2>
|
||||
<p class="ft">Das Land am Nil gehört zu den interessantesten Ländern der Erde. Eine große Kultur hat hier einzigartige Baudenkmäler hinterlassen. Unsere Flussfahrten auf der großen Lebensader des Landes, dem Nil, führen Sie zu den bedeutendsten Sehenswürdigkeiten wie den Pyramiden, dem Tal der Könige und Luxor. Bewundern Sie bei einem Besuch im Ägyptischen Museum in Kairo die berühmte goldene Totenmaske des Tut-Ench-Amun und viele weitere Schätze, die von den Ausgräbern freigelegt wurden. Entdecken Sie auf Ihrer Rundreise den unglaublichen Reichtum dieses Landes, das einst die führende Kulturnation der alten Welt gewesen ist. Bestaunen Sie die Schätze der Pharaonen, wandeln Sie auf den Spuren der Archäologen und beschließen Sie Ihre Kultur-Reise durch Ägypten mit einem erholsamen Badeurlaub am Roten Meer. Hier finden Sie unsere <a href="/aegypten-reisen/aegypten-rundreisen" title="Ägypten Rundreisen">Ägypten Rundreisen</a></p>
|
||||
<h2>Israel – die Wiege der großen Religionen</h2>
|
||||
<h2 class="h3 h3l">Israel – die Wiege der großen Religionen</h2>
|
||||
<p class="ft">Erleben Sie das biblische Land, auf dem die drei großen Religionen Judentum, Islam und Christentum fußen. Religiöse Stätten gibt es in Israel an allen Ecken. Besuchen Sie die Orte Nazareth, Bethlehem und Jericho mit ihren einzigartigen Bauwerken. Durchqueren Sie die Negev-Wüste und das Tal des Jordan und entdecken Sie Kibbuze mit ihren blühenden Landschaften auf Ihrem Weg. Besteigen Sie den Ölberg und besuchen Sie die Klagemauer in Jerusalem, der Stadt, die Mittelpunkt aller drei Religionen ist. Entdecken Sie das moderne Israel, das sich in der Hauptstadt in Tea Aviv präsentiert. Unternehmen Sie einen Abstecher in die israelischen Hafenstädte Haifa und das wunderschöne Akko mit seiner zum Weltkulturerbe gehörenden Altstadt. Entspannen Sie sich nach Ihren aufregenden Reiseerlebnissen bei einem Bad im salzreichen Toten Meer oder genießen Sie einen sonnigen Badeurlaub am Roten Meer in Eilat. Hier finden Sie unsere <a href="/israel-reisen/israel-rundreisen" title="Israel Rundreisen">Israel Rundreisen</a></p>
|
||||
<h2>Jordanien – Wüstenflair und Felsenstädte</h2>
|
||||
<h2 class="h3 h3l">Jordanien – Wüstenflair und Felsenstädte</h2>
|
||||
<p class="ft">Die Felsenstadt Petra mit dem eindrucksvollen Schatzhaus, Wadi Rum, Aqaba und die Hauptstadt Amman sind die Highlights einer Rundreise durch Jordanien. Auf eigene Faust erkunden Sie im Mietwagen die historischen Stätten des Landes. Auch wenn das Land nur klein ist, gibt es eine Fülle von historischen Sehenswürdigkeiten zu entdecken. Wüstenschlösser, Festungen und Burgen liegen auf Ihrem Weg. Besuchen Sie mit Amman eine der ältesten Städte, die schon immer bewohnt gewesen ist, und schwelgen Sie in den exotischen Düften der jordanischen Basare. Übernachten Sie dort, wo Lawrence von Arabien einst Geschichte machte – im Wadi Rum, das mit seinen roten Felssäulen ein einzigartiges Naturerlebnis bietet. Hier finden Sie unsere <a href="/jordanien-reisen/jordanien-rundreisen" title="Jordanien Rundreisen">Jordanien Rundreisen</a></p>
|
||||
<h2>Oman – Wüstenschlösser, Naturschauspiele und Badestrände</h2>
|
||||
<h2 class="h3 h3l">Oman – Wüstenschlösser, Naturschauspiele und Badestrände</h2>
|
||||
<p class="ft">Noch immer ein wenig geheimnisvoll scheint der Oman am Ostzipfel der Arabischen Halbinsel. Gehen Sie mit uns auf eine Entdeckungstour durch Wüsten, Gebirge und Regionen mit subtropischem Klima. In der Hauptstadt Maskat mit ihrer riesigen Moschee und dem historischen Souk zeigt sich, wie gut Altes und Modernes nebeneinander existieren können. Das Silber- und Kupferhandwerk ist in der alten Oasenstadt Nizwa zuhause. Hier dürfen Sie den Künstlern bei der Arbeit über die Schulter gucken. In Sur werden noch heute die Dhaus, die legendären Segelboote Omans, auf traditionelle Weise hergestellt. Erleben Sie auf einer Rundfahrt zum Jebel Sham eine Nacht in der Wüste mit einem spektakulären Sonnenuntergang hinter den Sanddünen. Beschließen Sie Ihre Reise in den märchenhaften Oman an der Küste mit ihren schneeweißen Badestränden und lassen Sie sich durch die spektakulären Unterwasserwelten im Arabischen Meer verzaubern. Hier finden Sie unsere <a href="/oman-reisen/oman-rundreisen" title="Oman Rundreisen">Oman Rundreisen</a></p>
|
||||
<h2>Iran – das Land der UNESCO Kulturschätze</h2>
|
||||
<h2 class="h3 h3l">Iran – das Land der UNESCO Kulturschätze</h2>
|
||||
<p class="ft">Auf 5.000 Jahre Geschichte blickt der Iran zurück. Das frühere Persien gehörte zu den Hochkulturen der Antike. Eine Rundreise durch den Iran ist ein ganz besonderes Erlebnis. Fast jeder der alten Orte gehört zum Weltkulturerbe der UNESCO. Machen Sie einen Abstecher in eine der ältesten Städte des Irans nach Yasd und in die heilige Stadt Ghom. Feuertempel, Moscheen, Mausoleen und Grabmäler finden Sie fast überall. Nicht zuletzt die historischen Paradiesgärten von Schiraz sind ein echtes Highlight. Und wenn Sie schon immer einmal wissen wollten, die die berühmten Perserteppiche entstehen – hier können Sie es mit eigenen Augen sehen. Hier finden Sie unsere <a href="/iran-reisen/iran-rundreisen" title="Iran Rundreisen">Iran Rundreisen</a></p>
|
||||
<h2>Usbekistan – entlang der Seidenstraße nach Samarkand</h2>
|
||||
<h2 class="h3 h3l">Usbekistan – entlang der Seidenstraße nach Samarkand</h2>
|
||||
<p class="ft">Ein ganz junger Staat mit einer ganz alten Kultur – Uzbekistan wurde erst in den letzten Jahren von Kulturliebhabern entdeckt. Begeben Sie sich auf eine Reise in ein märchenhaftes Land. Entdecken Sie unzählige Moscheen und Medresen, die Sie mit ihren blauen Fliesen und goldenen Kuppeln verzaubern werden. Folgen Sie der alten Seidenstraße und den Spuren von Dschingis Khan. Oasenstädte wie aus dem Mittelalter lassen Sie glauben, dass Sie sich auf einer Zeitreise befinden. Flanieren Sie über Basare mit ihren reichen Auslagen an Früchten, allen voran den Melonen, für die Uzbekistan schon im Mittelalter berühmt war. Besuchen Sie die Märchenstadt Samarkand, ein einzigartiges Kleinod, das in der Antike eine ganz bedeutende Rolle spielte. Hier finden Sie unsere <a href="/usbekistan-reisen/usbekistan-rundreisen" title="Usbekistan Rundreisen">Usbekistan Rundreisen</a></p>
|
||||
<h2>Marokko – mehr als Casablanca und Marrakesch</h2>
|
||||
<h2 class="h3 h3l">Marokko – mehr als Casablanca und Marrakesch</h2>
|
||||
<p class="ft">Bei Marokko denken Sie sicherlich an einen der schönsten Filme der Filmgeschichte: Casablanca. Doch nicht nur diesen berühmten Ort erleben Sie auf Ihrer Rundreise durch Marokko. Streifen Sie durch Tanger, die weiße Stadt, die schon von Weitem zu sehen ist. Entdecken Sie Marrakesch und seine Gärten, die zum Weltkulturerbe gehören. Ein besonderes Highlight ist die alte Königsstadt Fès. Sie ist nicht nur das geistige Zentrum des Landes, auch Handwerker können Sie hier bei der Arbeit beobachten. Unternehmen Sie Ausflüge in die marokkanische Wüste und genießen Sie einen unvergesslichen Aufenthalt in der spektakulären Wüstenlandschaft der Sahara.</p>
|
||||
<h2>Türkei – Land voller Sehenswürdigkeiten und Naturschönheiten</h2>
|
||||
<h2 class="h3 h3l">Türkei – Land voller Sehenswürdigkeiten und Naturschönheiten</h2>
|
||||
<p class="ft">Die Türkei gehört zu den beliebtesten Reisezielen. Doch abseits der großen Badestrände entdecken Sie auf Ihrer Rundreise ein Land, das voll ist von einmaligen kulturellen Schätzen. Eine der wichtigsten Städte der Türkei ist Istanbul. Das schönste Bauwerk der Metropole, die die beiden Kontinente Europa und Asien miteinander verbindet, ist die Hagia Sophia. Der große Kuppelbau, der einst religiösen Zwecken diente und heute ein Museum ist, ist ein Muss auf einer Türkei-Rundreise. Entdecken Sie die 5.000 Jahre alte Stadt Ephesus, in der einst der große Philosoph Heraklit geboren wurde. Besuchen Sie die große Städte der Türkei, in denen Antike und Moderne nebeneinanderstehen. Das große Land ist so reich an kulturellen und natürlichen Sehenswürdigkeiten, dass eine Rundreise nicht ausreichen wird, um auch nur einen Teil der Türkei kennenzulernen. Hier finden Sie unsere <a href="/tuerkei-reisen/tuerkei-rundreisen" title="Türkei Rundreisen">Türkei Rundreisen</a></p>
|
||||
<h2>Oman – Wüstenschlösser, Naturschauspiele und Badestrände</h2>
|
||||
<h2 class="h3 h3l">Oman – Wüstenschlösser, Naturschauspiele und Badestrände</h2>
|
||||
<p class="ft">Noch immer ein wenig geheimnisvoll scheint der Oman am Ostzipfel der Arabischen Halbinsel. Gehen Sie mit uns auf eine Entdeckungstour durch Wüsten, Gebirge und Regionen mit subtropischem Klima. In der Hauptstadt Maskat mit ihrer riesigen Moschee und dem historischen Souk zeigt sich, wie gut Altes und Modernes nebeneinander existieren können. Das Silber- und Kupferhandwerk ist in der alten Oasenstadt Nizwa zuhause. Hier dürfen Sie den Künstlern bei der Arbeit über die Schulter gucken. In Sur werden noch heute die Dhaus, die legendären Segelboote Omans, auf traditionelle Weise hergestellt. Erleben Sie auf einer Rundfahrt zum Jebel Sham eine Nacht in der Wüste mit einem spektakulären Sonnenuntergang hinter den Sanddünen. Beschließen Sie Ihre Reise in den märchenhaften Oman an der Küste mit ihren schneeweißen Badestränden und lassen Sie sich durch die spektakulären Unterwasserwelten im Arabischen Meer verzaubern. Hier finden Sie unsere <a href="/oman-reisen/oman-rundreisen" title="Oman Rundreisen">Oman Rundreisen</a></p>
|
||||
</div>
|
||||
</section><!-- end section -->
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock body %}
|
||||
|
|
@ -420,6 +420,18 @@ class BookingController extends Controller
|
|||
'children' => 0 //TODO
|
||||
];
|
||||
|
||||
$insuranceTotal = 0;
|
||||
$tempInsuranceHTML = array();
|
||||
$tempRoomHTML = array();
|
||||
$tempDiscountHTML = array();
|
||||
|
||||
$tempExtraDaysBeforeHTML = array();
|
||||
$newExtraDaysTravelDate = [
|
||||
'change' => 0,
|
||||
'start' => $travelDate->getStart()->format('d.m.Y'),
|
||||
'end' => $travelDate->getEnd()->format('d.m.Y'),
|
||||
];
|
||||
|
||||
//Komfort
|
||||
$possibleRooms = $this->getRooms($travelDate->getPrices(), $persons);
|
||||
$tempComfortHTML = array();
|
||||
|
|
@ -464,10 +476,126 @@ class BookingController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
$insuranceTotal = 0;
|
||||
$tempInsuranceHTML = array();
|
||||
$tempRoomHTML = array();
|
||||
$tempDiscountHTML = array();
|
||||
//days before
|
||||
if($bookingRequest->getExtraBookingDaysBefore()){
|
||||
|
||||
$newDay = clone $travelDate->getStart();
|
||||
$newDay->modify('-'.$bookingRequest->getExtraBookingDaysBefore().' day');
|
||||
$newExtraDaysTravelDate['change'] = 1;
|
||||
$newExtraDaysTravelDate['start'] = $newDay->format('d.m.Y');
|
||||
|
||||
foreach ($possibleRooms as $room) {
|
||||
$key = $room['priceType']->getId();
|
||||
|
||||
$adultCount = $room['persons']['adults'];
|
||||
$childrenCount = $room['persons']['children'];
|
||||
|
||||
if ($bookingRequest->getComfort()){
|
||||
$singleExtraFullPrice = $room['price']->getEffectiveExtraComfortPrice();
|
||||
}else{
|
||||
$singleExtraFullPrice = $room['price']->getEffectiveExtraPrice();
|
||||
}
|
||||
$childExtraPrice = $room['price']->getEffectiveExtraChildPrice();
|
||||
|
||||
$insuranceAssessmentBasis += $singleExtraFullPrice * $bookingRequest->getExtraBookingDaysBefore();
|
||||
$insuranceAssessmentChildBasis += $childExtraPrice * $bookingRequest->getExtraBookingDaysBefore();
|
||||
|
||||
$roomPrice = (($singleExtraFullPrice * $adultCount) + ($childExtraPrice * $childrenCount)) * $bookingRequest->getExtraBookingDaysBefore();
|
||||
|
||||
$ret += $roomPrice;
|
||||
|
||||
$outPriceInfo['booking_before'][] = [
|
||||
'name' => "Verlängerung vor der Reise " . $room['priceType']->getName() . "",
|
||||
'adults' => $adultCount,
|
||||
'children' => $childrenCount,
|
||||
'price' => $singleExtraFullPrice,
|
||||
'price_children' => $childExtraPrice,
|
||||
'price_total' => $roomPrice,
|
||||
'days' => $bookingRequest->getExtraBookingDaysBefore()
|
||||
];
|
||||
|
||||
|
||||
|
||||
if (!empty($tempExtraDaysBeforeHTML[$key])) {
|
||||
$tempExtraDaysBeforeHTML[$key]['count'] = $tempExtraDaysBeforeHTML[$key]['count'] + 1;
|
||||
$tempExtraDaysBeforeHTML[$key]['value'] = $tempExtraDaysBeforeHTML[$key]['value'] + $roomPrice;
|
||||
} else {
|
||||
$tempExtraDaysBeforeHTML[$key] = array(
|
||||
'value' => $roomPrice,
|
||||
'label_first' => "Verlängerung vor der Reise " . $room['priceType']->getName() . "",
|
||||
'label_last' => Util::formatPrice($singleExtraFullPrice) . ' pro Person/Tag',
|
||||
'count' => 1,
|
||||
'days' => $bookingRequest->getExtraBookingDaysBefore(),
|
||||
'childCount' => $room['persons']['children'],
|
||||
'price_child' => Util::formatPrice($room['price']->getEffectiveExtraChildPrice()),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
$tempExtraDaysAfterHTML = array();
|
||||
//days before
|
||||
if($bookingRequest->getExtraBookingDaysAfter()){
|
||||
|
||||
$newDay = clone $travelDate->getEnd();
|
||||
$newDay->modify('+'.$bookingRequest->getExtraBookingDaysAfter().' day');
|
||||
$newExtraDaysTravelDate['change'] = 1;
|
||||
$newExtraDaysTravelDate['end'] = $newDay->format('d.m.Y');
|
||||
|
||||
foreach ($possibleRooms as $room) {
|
||||
$key = $room['priceType']->getId();
|
||||
|
||||
$adultCount = $room['persons']['adults'];
|
||||
$childrenCount = $room['persons']['children'];
|
||||
|
||||
if ($bookingRequest->getComfort()){
|
||||
$singleExtraFullPrice = $room['price']->getEffectiveExtraComfortPrice();
|
||||
}else{
|
||||
$singleExtraFullPrice = $room['price']->getEffectiveExtraPrice();
|
||||
}
|
||||
$childExtraPrice = $room['price']->getEffectiveExtraChildPrice();
|
||||
|
||||
$insuranceAssessmentBasis += $singleExtraFullPrice * $bookingRequest->getExtraBookingDaysAfter();
|
||||
$insuranceAssessmentChildBasis += $childExtraPrice * $bookingRequest->getExtraBookingDaysAfter();
|
||||
|
||||
$roomPrice = (($singleExtraFullPrice * $adultCount) + ($childExtraPrice * $childrenCount)) * $bookingRequest->getExtraBookingDaysAfter();
|
||||
|
||||
$ret += $roomPrice;
|
||||
|
||||
$outPriceInfo['booking_after'][] = [
|
||||
'name' => "Verlängerung nach der Reise " . $room['priceType']->getName() . "",
|
||||
'adults' => $adultCount,
|
||||
'children' => $childrenCount,
|
||||
'price' => $singleExtraFullPrice,
|
||||
'price_children' => $childExtraPrice,
|
||||
'price_total' => $roomPrice,
|
||||
'days' => $bookingRequest->getExtraBookingDaysAfter()
|
||||
];
|
||||
|
||||
|
||||
|
||||
if (!empty($tempExtraDaysAfterHTML[$key])) {
|
||||
$tempExtraDaysAfterHTML[$key]['count'] = $tempExtraDaysAfterHTML[$key]['count'] + 1;
|
||||
$tempExtraDaysAfterHTML[$key]['value'] = $tempExtraDaysAfterHTML[$key]['value'] + $roomPrice;
|
||||
} else {
|
||||
$tempExtraDaysAfterHTML[$key] = array(
|
||||
'value' => $roomPrice,
|
||||
'label_first' => "Verlängerung nach der Reise " . $room['priceType']->getName() . "",
|
||||
'label_last' => Util::formatPrice($singleExtraFullPrice) . ' pro Person/Tag',
|
||||
'count' => 1,
|
||||
'days' => $bookingRequest->getExtraBookingDaysAfter(),
|
||||
'childCount' => $room['persons']['children'],
|
||||
'price_child' => Util::formatPrice($room['price']->getEffectiveExtraChildPrice()),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
//ROOMS DISCOUNT Versicherungen
|
||||
foreach ($possibleRooms as $room)
|
||||
{
|
||||
|
|
@ -675,126 +803,9 @@ class BookingController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
$tempExtraDaysBeforeHTML = array();
|
||||
$newExtraDaysTravelDate = [
|
||||
'change' => 0,
|
||||
'start' => $travelDate->getStart()->format('d.m.Y'),
|
||||
'end' => $travelDate->getEnd()->format('d.m.Y'),
|
||||
];
|
||||
//days before
|
||||
if($bookingRequest->getExtraBookingDaysBefore()){
|
||||
|
||||
$newDay = clone $travelDate->getStart();
|
||||
$newDay->modify('-'.$bookingRequest->getExtraBookingDaysBefore().' day');
|
||||
$newExtraDaysTravelDate['change'] = 1;
|
||||
$newExtraDaysTravelDate['start'] = $newDay->format('d.m.Y');
|
||||
|
||||
foreach ($possibleRooms as $room) {
|
||||
$key = $room['priceType']->getId();
|
||||
|
||||
$adultCount = $room['persons']['adults'];
|
||||
$childrenCount = $room['persons']['children'];
|
||||
|
||||
if ($bookingRequest->getComfort()){
|
||||
$singleExtraFullPrice = $room['price']->getEffectiveExtraComfortPrice();
|
||||
}else{
|
||||
$singleExtraFullPrice = $room['price']->getEffectiveExtraPrice();
|
||||
}
|
||||
$childExtraPrice = $room['price']->getEffectiveExtraChildPrice();
|
||||
|
||||
$roomPrice = (($singleExtraFullPrice * $adultCount) + ($childExtraPrice * $childrenCount)) * $bookingRequest->getExtraBookingDaysBefore();
|
||||
|
||||
$ret += $roomPrice;
|
||||
|
||||
$outPriceInfo['booking_before'][] = [
|
||||
'name' => "Verlängerung vor der Reise " . $room['priceType']->getName() . "",
|
||||
'adults' => $adultCount,
|
||||
'children' => $childrenCount,
|
||||
'price' => $singleExtraFullPrice,
|
||||
'price_children' => $childExtraPrice,
|
||||
'price_total' => $roomPrice,
|
||||
'days' => $bookingRequest->getExtraBookingDaysBefore()
|
||||
];
|
||||
|
||||
|
||||
|
||||
if (!empty($tempExtraDaysBeforeHTML[$key])) {
|
||||
$tempExtraDaysBeforeHTML[$key]['count'] = $tempExtraDaysBeforeHTML[$key]['count'] + 1;
|
||||
$tempExtraDaysBeforeHTML[$key]['value'] = $tempExtraDaysBeforeHTML[$key]['value'] + $roomPrice;
|
||||
} else {
|
||||
$tempExtraDaysBeforeHTML[$key] = array(
|
||||
'value' => $roomPrice,
|
||||
'label_first' => "Verlängerung vor der Reise " . $room['priceType']->getName() . "",
|
||||
'label_last' => Util::formatPrice($singleExtraFullPrice) . ' pro Person/Tag',
|
||||
'count' => 1,
|
||||
'days' => $bookingRequest->getExtraBookingDaysBefore(),
|
||||
'childCount' => $room['persons']['children'],
|
||||
'price_child' => Util::formatPrice($room['price']->getEffectiveExtraChildPrice()),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
$tempExtraDaysAfterHTML = array();
|
||||
//days before
|
||||
if($bookingRequest->getExtraBookingDaysAfter()){
|
||||
|
||||
$newDay = clone $travelDate->getEnd();
|
||||
$newDay->modify('+'.$bookingRequest->getExtraBookingDaysAfter().' day');
|
||||
$newExtraDaysTravelDate['change'] = 1;
|
||||
$newExtraDaysTravelDate['end'] = $newDay->format('d.m.Y');
|
||||
|
||||
foreach ($possibleRooms as $room) {
|
||||
$key = $room['priceType']->getId();
|
||||
|
||||
$adultCount = $room['persons']['adults'];
|
||||
$childrenCount = $room['persons']['children'];
|
||||
|
||||
if ($bookingRequest->getComfort()){
|
||||
$singleExtraFullPrice = $room['price']->getEffectiveExtraComfortPrice();
|
||||
}else{
|
||||
$singleExtraFullPrice = $room['price']->getEffectiveExtraPrice();
|
||||
|
||||
}
|
||||
$childExtraPrice = $room['price']->getEffectiveExtraChildPrice();
|
||||
|
||||
$roomPrice = (($singleExtraFullPrice * $adultCount) + ($childExtraPrice * $childrenCount)) * $bookingRequest->getExtraBookingDaysAfter();
|
||||
|
||||
$ret += $roomPrice;
|
||||
|
||||
$outPriceInfo['booking_after'][] = [
|
||||
'name' => "Verlängerung nach der Reise " . $room['priceType']->getName() . "",
|
||||
'adults' => $adultCount,
|
||||
'children' => $childrenCount,
|
||||
'price' => $singleExtraFullPrice,
|
||||
'price_children' => $childExtraPrice,
|
||||
'price_total' => $roomPrice,
|
||||
'days' => $bookingRequest->getExtraBookingDaysAfter()
|
||||
];
|
||||
|
||||
|
||||
|
||||
if (!empty($tempExtraDaysAfterHTML[$key])) {
|
||||
$tempExtraDaysAfterHTML[$key]['count'] = $tempExtraDaysAfterHTML[$key]['count'] + 1;
|
||||
$tempExtraDaysAfterHTML[$key]['value'] = $tempExtraDaysAfterHTML[$key]['value'] + $roomPrice;
|
||||
} else {
|
||||
$tempExtraDaysAfterHTML[$key] = array(
|
||||
'value' => $roomPrice,
|
||||
'label_first' => "Verlängerung nach der Reise " . $room['priceType']->getName() . "",
|
||||
'label_last' => Util::formatPrice($singleExtraFullPrice) . ' pro Person/Tag',
|
||||
'count' => 1,
|
||||
'days' => $bookingRequest->getExtraBookingDaysAfter(),
|
||||
'childCount' => $room['persons']['children'],
|
||||
'price_child' => Util::formatPrice($room['price']->getEffectiveExtraChildPrice()),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//ROOMS
|
||||
if(count($tempRoomHTML) > 0){
|
||||
foreach ($tempRoomHTML as $item) {
|
||||
|
|
|
|||
|
|
@ -45,6 +45,21 @@ class CmsController extends Controller
|
|||
{
|
||||
return $this->render('default/pages/cms/'. $template .'.html.twig', [
|
||||
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||
'site_loading' => 'default',
|
||||
'page' => $page,
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
public function travelGuideAction(Page $page, $template = 'default')
|
||||
{
|
||||
if(!empty($page->getTemplate())){
|
||||
$template = $page->getTemplate();
|
||||
}
|
||||
|
||||
return $this->render('default/pages/cms/'. $template .'.html.twig', [
|
||||
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||
'site_loading' => 'default',
|
||||
'page' => $page,
|
||||
]);
|
||||
}
|
||||
|
|
@ -93,8 +108,6 @@ class CmsController extends Controller
|
|||
$tour_tap = $slugs[$page->getSlug()][1];
|
||||
}
|
||||
|
||||
|
||||
|
||||
return $this->render('default/pages/cms/'. $page->getTemplate() .'.html.twig', [
|
||||
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||
'site_loading' => 'default',
|
||||
|
|
|
|||
|
|
@ -43,6 +43,9 @@ class ComponentController extends Controller
|
|||
|
||||
public function navSidebarWidgetAction(Page $page, $title = 'Reiseprogramme')
|
||||
{
|
||||
if(!empty($page->getTitle())){
|
||||
$title = $page->getTitle();
|
||||
}
|
||||
$pageRepo = $this->getEntityManager()->getRepository('AppBundle:Page');
|
||||
$view = [
|
||||
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||
|
|
@ -106,8 +109,10 @@ class ComponentController extends Controller
|
|||
}
|
||||
else
|
||||
{
|
||||
|
||||
$destination = $page->getCountry();
|
||||
}
|
||||
|
||||
return $this->render('default/components/sidebar/searchSidebarWidgetInner.html.twig', [
|
||||
'slider_title' => $title,
|
||||
'search_form' => $this->createForm(SearchRequestType::class, [
|
||||
|
|
@ -190,7 +195,7 @@ class ComponentController extends Controller
|
|||
public function makeSidebarWidgetAction($site_loading = 'default', Page $page = null){
|
||||
|
||||
$show_seal_of_approval = false;
|
||||
|
||||
//default
|
||||
switch ($site_loading){
|
||||
case 'home' :
|
||||
$site = 'home';
|
||||
|
|
@ -221,7 +226,6 @@ class ComponentController extends Controller
|
|||
}
|
||||
$sidebarRepo = $this->getEntityManager()->getRepository('AppBundle:SidebarWidget');
|
||||
$widgets = $sidebarRepo->findWidgetsBy($site);
|
||||
|
||||
return $this->render(':default/components/sidebar:sidebar.html.twig', [
|
||||
'page' => $page,
|
||||
'site_loading' => $site_loading,
|
||||
|
|
|
|||
|
|
@ -274,7 +274,7 @@ class FewoBookingController extends Controller
|
|||
$em->flush();
|
||||
|
||||
//TODO add to new CRM
|
||||
$crmBookingUrl = $this->get('app.fewo_booking_exporter')->process($fewoBookingRequest, $lodging, $price, $priceResult);//, $travelDate, $bookingPriceInfo);
|
||||
$crmBookingUrl = $this->get('app.fewo_booking_exporter')->process($fewoBookingRequest, $lodging, $price, $priceResult, $reservation->getId());//, $travelDate, $bookingPriceInfo);
|
||||
if (!$crmBookingUrl)
|
||||
{
|
||||
$crmBookingUrl = '[CRM-EXPORT FEHLGESCHLAGEN]';
|
||||
|
|
|
|||
256
trunk/src/AppBundle/Controller/MyActionController.php
Normal file
256
trunk/src/AppBundle/Controller/MyActionController.php
Normal file
|
|
@ -0,0 +1,256 @@
|
|||
|
||||
|
||||
|
||||
|
||||
Verschieben Reiseführer
|
||||
|
||||
Türkei
|
||||
ID 1548
|
||||
|
||||
|
||||
tree_root = 5
|
||||
parent_id = 5
|
||||
lft = last in root lft 4570
|
||||
rgt =last in parent_id + 1 = 4728
|
||||
|
||||
slug = reisefuehrer
|
||||
title = Türkei Reiseführer
|
||||
|
||||
|
||||
Update subsite parent_id=1548
|
||||
|
||||
UPDATE page SET lft=page.lft+1000 WHERE parent_id=1548
|
||||
UPDATE page SET rgt=page.rgt+1000 WHERE parent_id=1548
|
||||
UPDATE page SET tree_root=5 WHERE parent_id=1548
|
||||
|
||||
|
||||
|
||||
301 KernelControllerListener
|
||||
|
||||
https://www.sterntours.de/reisefuehrer/tuerkei
|
||||
->
|
||||
https://www.sterntours.de/tuerkei-reisen/reisefuehrer
|
||||
|
||||
|
||||
|
||||
https://www.sterntours.de/reisefuehrer/tuerkei/stadt-milet
|
||||
->
|
||||
https://www.sterntours.de/tuerkei-reisen/reisefuehrer/stadt-milet
|
||||
|
||||
-----
|
||||
|
||||
Jordanien
|
||||
ID; 1472
|
||||
|
||||
OWNer 266
|
||||
|
||||
tree_root = 266
|
||||
parent_id = 266
|
||||
lft = last in root lft 4278
|
||||
rgt =last in parent_id + 1 = 4327
|
||||
|
||||
|
||||
4600
|
||||
4651
|
||||
|
||||
|
||||
UPDATE page SET lft=page.lft+1000 WHERE parent_id=1472
|
||||
UPDATE page SET rgt=page.rgt+1000 WHERE parent_id=1472
|
||||
UPDATE page SET tree_root=266 WHERE parent_id=1472
|
||||
|
||||
301 KernelControllerListener
|
||||
|
||||
https://www.sterntours.de/reisefuehrer/jordanien
|
||||
->
|
||||
https://www.sterntours.de/jordanien-reisen/reisefuehrer
|
||||
|
||||
https://www.sterntours.de/reisefuehrer/jordanien/petra
|
||||
->
|
||||
https://www.sterntours.de/jordanien-reisen/reisefuehrer/petra
|
||||
|
||||
|
||||
-----
|
||||
Oman
|
||||
ID; 3056
|
||||
//reisefuehrer
|
||||
OWNer 2957
|
||||
|
||||
tree_root = 2957
|
||||
parent_id = 2957
|
||||
4508
|
||||
4599
|
||||
|
||||
lft = last in root lft 4508
|
||||
rgt =last in parent_id + 1 = 4599
|
||||
|
||||
|
||||
UPDATE page SET lft=page.lft+1000 WHERE parent_id=3056
|
||||
UPDATE page SET rgt=page.rgt+1000 WHERE parent_id=3056
|
||||
UPDATE page SET tree_root=2957 WHERE parent_id=3056
|
||||
|
||||
301 KernelControllerListener
|
||||
|
||||
https://www.sterntours.de/reisefuehrer/oman
|
||||
->
|
||||
https://www.sterntours.de/oman-reisen/reisefuehrer
|
||||
|
||||
https://www.sterntours.de/reisefuehrer/oman/muscat
|
||||
->
|
||||
https://www.sterntours.de/oman-reisen/reisefuehrer/muscat
|
||||
|
||||
|
||||
|
||||
|
||||
-----
|
||||
ISRAEL
|
||||
ID; 1426
|
||||
//reisefuehrer
|
||||
OWNer 280
|
||||
|
||||
tree_root = 280
|
||||
parent_id = 280
|
||||
4508
|
||||
4599
|
||||
|
||||
lft = last in root lft 4508
|
||||
rgt =last in parent_id + 1 = 4599
|
||||
|
||||
|
||||
UPDATE page SET lft=page.lft+1000 WHERE parent_id=1426
|
||||
UPDATE page SET rgt=page.rgt+1000 WHERE parent_id=1426
|
||||
UPDATE page SET tree_root=280 WHERE parent_id=1426
|
||||
|
||||
301 KernelControllerListener
|
||||
|
||||
https://www.sterntours.de/reisefuehrer/israel
|
||||
->
|
||||
https://www.sterntours.de/israel-reisen/reisefuehrer
|
||||
|
||||
https://www.sterntours.de/reisefuehrer/israel/eilat
|
||||
->
|
||||
https://www.sterntours.de/israel-reisen/reisefuehrer/eilat
|
||||
|
||||
|
||||
aegypten
|
||||
ID; 1314
|
||||
//reisefuehrer
|
||||
OWNer 47
|
||||
|
||||
tree_root = 47
|
||||
parent_id = 47
|
||||
599
|
||||
1322
|
||||
|
||||
|
||||
|
||||
lft = last in root lft 1382
|
||||
rgt =last in parent_id + 1 = 1507
|
||||
|
||||
|
||||
UPDATE page SET lft=page.lft-2000 WHERE parent_id=1314
|
||||
UPDATE page SET rgt=page.rgt-2000 WHERE parent_id=1314
|
||||
UPDATE page SET tree_root=47 WHERE parent_id=1314
|
||||
|
||||
301 KernelControllerListener
|
||||
|
||||
https://www.sterntours.de/reisefuehrer/israel
|
||||
->
|
||||
https://www.sterntours.de/israel-reisen/reisefuehrer
|
||||
|
||||
https://www.sterntours.de/reisefuehrer/israel/eilat
|
||||
->
|
||||
https://www.sterntours.de/israel-reisen/reisefuehrer/eilat
|
||||
|
||||
|
||||
UPDATE page SET lft=page.lft+1000 WHERE tree_root=13 AND country_id=11
|
||||
UPDATE page SET rgt=page.rgt+1000 WHERE tree_root=13 AND country_id=11
|
||||
UPDATE page SET tree_root=5 WHERE tree_root=13 AND country_id=11
|
||||
|
||||
|
||||
|
||||
5
|
||||
tuerkei-reisen
|
||||
4515
|
||||
4572
|
||||
|
||||
tuerkei-reisemagazin
|
||||
2808
|
||||
tree_root 5
|
||||
parent_id 5
|
||||
|
||||
4676
|
||||
4677
|
||||
|
||||
reisemagazin/tuerkei-reisemagazin
|
||||
tuerkei-reisen/tuerkei-reisemagazin
|
||||
|
||||
|
||||
----
|
||||
|
||||
47
|
||||
aegypten-reisen
|
||||
599
|
||||
1508
|
||||
|
||||
aegypten-reisemagazin
|
||||
2806
|
||||
tree_root 47
|
||||
parent_id 47
|
||||
|
||||
3732
|
||||
3741
|
||||
|
||||
reisemagazin/aegypten
|
||||
reisemagazin/aegypten/aegypten-nil
|
||||
aegypten-reisen/aegypten-reisemagazin
|
||||
|
||||
|
||||
----
|
||||
|
||||
280
|
||||
israel-reisen
|
||||
3971
|
||||
4600
|
||||
|
||||
israel-reisemagazin
|
||||
2804
|
||||
tree_root 280
|
||||
parent_id 280
|
||||
|
||||
|
||||
reisemagazin/israel
|
||||
reisemagazin/israel/xxx
|
||||
israel-reisen/israel-reisemagazin
|
||||
|
||||
----
|
||||
|
||||
266
|
||||
jordanien-reisen
|
||||
3971
|
||||
4600
|
||||
|
||||
jordanien-reisemagazin
|
||||
2805
|
||||
tree_root 266
|
||||
parent_id 266
|
||||
|
||||
|
||||
reisemagazin/jordanien
|
||||
reisemagazin/jordanien/xx
|
||||
jordanien-reisen/jordanien-reisemagazin
|
||||
|
||||
----
|
||||
|
||||
165
|
||||
marokko-urlaub
|
||||
4598
|
||||
4614
|
||||
|
||||
marokko-reisemagazin
|
||||
2807
|
||||
tree_root 266
|
||||
parent_id 266
|
||||
|
||||
|
||||
reisemagazin/marokko
|
||||
marokko-reisen/marokko-reisemagazin
|
||||
|
|
@ -91,6 +91,8 @@ class FewoBookingRequest
|
|||
|
||||
private $acceptPrivacy = false;
|
||||
|
||||
private $acceptRentalConditions = false;
|
||||
|
||||
// private $acceptProcessing = false;
|
||||
|
||||
private $lodging;
|
||||
|
|
@ -393,6 +395,22 @@ class FewoBookingRequest
|
|||
$this->acceptPrivacy = $acceptPrivacy;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function isAcceptRentalConditions()
|
||||
{
|
||||
return $this->acceptRentalConditions;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $acceptRentalConditions
|
||||
*/
|
||||
public function setAcceptRentalConditions($acceptRentalConditions)
|
||||
{
|
||||
$this->acceptRentalConditions = $acceptRentalConditions;
|
||||
}
|
||||
/*
|
||||
public function isAcceptProcessing()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -8,8 +8,9 @@ use Doctrine\ORM\Mapping as ORM;
|
|||
* TravelCountry
|
||||
*
|
||||
* @ORM\Table(name="travel_country", indexes={@ORM\Index(name="FK_travel_country_page", columns={"feedback_page_id"})})
|
||||
* @ORM\Entity
|
||||
* @ORM\Entity(repositoryClass="AppBundle\Entity\TravelCountryRepository")
|
||||
*/
|
||||
|
||||
class TravelCountry
|
||||
{
|
||||
/**
|
||||
|
|
@ -42,6 +43,15 @@ class TravelCountry
|
|||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
*
|
||||
* @ORM\Column(name="active_frontend", type="boolean", nullable=false)
|
||||
*/
|
||||
private $active_frontend;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @var \AppBundle\Entity\Page
|
||||
*
|
||||
|
|
@ -64,6 +74,7 @@ class TravelCountry
|
|||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Set name
|
||||
*
|
||||
|
|
@ -146,6 +157,30 @@ class TravelCountry
|
|||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set active_frontend
|
||||
*
|
||||
* @param boolean $active_frontend
|
||||
*
|
||||
* @return TravelClass
|
||||
*/
|
||||
public function setActiveFrontend($active_frontend)
|
||||
{
|
||||
$this->active_frontend = $active_frontend;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get active_frontend
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function getActiveFrontend()
|
||||
{
|
||||
return $this->active_frontend;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set feedbackPage
|
||||
*
|
||||
|
|
|
|||
30
trunk/src/AppBundle/Entity/TravelCountryRepository.php
Normal file
30
trunk/src/AppBundle/Entity/TravelCountryRepository.php
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
|
||||
namespace AppBundle\Entity;
|
||||
|
||||
/**
|
||||
* SidebarWidgetRepository
|
||||
*
|
||||
* This class was generated by the Doctrine ORM. Add your own custom
|
||||
* repository methods below.
|
||||
*/
|
||||
class TravelCountryRepository extends \Doctrine\ORM\EntityRepository
|
||||
{
|
||||
|
||||
public function getActiveFrontend()
|
||||
{
|
||||
$qb = $this->createQueryBuilder('travel_country');
|
||||
$qb->where('travel_country.active_frontend = 1')
|
||||
->addOrderBy('travel_country.id', 'ASC');
|
||||
$results = $qb->getQuery()->getResult();
|
||||
|
||||
/* $ret = [];
|
||||
foreach ($results as $result)
|
||||
{
|
||||
if($result->getIsShowAt($site)){
|
||||
$ret[] = $result;
|
||||
}
|
||||
}*/
|
||||
return $results;
|
||||
}
|
||||
}
|
||||
|
|
@ -20,7 +20,7 @@ class FewoBookingSternToursCrmExporter extends SternToursCrmExporter
|
|||
parent::__construct($logger);
|
||||
}
|
||||
|
||||
public function process(FewoBookingRequest $fewoBookingRequest, FewoLodging $fewoLodging, FewoPrice $fewoPrice, $priceResult)
|
||||
public function process(FewoBookingRequest $fewoBookingRequest, FewoLodging $fewoLodging, FewoPrice $fewoPrice, $priceResult, $reservationId)
|
||||
{
|
||||
$lead = $this->createLead($fewoBookingRequest);
|
||||
if ($lead === null)
|
||||
|
|
@ -28,7 +28,7 @@ class FewoBookingSternToursCrmExporter extends SternToursCrmExporter
|
|||
$this->warn('Failed creating lead in CRM', $fewoBookingRequest, Logger::ERROR);
|
||||
return false;
|
||||
}
|
||||
$booking = $this->createBooking($fewoBookingRequest, $fewoLodging, $fewoPrice, $priceResult, $lead->travel_user_id);
|
||||
$booking = $this->createBooking($fewoBookingRequest, $fewoLodging, $fewoPrice, $priceResult, $lead->travel_user_id, $reservationId);
|
||||
if ($booking === null)
|
||||
{
|
||||
$this->warn('Failed creating booking in CRM', $fewoBookingRequest, Logger::ERROR);
|
||||
|
|
@ -88,12 +88,13 @@ class FewoBookingSternToursCrmExporter extends SternToursCrmExporter
|
|||
return $resp;
|
||||
}
|
||||
|
||||
private function createBooking(FewoBookingRequest $fewoBookingRequest, FewoLodging $lodging, FewoPrice $price, $priceResult, $travel_user_id)
|
||||
private function createBooking(FewoBookingRequest $fewoBookingRequest, FewoLodging $lodging, FewoPrice $price, $priceResult, $travel_user_id, $reservationId)
|
||||
{
|
||||
$resp = $this->httpPostAPIv3('fewo/create_fewo_booking',
|
||||
['travel_user_booking_fewo' => [
|
||||
'travel_user_id' => $travel_user_id,
|
||||
'fewo_lodging_id' => $lodging->getId(),
|
||||
'fewo_reservation_id' => $reservationId,
|
||||
'invoice_number' => '',
|
||||
'persons' => $fewoBookingRequest->getTravelerCount(),
|
||||
'adults' => $fewoBookingRequest->getTravelerCountAdult(),
|
||||
|
|
|
|||
|
|
@ -199,6 +199,7 @@ class FewoBookingRequestType extends AbstractType
|
|||
->add('notes', TextareaType::class, ['required' => false])
|
||||
//->add('acceptTerms', CheckboxType::class, ['required' => true])
|
||||
->add('acceptPrivacy', CheckboxType::class, ['required' => true])
|
||||
->add('acceptRentalConditions', CheckboxType::class, ['required' => true])
|
||||
//->add('acceptProcessing', CheckboxType::class, ['required' => true])
|
||||
;
|
||||
|
||||
|
|
|
|||
|
|
@ -7,8 +7,11 @@
|
|||
namespace AppBundle\Form;
|
||||
|
||||
|
||||
use AppBundle\Entity\TravelCountryRepository;
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
|
|
@ -18,8 +21,17 @@ class SearchRequestType extends AbstractType
|
|||
* @param FormBuilderInterface $builder
|
||||
* @param array $options
|
||||
*/
|
||||
|
||||
private static $TRAVEL_COUNTRIES = [
|
||||
'1 Erwachsene(r)' => 1,
|
||||
'2 Erwachsene' => 2,
|
||||
'3 Erwachsene' => 3,
|
||||
'4 Erwachsene' => 4,
|
||||
];
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
|
||||
$builder->setMethod('GET');
|
||||
$builder
|
||||
->add('b', StDateType::class, [
|
||||
|
|
@ -31,10 +43,15 @@ class SearchRequestType extends AbstractType
|
|||
//'data' => new \DateTime('+19 day'),
|
||||
])
|
||||
->add('c', EntityType::class, [
|
||||
|
||||
'required' => false,
|
||||
'placeholder' => 'Reiseziel beliebig',
|
||||
'class' => 'AppBundle\Entity\TravelCountry',
|
||||
'query_builder' => function(EntityRepository $repo) {
|
||||
return $repo->createQueryBuilder('c')->where('c.active_frontend = 1');
|
||||
},
|
||||
])
|
||||
|
||||
->add('c2', EntityType::class, [
|
||||
'required' => false,
|
||||
'placeholder' => 'Bitte wählen (optional)',
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ use Symfony\Component\HttpFoundation\RedirectResponse;
|
|||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
|
||||
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
|
||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
|
||||
class KernelControllerListener
|
||||
|
|
@ -66,6 +67,38 @@ class KernelControllerListener
|
|||
$curPath = implode('/', $pathArray);
|
||||
}
|
||||
|
||||
|
||||
//find and try 301
|
||||
//find => to
|
||||
$redirects = [
|
||||
'/reisefuehrer/tuerkei' => 'tuerkei-reisen/reisefuehrer',
|
||||
'/reisefuehrer/jordanien' => 'jordanien-reisen/reisefuehrer',
|
||||
'/reisefuehrer/oman' => 'oman-reisen/reisefuehrer',
|
||||
'/reisefuehrer/israel' => 'israel-reisen/israel-reisefuehrer',
|
||||
'/reisefuehrer/aegypten' => 'aegypten-reisen/aegypten-reisefuehrer',
|
||||
'/reisemagazin/tuerkei-reisemagazin' => 'tuerkei-reisen/tuerkei-reisemagazin',
|
||||
'/reisemagazin/aegypten' => 'aegypten-reisen/aegypten-reisemagazin',
|
||||
'/reisemagazin/israel' => 'israel-reisen/israel-reisemagazin',
|
||||
'/reisemagazin/jordanien' => 'jordanien-reisen/jordanien-reisemagazin',
|
||||
'/reisemagazin/marokko' => 'marokko-urlaub/marokko-reisemagazin'
|
||||
|
||||
];
|
||||
//301
|
||||
foreach ($redirects as $find => $to){
|
||||
if(strpos($restOfPath, $find) !== false){
|
||||
$restOfPath = str_replace($find, $to, $restOfPath);
|
||||
$protocol = 'https';
|
||||
if (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === "off") {
|
||||
$protocol = 'http';
|
||||
}
|
||||
header("Location: ".$protocol."://" .$_SERVER["HTTP_HOST"]."/".$restOfPath, true, 301);
|
||||
exit();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!$node)
|
||||
{
|
||||
// Now try to find a page by tracing a page node path using the page nodes' slugs
|
||||
|
|
@ -77,7 +110,6 @@ class KernelControllerListener
|
|||
$restOfPath = '/'. implode('/', $pathArray);
|
||||
$slug = array_shift($pathArray);
|
||||
|
||||
|
||||
$qb = $repo->createQueryBuilder('p');
|
||||
$qb->where($qb->expr()->eq('p.lvl', $i));
|
||||
$qb->andWhere($qb->expr()->eq('p.slug', ':slug'));
|
||||
|
|
@ -91,10 +123,20 @@ class KernelControllerListener
|
|||
$childNode = $qb->getQuery()->getOneOrNullResult();
|
||||
if (!$childNode)
|
||||
{
|
||||
$whitelist = [
|
||||
'buchen',
|
||||
'berechne-gesamtpreis',
|
||||
'show_nationality_country_text',
|
||||
'pdf',
|
||||
];
|
||||
if(!in_array($slug, $whitelist)){
|
||||
throw new HttpException(404, 'Seite nicht gefunden: '.$slug);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if ($node)
|
||||
{
|
||||
|
||||
// Avoid database calls to parent later
|
||||
$childNode->setParent($node);
|
||||
}
|
||||
|
|
@ -170,7 +212,6 @@ class KernelControllerListener
|
|||
}
|
||||
else
|
||||
{
|
||||
|
||||
$handler = $node->getTemplate() ? ucfirst($node->getTemplate()) : 'Default';
|
||||
$request->attributes->set('_controller', 'AppBundle:Cms:'. $handler);
|
||||
if ($node->getTemplate())
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -74,3 +74,36 @@
|
|||
font-size: 14px;
|
||||
line-height: 1.3em;
|
||||
}
|
||||
#section_order {
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
#section_order_first {
|
||||
order:1;
|
||||
width: 100%;
|
||||
}
|
||||
#section_order_second {
|
||||
order:2;
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
@media only screen and (max-width: 991px) {
|
||||
#order_row {
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
#sidebar {
|
||||
order: 1;
|
||||
}
|
||||
#content {
|
||||
order: 2;
|
||||
}
|
||||
}
|
||||
|
||||
ol {
|
||||
margin-left: 15px;
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -742,7 +742,7 @@ class LodgingCalendarService
|
|||
if($counter>1){
|
||||
$preCheckDate = clone $checkDay->getDate();
|
||||
$preCheckDate->modify('-'.($minDays).' days');
|
||||
|
||||
if(isset($paddedCalendar[$preCheckDate->format("Y-n")])){
|
||||
$preKey = $this->findCalendarDayKey($paddedCalendar[$preCheckDate->format("Y-n")], $preCheckDate->format("d"));
|
||||
$preCheckDay = $paddedCalendar[$preCheckDate->format("Y-n")]['data'][$preKey];
|
||||
|
||||
|
|
@ -750,6 +750,8 @@ class LodgingCalendarService
|
|||
$checkDay->setIsBookableEnd(true);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// $checkDay->setIsBookableEnd(true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
13
trunk/web/js/custom-min.js
vendored
13
trunk/web/js/custom-min.js
vendored
File diff suppressed because one or more lines are too long
BIN
trunk/web/pdf/Stern-Tours-Mietbedingungen.pdf
Normal file
BIN
trunk/web/pdf/Stern-Tours-Mietbedingungen.pdf
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue