April Mai 2019

This commit is contained in:
Kevin Adametz 2019-05-29 20:37:17 +02:00
parent 8c514bbd4d
commit 6dbaa30791
37 changed files with 55121 additions and 310 deletions

View file

@ -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>

View file

@ -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>
</noscript>
<img width="234" height="180" src="{{ image(image_url|trim('/')).cropResize(360).guess(70) }}" class="img-responsiv img-responsiv-item" style="">
</noscript>

View file

@ -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 -->

View file

@ -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' %}

View file

@ -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>

View file

@ -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>

View file

@ -5,48 +5,37 @@
{% 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 %}
<h1>{{ lodgingGroup.name }}</h1>
{% if(page.slug == "ferienwohnungen")%}
{% if lodgingGroups is not empty %}
{% for lodgingGroup in lodgingGroups %}
<h1>{{ lodgingGroup.name }}</h1>
<div class="row">
{% if lodgingGroup.lodgings is not empty %}
{% for lodging in lodgingGroup.lodgings %}
{% include 'default/components/pageLodgingBox.html.twig' %}
<div class="row">
{% if lodgingGroup.lodgings is not empty %}
{% for lodging in lodgingGroup.lodgings %}
{% include 'default/components/pageLodgingBox.html.twig' %}
{% endfor %}
{% endif %}
</div>
{% endfor %}
{% endif %}
{% else %}
{#{% 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 %}
{% 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>
{% endif %}
</section>
</div>
{% endblock %}

View file

@ -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 }}

View file

@ -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 %}

View file

@ -1,37 +1,37 @@
{% extends get_base_template() %}
{% block body %}
<section class="clearfix">
<div id="section_order">
<h1>{{ page.pagetitle|default(page.title) }}</h1>
{#{% 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 %}
{% include 'default/components/pageBox.html.twig' %}
{% endfor %}
</div>
{% if mediated_child_pages is not empty %}
<h2>
Vermittelte Rundreisen vom {{ page.country is not empty ? (page.country.name ~ '-') }}Spezialisten
STERN TOURS aus Berlin
</h2>
<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 mediated_child_pages %}
{% for child_page in child_pages if child_page.status == 1 and child_page.travelProgram is not empty %}
{% include 'default/components/pageBox.html.twig' %}
{% endfor %}
</div>
{% endif %}
</section>
{% if mediated_child_pages is not empty %}
<section class="clearfix">
{{ page.content|keywords|raw|lozad }}
</section>
<h2>
Vermittelte Rundreisen vom {{ page.country is not empty ? (page.country.name ~ '-') }}Spezialisten
STERN TOURS aus Berlin
</h2>
<div class="row">
{% for child_page in mediated_child_pages %}
{% include 'default/components/pageBox.html.twig' %}
{% endfor %}
</div>
{% endif %}
</section>
</div>
{% endblock %}

View file

@ -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) }}
@ -244,13 +242,29 @@
{{ form_errors(form.acceptPrivacy) }}
<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>

View file

@ -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>

View file

@ -13,40 +13,48 @@
{% block breadcrumb %}{% endblock %}
{% block body %}
<section class="clearfix">
<div id="section_orders">
<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>
<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 -->
{% include 'default/components/multiPageBoxCarousel.html.twig' with {pages: country_pages} %}
</section><!-- end section -->
<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 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 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 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 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 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 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 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 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 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>
<section class="clearfix">
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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 -->
{% endblock body %}

View file

@ -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) {

View file

@ -45,10 +45,25 @@ 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,
]);
}
public function ssSudanTourAction(Page $page, $template = 'default')
{
@ -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',

View file

@ -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,

View file

@ -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]';

View 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

View file

@ -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()
{

View file

@ -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
*

View 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;
}
}

View file

@ -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(),

View file

@ -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])
;

View file

@ -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, [
@ -30,11 +42,16 @@ class SearchRequestType extends AbstractType
'required' => false,
//'data' => new \DateTime('+19 day'),
])
->add('c', EntityType::class, [
->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)',

View file

@ -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

View file

@ -73,4 +73,37 @@
.cc-window {
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

View file

@ -742,14 +742,16 @@ 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];
$preKey = $this->findCalendarDayKey($paddedCalendar[$preCheckDate->format("Y-n")], $preCheckDate->format("d"));
$preCheckDay = $paddedCalendar[$preCheckDate->format("Y-n")]['data'][$preKey];
if($preCheckDay && $preCheckDay->getIsBookable()){
$checkDay->setIsBookableEnd(true);
if($preCheckDay && $preCheckDay->getIsBookable()){
$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

File diff suppressed because one or more lines are too long

Binary file not shown.