* Neues Form-Widget für input + HTML5-datalist (autocomplete)
* Layout head-Bereich: canonical-Tag und title-Tag, sowie robots/noindex,nofollow für einige Seiten * Abfahrtsorte in der Suchmaske auf der Startseite angepasst * Traveltainment-Suche: Suchergebnisseite, CMS-Template (mit Suchmaske oben), Sidebar-Widget * Behoben: Vorschaubild von Reiseprogrammen wird nicht mehr angezeigt * Bewertung für google-Ergebniseintrag (In der Sidebar) * E-Mail-Signatur korrigiert * Eltern-Template wird dynamisch bestimmt / Template ohne "Rahmen" wird für AJAX-Anfragen verwendet * Termin-Status in Termintabelle auf Reiseprogrammseiten anzeigen * /create-tree : Reiseführer-Unterseiten mit Reiseführer-Hauptseite verknüpfen * Behoben: Exception bei Öffnen bestimmter Reisetermine; Bei diesen Terminen fehlen die Abfahrtsorte * Behoben: Video klappt erst beim 2. Klick aus git-svn-id: http://78.47.251.156/svn/dev/sterntours-3@3299 f459cee4-fb09-11de-96c3-f9c5f16c3c76
This commit is contained in:
parent
d8fcf531ec
commit
ff9c159297
27 changed files with 1167 additions and 229 deletions
|
|
@ -5,6 +5,12 @@
|
||||||
<!--[if (gte IE 9)|!(IE)]><!--><html lang="de"><!--<![endif]-->
|
<!--[if (gte IE 9)|!(IE)]><!--><html lang="de"><!--<![endif]-->
|
||||||
<head>
|
<head>
|
||||||
|
|
||||||
|
<title>
|
||||||
|
{% block page_title %}
|
||||||
|
{{ page is defined ? page.pagetitle : 'Kulturreisen vom Reiseveranstalter STERN TOURS aus Berlin' }}
|
||||||
|
{% endblock page_title %}
|
||||||
|
</title>
|
||||||
|
|
||||||
{% block metatags %}
|
{% block metatags %}
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
|
@ -19,6 +25,22 @@
|
||||||
<link rel="apple-touch-icon" sizes="72x72" href="/bundles/app/images/apple-icon-72x72.png" />
|
<link rel="apple-touch-icon" sizes="72x72" href="/bundles/app/images/apple-icon-72x72.png" />
|
||||||
<link rel="apple-touch-icon" sizes="114x114" href="/bundles/app/images/apple-icon-114x114.png" />
|
<link rel="apple-touch-icon" sizes="114x114" href="/bundles/app/images/apple-icon-114x114.png" />
|
||||||
|
|
||||||
|
{% block canonical_tag %}
|
||||||
|
{% block canonical_url %}
|
||||||
|
{% if canonical_url is not defined and page is defined %}
|
||||||
|
{% if page.canonicalUrl is not empty %}
|
||||||
|
{% set canonical_url = (page.canonicalUrl starts with '/' ? get_base_url()) ~ page.canonicalUrl %}
|
||||||
|
{% else %}
|
||||||
|
{% set canonical_url = get_base_url() ~ page.urlPath %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
{% if canonical_url is defined %}
|
||||||
|
<link rel="canonical" href="{{ canonical_url }}" />
|
||||||
|
<link rel="alternate" hreflang="de-de" href="{{ canonical_url }}" />
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
{% stylesheets
|
{% stylesheets
|
||||||
'bundles/app/css/bootstrap-3.3.7.css'
|
'bundles/app/css/bootstrap-3.3.7.css'
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,124 @@
|
||||||
|
{% form_theme search_form 'default/form/theme.html.twig' %}
|
||||||
|
|
||||||
|
<section class="section fullscreen background start-slider">
|
||||||
|
<div class="absolute-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12 col-xs-12">
|
||||||
|
<div class="home-message text-center">
|
||||||
|
<div class="home-info-box">
|
||||||
|
<div id="eKomiSeal_default" class="eKomi-header">
|
||||||
|
<a id="eKomiSeal_BBBA4ECJTK29MA5_eKomiSeal_default" href="https://www.ekomi.de/bewertungen-stern-tours.html" title="eKomi - The Feedback Company: "><img border="0" src="https://connect.ekomi.de/seal/BBBA4ECJTK29MA5-70x70.png" alt="eKomi - The Feedback Company: "></a>
|
||||||
|
</div>
|
||||||
|
<ul class="c4">
|
||||||
|
<li>Spezialist für Kulturreisen </li>
|
||||||
|
<li>Reiseexperte seit 1998</li>
|
||||||
|
<li>Beratung für individuelle Reisen</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- end homemessage -->
|
||||||
|
</div><!-- end col -->
|
||||||
|
</div><!-- end row -->
|
||||||
|
</div><!-- end container -->
|
||||||
|
</div>
|
||||||
|
<div id="myCarousel" class="carousel slide">
|
||||||
|
<!-- Indicators -->
|
||||||
|
|
||||||
|
<!-- Wrapper for Slides -->
|
||||||
|
<div class="carousel-inner">
|
||||||
|
<div class="item active">
|
||||||
|
<!-- Set the first background image using inline CSS below. -->
|
||||||
|
<div class="fill" style="background-image:url('/bundles/app/images/travel/header-top-image.jpg');"></div>
|
||||||
|
</div>
|
||||||
|
<div class="item">
|
||||||
|
<!-- Set the second background image using inline CSS below. -->
|
||||||
|
<div class="fill" style="background-image:url('/bundles/app/images/travel/header-top-image1.jpg');"></div>
|
||||||
|
</div>
|
||||||
|
<div class="item">
|
||||||
|
<!-- Set the third background image using inline CSS below. -->
|
||||||
|
<div class="fill" style="background-image:url('/bundles/app/images/travel/header-top-image2.jpg');"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section><!-- end section -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<section class="nopadding absolute-sectionss">
|
||||||
|
<div class="container-full absolute">
|
||||||
|
<div class="container container-form">
|
||||||
|
<div class="home-form">
|
||||||
|
<!-- Nav tabs
|
||||||
|
Hier bitte die Tabs über Parameter Steuer, wenn JS aus.
|
||||||
|
Paramter an URL hängen und dann den jeweiligen Tab auf active setzen.
|
||||||
|
-->
|
||||||
|
<ul class="nav nav-tabs nav-justified" role="tablist">
|
||||||
|
<li class="active"><a href="#tab_01" aria-controls="tab_01" role="tab" data-toggle="tab">Kulturreisen</a></li>
|
||||||
|
<li><a href="#tab_02" aria-controls="tab_02" role="tab" data-toggle="tab">Pauschalreisen weltweit</a></li>
|
||||||
|
<li><a href="/docs/jugendreisen.html" aria-controls="tab_03" role="tab" data-toggle="tab">Jugendreisen</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="tab-content">
|
||||||
|
<div role="tabpanel" class="tab-pane active" id="tab_01">
|
||||||
|
<form class="bookform form-inline row" action="/suche" method="get">
|
||||||
|
<div class="form-group col-md-3 col-sm-6 col-xs-12">
|
||||||
|
{{ form_field_pho(search_form.c) }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group col-md-2 col-sm-6 col-xs-12">
|
||||||
|
{{ form_field_pho(search_form.b, 'Anreise') }}
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-md-2 col-sm-6 col-xs-12">
|
||||||
|
{{ form_field_pho(search_form.e, 'Abreise') }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group col-md-3 col-sm-6 col-xs-12">
|
||||||
|
<label class="sr-only" for="departure">Abfahrtsort</label>
|
||||||
|
<div class="dropdown form-bottom">
|
||||||
|
<select id="departure" class="selectpicker" data-style="btn-white" data-dropup-auto="false">
|
||||||
|
<option>beliebiger Abfahrtsort</option>
|
||||||
|
<option>Basel</option>
|
||||||
|
<option>Berlin</option>
|
||||||
|
<option>Berlin Schönefeld</option>
|
||||||
|
<option>Berlin Tegel</option>
|
||||||
|
<option>Bonn</option>
|
||||||
|
<option>Bremen</option>
|
||||||
|
<option>Dresden</option>
|
||||||
|
<option>Düsseldorf</option>
|
||||||
|
<option>Eigenanreise</option>
|
||||||
|
<option>Erfurt</option>
|
||||||
|
<option>Frankfurt</option>
|
||||||
|
<option>Friedrichshafen</option>
|
||||||
|
<option>Genf</option>
|
||||||
|
<option>Graz</option>
|
||||||
|
<option>Hamburg</option>
|
||||||
|
<option>Hannover</option>
|
||||||
|
<option>Köln</option>
|
||||||
|
<option>Leipzig</option>
|
||||||
|
<option>Linz</option>
|
||||||
|
<option>München</option>
|
||||||
|
<option>Nürnberg</option>
|
||||||
|
<option>Saarbrücken</option>
|
||||||
|
<option>Salzburg</option>
|
||||||
|
<option>Stuttgart</option>
|
||||||
|
<option>Wien</option>
|
||||||
|
<option>Zürich</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group col-md-2 col-sm-6 col-xs-12">
|
||||||
|
<button type="submit" class="btn btn-primary btn-block">suchen</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div><!-- end tab-pane -->
|
||||||
|
|
||||||
|
<div role="tabpanel" class="tab-pane" id="tab_02">
|
||||||
|
{% include 'default/components/ttBodySearchForm.html.twig' %}
|
||||||
|
</div><!-- end tab-pane -->
|
||||||
|
|
||||||
|
</div><!-- end tab-content -->
|
||||||
|
</div><!-- end homeform -->
|
||||||
|
</div>
|
||||||
|
</div><!-- end container -->
|
||||||
|
</section><!-- end section -->
|
||||||
|
|
@ -18,7 +18,7 @@
|
||||||
{% if child_page.boxImageUrl is not empty %}
|
{% if child_page.boxImageUrl is not empty %}
|
||||||
{% set image_url = child_page.boxImageUrl %}
|
{% set image_url = child_page.boxImageUrl %}
|
||||||
{% set image_alt = child_page.travelProgram.title|default(child_page.title) %}
|
{% set image_alt = child_page.travelProgram.title|default(child_page.title) %}
|
||||||
{% elseif child_page.boxImageUrl is not empty %}
|
{% elseif child_page.travelProgram is not empty and child_page.travelProgram.previewImage is not empty %}
|
||||||
{% set image_url = '/uploads/travel_program/' ~ child_page.travelProgram.previewImage.fileNameWithExtension %}
|
{% set image_url = '/uploads/travel_program/' ~ child_page.travelProgram.previewImage.fileNameWithExtension %}
|
||||||
{% set image_alt = child_page.title %}
|
{% set image_alt = child_page.title %}
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,21 @@
|
||||||
|
{% form_theme tt_search_form 'default/form/theme.html.twig' %}
|
||||||
|
<div class="widget clearfix">
|
||||||
|
<form action="/tt-suche" method="get" class="searchwidget searchform row">
|
||||||
|
<div class="form-group col-md-12">{{ form_field_pho(tt_search_form.termin, 'Früheste Anreise') }}</div>
|
||||||
|
<div class="form-group col-md-12">{{ form_field_pho(tt_search_form.ruecktermin, 'Späteste Abreise') }}</div>
|
||||||
|
<div class="form-group col-md-12">{{ form_field_pho(tt_search_form.dauer) }}</div>
|
||||||
|
<div class="form-group col-md-12">{{ form_field_pho(tt_search_form.topRegion, 'Reiseziel') }}</div>
|
||||||
|
<div class="form-group col-md-12">{{ form_field_pho(tt_search_form.abflughafen, 'Abflughafen') }}</div>
|
||||||
|
<div class="form-group col-md-12">{{ form_field_pho(tt_search_form.shotel, 'Hotelname') }}</div>
|
||||||
|
<div class="form-group col-md-12">{{ form_field_pho(tt_search_form.kategorie) }}</div>
|
||||||
|
<div class="form-group col-md-12">{{ form_field_pho(tt_search_form.zimmer) }}</div>
|
||||||
|
<div class="form-group col-md-12">{{ form_field_pho(tt_search_form.t) }}</div>
|
||||||
|
<div class="form-group col-md-12">{{ form_field_pho(tt_search_form.child0) }}</div>
|
||||||
|
<div class="form-group col-md-12">{{ form_field_pho(tt_search_form.child1) }}</div>
|
||||||
|
<div class="form-group col-md-12">{{ form_field_pho(tt_search_form.child2) }}</div>
|
||||||
|
|
||||||
|
<div class="form-group col-md-12 col-sm-12 col-xs-12 text-center form-bottom">
|
||||||
|
<button type="submit" class="btn btn-primary btn-block">Angebote suchen</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
@ -1,188 +0,0 @@
|
||||||
<section class="section fullscreen background start-slider">
|
|
||||||
<div class="absolute-section">
|
|
||||||
<div class="container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12 col-xs-12">
|
|
||||||
<div class="home-message text-center">
|
|
||||||
<div class="home-info-box">
|
|
||||||
<div id="eKomiSeal_default" class="eKomi-header">
|
|
||||||
<a id="eKomiSeal_BBBA4ECJTK29MA5_eKomiSeal_default" href="https://www.ekomi.de/bewertungen-stern-tours.html" title="eKomi - The Feedback Company: "><img border="0" src="https://connect.ekomi.de/seal/BBBA4ECJTK29MA5-70x70.png" alt="eKomi - The Feedback Company: "></a>
|
|
||||||
</div>
|
|
||||||
<ul class="c4">
|
|
||||||
<li>Spezialist für Kulturreisen </li>
|
|
||||||
<li>Reiseexperte seit 1998</li>
|
|
||||||
<li>Beratung für individuelle Reisen</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div><!-- end homemessage -->
|
|
||||||
</div><!-- end col -->
|
|
||||||
</div><!-- end row -->
|
|
||||||
</div><!-- end container -->
|
|
||||||
</div>
|
|
||||||
<div id="myCarousel" class="carousel slide">
|
|
||||||
<!-- Indicators -->
|
|
||||||
|
|
||||||
<!-- Wrapper for Slides -->
|
|
||||||
<div class="carousel-inner">
|
|
||||||
<div class="item active">
|
|
||||||
<!-- Set the first background image using inline CSS below. -->
|
|
||||||
<div class="fill" style="background-image:url('/bundles/app/images/travel/header-top-image.jpg');"></div>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<!-- Set the second background image using inline CSS below. -->
|
|
||||||
<div class="fill" style="background-image:url('/bundles/app/images/travel/header-top-image1.jpg');"></div>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<!-- Set the third background image using inline CSS below. -->
|
|
||||||
<div class="fill" style="background-image:url('/bundles/app/images/travel/header-top-image2.jpg');"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section><!-- end section -->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<section class="nopadding absolute-sectionss">
|
|
||||||
<div class="container-full absolute">
|
|
||||||
<div class="container container-form">
|
|
||||||
<div class="home-form">
|
|
||||||
<!-- Nav tabs
|
|
||||||
Hier bitte die Tabs über Parameter Steuer, wenn JS aus.
|
|
||||||
Paramter an URL hängen und dann den jeweiligen Tab auf active setzen.
|
|
||||||
-->
|
|
||||||
<ul class="nav nav-tabs nav-justified" role="tablist">
|
|
||||||
<li class="active"><a href="#tab_01" aria-controls="tab_01" role="tab" data-toggle="tab">Kulturreisen</a></li>
|
|
||||||
<li><a href="#tab_02" aria-controls="tab_02" role="tab" data-toggle="tab">Pauschalreisen weltweit</a></li>
|
|
||||||
<li><a href="#tab_03" aria-controls="tab_03" role="tab" data-toggle="tab">Jugendreisen</a></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div class="tab-content">
|
|
||||||
<div role="tabpanel" class="tab-pane active" id="tab_01">
|
|
||||||
<form class="bookform form-inline row" action="/suche" method="get">
|
|
||||||
<div class="form-group col-md-3 col-sm-6 col-xs-12">
|
|
||||||
<div class="dropdown">
|
|
||||||
<select class="selectpicker" data-style="btn-white" data-dropup-auto="false" name="c">
|
|
||||||
<option value="">beliebiges Reiseziel</option>
|
|
||||||
{% for destination in destinations %}
|
|
||||||
<option value="{{ destination.id }}">{{ destination.name }}</option>
|
|
||||||
{% endfor %}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group col-md-2 col-sm-6 col-xs-12">
|
|
||||||
<div class="input-group">
|
|
||||||
<input id="" name="b" value="{{ startDate|date }}"
|
|
||||||
type="text" class="form-control datepicker" placeholder="Anreise"
|
|
||||||
>
|
|
||||||
<div class="input-group-addon"><i class="fa fa-calendar"></i></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group col-md-2 col-sm-6 col-xs-12">
|
|
||||||
<div class="input-group">
|
|
||||||
<input id="" name="e" value="{{ endDate|date }}"
|
|
||||||
type="text" class="form-control datepicker" placeholder="Abreise"
|
|
||||||
>
|
|
||||||
<div class="input-group-addon"><i class="fa fa-calendar"></i></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group col-md-3 col-sm-6 col-xs-12">
|
|
||||||
<div class="dropdown form-bottom">
|
|
||||||
<select name="RW" class="selectpicker" data-style="btn-white" data-dropup-auto="false"><option value="-1">Abflughafen</option><option value="5000">Nord</option><option value="5001">Süd</option><option value="5002">West</option><option value="5003">Ost</option><option value="1">Amsterdam (NL)</option><option value="3">Basel-Mulhouse (CH)</option><option value="141">Berlin Brandenburg</option><option value="4">Berlin-Schönefeld</option><option value="5">Berlin-Tegel</option><option value="8">Bremen</option><option value="9">Brüssel (B)</option><option value="67">Brüssel Charleroi (B)</option><option value="10">Dortmund</option><option value="11">Dresden</option><option value="12">Düsseldorf</option><option value="73">Eindhoven (NL)</option><option value="13">Enschede (NL)</option><option value="14">Erfurt-Weimar</option><option value="15">Frankfurt</option><option value="16">Frankfurt-Hahn</option><option value="17">Friedrichshafen</option><option value="18">Genf (CH)</option><option value="19">Graz (A)</option><option value="81">Groningen (NL)</option><option value="20">Hamburg</option><option value="21">Hannover</option><option value="23">Innsbruck (A)</option><option value="24">Karlsruhe</option><option value="25">Kassel-Calden</option><option value="27">Klagenfurt (A)</option><option value="28">Köln-Bonn</option><option value="29">Leipzig/Halle</option><option value="30">Linz (A)</option><option value="31">Lübeck</option><option value="32">Lüttich (B)</option><option value="33">Luxemburg</option><option value="34">Maastricht - Aachen (NL)</option><option value="139">Magdeburg Cochstedt</option><option value="90">Memmingen</option><option value="36">München</option><option value="37">Münster-Osnabrück</option><option value="49">Niederrhein (Weeze)</option><option value="38">Nürnberg</option><option value="39">Paderborn</option><option value="40">Rostock</option><option value="41">Saarbrücken</option><option value="42">Salzburg (A)</option><option value="43">Schwerin</option><option value="44">Strasbourg (F)</option><option value="45">Stuttgart</option><option value="77">Warschau (PL)</option><option value="46">Wien (A)</option><option value="47">Zürich (CH)</option><option value="48">Zweibrücken</option></select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group col-md-2 col-sm-6 col-xs-12">
|
|
||||||
<button type="submit" class="btn btn-primary btn-block">suchen</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div><!-- end tab-pane -->
|
|
||||||
|
|
||||||
<div role="tabpanel" class="tab-pane" id="tab_02">
|
|
||||||
<form class="bookform form-inline row">
|
|
||||||
|
|
||||||
<div class="form-group col-md-3 col-sm-6 col-xs-12">
|
|
||||||
|
|
||||||
<div class="input-group form-bottom">
|
|
||||||
<input type="text" class="form-control datepicker" placeholder="Anreise" id="">
|
|
||||||
<div class="input-group-addon"><i class="fa fa-calendar"></i></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="dropdown form-bottom">
|
|
||||||
<select name="RW" class="selectpicker" data-style="btn-white" data-dropup-auto="false"><option value="-1">Abflughafen</option><option value="5000">Nord</option><option value="5001">Süd</option><option value="5002">West</option><option value="5003">Ost</option><option value="1">Amsterdam (NL)</option><option value="3">Basel-Mulhouse (CH)</option><option value="141">Berlin Brandenburg</option><option value="4">Berlin-Schönefeld</option><option value="5">Berlin-Tegel</option><option value="8">Bremen</option><option value="9">Brüssel (B)</option><option value="67">Brüssel Charleroi (B)</option><option value="10">Dortmund</option><option value="11">Dresden</option><option value="12">Düsseldorf</option><option value="73">Eindhoven (NL)</option><option value="13">Enschede (NL)</option><option value="14">Erfurt-Weimar</option><option value="15">Frankfurt</option><option value="16">Frankfurt-Hahn</option><option value="17">Friedrichshafen</option><option value="18">Genf (CH)</option><option value="19">Graz (A)</option><option value="81">Groningen (NL)</option><option value="20">Hamburg</option><option value="21">Hannover</option><option value="23">Innsbruck (A)</option><option value="24">Karlsruhe</option><option value="25">Kassel-Calden</option><option value="27">Klagenfurt (A)</option><option value="28">Köln-Bonn</option><option value="29">Leipzig/Halle</option><option value="30">Linz (A)</option><option value="31">Lübeck</option><option value="32">Lüttich (B)</option><option value="33">Luxemburg</option><option value="34">Maastricht - Aachen (NL)</option><option value="139">Magdeburg Cochstedt</option><option value="90">Memmingen</option><option value="36">München</option><option value="37">Münster-Osnabrück</option><option value="49">Niederrhein (Weeze)</option><option value="38">Nürnberg</option><option value="39">Paderborn</option><option value="40">Rostock</option><option value="41">Saarbrücken</option><option value="42">Salzburg (A)</option><option value="43">Schwerin</option><option value="44">Strasbourg (F)</option><option value="45">Stuttgart</option><option value="77">Warschau (PL)</option><option value="46">Wien (A)</option><option value="47">Zürich (CH)</option><option value="48">Zweibrücken</option></select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="dropdown form-bottom">
|
|
||||||
<select class="selectpicker" data-style="btn-white" data-dropup-auto="false">
|
|
||||||
<option>1 Erwachsener</option>
|
|
||||||
<option>2 Erwachsener</option>
|
|
||||||
<option>3 Erwachsener</option>
|
|
||||||
<option>4 Erwachsener</option>
|
|
||||||
<option>5 Erwachsener</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group col-md-3 col-sm-6 col-xs-12">
|
|
||||||
<div class="input-group form-bottom">
|
|
||||||
<input type="text" class="form-control datepicker" placeholder="Abreise" id="">
|
|
||||||
<div class="input-group-addon"><i class="fa fa-calendar"></i></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="dropdown form-bottom">
|
|
||||||
<select id="selectDestination" name="ZIEL" class="selectpicker" data-style="btn-white" data-dropup-auto="false"><option value="-1">Reiseziel - beliebig</option><option value="10010">Ägypten</option><option value="2202">- Nilkreuzfahrten</option><option value="2204">- Rundreisen & Badeurlaub</option><option value="350">- Hurghada & Safaga</option><option value="330">- Marsa Alam & Quseir</option><option value="349">- Luxor & Assuan</option><option value="351">- Sharm el Sheikh / Nuweiba / Taba</option><option value="348">- Kairo & Gizeh & Memphis & Ismailia</option><option value="2500">- weitere Angebote Ägypten</option><option value="4144">- Marsa Matruh & Alexandria</option><option value="510">Israel - Tel Aviv & Umgebung</option><option value="727">Israel- Totes Meer</option><option value="515">Jordanien</option><option value="10008">Marroko, Tunesien</option><option value="2237">- Rundreisen Marokko</option><option value="959">- Rundreisen Tunesien</option><option value="126">- Marokko - Marrakesch</option><option value="125">- Marokko - Atlantikküste: Agadir / Safi / Tiznit</option><option value="4200">- Marokko - Atlantikküste: Casablanca / El Jadida / Rabat</option><option value="705">- Marokko - Inland</option><option value="614">- Tunesien - Monastir</option><option value="132">- Tunesien - Hammamet</option><option value="133">- Tunesien - Insel Djerba</option><option value="135">- Tunesien - Oase Zarzis</option><option value="131">- Tunesien - Norden</option><option value="136">- Tunesien - Inland</option><option value="134">- Tunesien - Oase Tozeur / Tamerza / Nefta</option><option value="10004">Türkei</option><option value="946">- Rundreisen</option><option value="643">- Side & Alanya</option><option value="434">- Antalya & Belek</option><option value="644">- Kemer & Beldibi</option><option value="373">- Istanbul & Umgebung</option><option value="651">- Kusadasi & Didyma</option><option value="646">- Dalaman - Fethiye - Ölüdeniz</option><option value="647">- Marmaris & Icmeler & Datca</option><option value="652">- Ayvalik, Cesme & Izmir</option><option value="648">- Bodrum</option><option value="2511">- Schwarzmeerküste Türkei</option><option value="2273">Rundreise Arabische Halbinsel</option><option value="2164">Rundreise Oman</option><option value="10032">Glückshotels</option></select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="dropdown form-bottom">
|
|
||||||
<select name="KA1" class="selectpicker" data-style="btn-white" data-dropup-auto="false"><option value="-1">Kind 1</option><option value="1">< 2 Jahre</option><option value="2">2 Jahre</option><option value="3">3 Jahre</option><option value="4">4 Jahre</option><option value="5">5 Jahre</option><option value="6">6 Jahre</option><option value="7">7 Jahre</option><option value="8">8 Jahre</option><option value="9">9 Jahre</option><option value="10">10 Jahre</option><option value="11">11 Jahre</option><option value="12">12 Jahre</option><option value="13">13 Jahre</option><option value="14">14 Jahre</option><option value="15">15 Jahre</option><option value="16">16 Jahre</option></select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group col-md-3 col-sm-6 col-xs-12">
|
|
||||||
|
|
||||||
<div class="dropdown form-bottom">
|
|
||||||
<select class="selectpicker" data-style="btn-white" data-dropup-auto="false"><option value="-1">Reisedauer</option><option value="9">1 - 4 Tage</option><option value="10">5 - 8 Tage</option><option value="6_7">1 Woche</option><option value="7">9 - 12 Tage</option><option value="3">13 - 15 Tage</option><option value="6_14">2 Wochen</option><option value="12">16 - 22 Tage</option><option value="6_21">3 Wochen</option><option value="13">> 22 Tage</option></select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<input type="text" class="form-control" placeholder="Hotelname">
|
|
||||||
|
|
||||||
<div class="dropdown form-bottom">
|
|
||||||
<select name="KA1" class="selectpicker" data-style="btn-white" data-dropup-auto="false"><option value="-1">Kind 2</option><option value="1">< 2 Jahre</option><option value="2">2 Jahre</option><option value="3">3 Jahre</option><option value="4">4 Jahre</option><option value="5">5 Jahre</option><option value="6">6 Jahre</option><option value="7">7 Jahre</option><option value="8">8 Jahre</option><option value="9">9 Jahre</option><option value="10">10 Jahre</option><option value="11">11 Jahre</option><option value="12">12 Jahre</option><option value="13">13 Jahre</option><option value="14">14 Jahre</option><option value="15">15 Jahre</option><option value="16">16 Jahre</option></select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group col-md-3 col-sm-6 col-xs-12">
|
|
||||||
|
|
||||||
<input type="text" class="form-control" placeholder="Ort / Region / Land">
|
|
||||||
|
|
||||||
<div class="dropdown form-bottom">
|
|
||||||
<select name="HCAT" class="selectpicker" data-style="btn-white" data-dropup-auto="false"><option value="-1">Hotelkategorie</option>
|
|
||||||
<option value="0">2 Sterne</option>
|
|
||||||
<option value="1">3 Sterne</option>
|
|
||||||
<option value="2">4 Sterne</option>
|
|
||||||
<option value="3">5 Sterne</option></select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="dropdown form-bottom">
|
|
||||||
<select name="KA1" class="selectpicker" data-style="btn-white" data-dropup-auto="false"><option value="-1">Kind 3</option><option value="1">< 2 Jahre</option><option value="2">2 Jahre</option><option value="3">3 Jahre</option><option value="4">4 Jahre</option><option value="5">5 Jahre</option><option value="6">6 Jahre</option><option value="7">7 Jahre</option><option value="8">8 Jahre</option><option value="9">9 Jahre</option><option value="10">10 Jahre</option><option value="11">11 Jahre</option><option value="12">12 Jahre</option><option value="13">13 Jahre</option><option value="14">14 Jahre</option><option value="15">15 Jahre</option><option value="16">16 Jahre</option></select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group col-md-12 col-sm-12 col-xs-12 text-center form-bottom">
|
|
||||||
<button type="submit" class="btn btn-primary">suchen</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
</div><!-- end tab-pane -->
|
|
||||||
</div><!-- end tab-content -->
|
|
||||||
</div><!-- end homeform -->
|
|
||||||
</div>
|
|
||||||
</div><!-- end container -->
|
|
||||||
</section><!-- end section -->
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
{% form_theme tt_search_form 'default/form/theme.html.twig' %}
|
||||||
|
|
||||||
|
<form action="/tt-suche" method="get" class="bookform form-inline">
|
||||||
|
<div class="form-group row">
|
||||||
|
<div class="col-md-3 col-sm-6 col-xs-12">{{ form_field_pho(tt_search_form.termin, 'Früheste Anreise') }}</div>
|
||||||
|
<div class="col-md-3 col-sm-6 col-xs-12">{{ form_field_pho(tt_search_form.ruecktermin, 'Späteste Abreise') }}</div>
|
||||||
|
<div class="col-md-3 col-sm-6 col-xs-12">{{ form_field_pho(tt_search_form.dauer) }}</div>
|
||||||
|
<div class="col-md-3 col-sm-6 col-xs-12">{{ form_field_pho(tt_search_form.topRegion, 'Reiseziel') }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group row">
|
||||||
|
<div class="col-md-3 col-sm-6 col-xs-12">{{ form_field_pho(tt_search_form.abflughafen, 'Abflughafen') }}</div>
|
||||||
|
<div class="col-md-3 col-sm-6 col-xs-12">{{ form_field_pho(tt_search_form.shotel, 'Hotelname') }}</div>
|
||||||
|
<div class="col-md-3 col-sm-6 col-xs-12">{{ form_field_pho(tt_search_form.kategorie) }}</div>
|
||||||
|
<div class="col-md-3 col-sm-6 col-xs-12">{{ form_field_pho(tt_search_form.zimmer) }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group row">
|
||||||
|
<div class="col-md-3 col-sm-6 col-xs-12">{{ form_field_pho(tt_search_form.t) }}</div>
|
||||||
|
<div class="col-md-3 col-sm-6 col-xs-12">{{ form_field_pho(tt_search_form.child0) }}</div>
|
||||||
|
<div class="col-md-3 col-sm-6 col-xs-12">{{ form_field_pho(tt_search_form.child1) }}</div>
|
||||||
|
<div class="col-md-3 col-sm-6 col-xs-12">{{ form_field_pho(tt_search_form.child2) }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% block tt_body_search_form_submit %}
|
||||||
|
<div class="form-group col-md-12 col-sm-12 col-xs-12 text-center form-bottom">
|
||||||
|
<button type="submit" class="btn btn-primary">suchen</button>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
</form>
|
||||||
|
|
@ -3,7 +3,7 @@ Ihr Team von STERN TOURS
|
||||||
|
|
||||||
--
|
--
|
||||||
|
|
||||||
STERN TOURS Travelservice GmbH
|
STERN TOURS GmbH
|
||||||
Uhlandstr. 137
|
Uhlandstr. 137
|
||||||
10717 Berlin
|
10717 Berlin
|
||||||
|
|
||||||
|
|
@ -14,6 +14,6 @@ Fax: 030 / 700 94 1044
|
||||||
|
|
||||||
Registergericht: Amtsgericht Charlottenburg
|
Registergericht: Amtsgericht Charlottenburg
|
||||||
Registernummer: HRB 67111
|
Registernummer: HRB 67111
|
||||||
Steuernummer: 27/016/10728
|
Steuernummer: 27/545/30703
|
||||||
UST-Ident.-Nr.: DE192609253
|
UST-Ident.-Nr.: DE192609253
|
||||||
Finanzamt: Wilmersdorf
|
Finanzamt: Wilmersdorf
|
||||||
|
|
@ -5,6 +5,9 @@
|
||||||
{%- endblock form_field -%}
|
{%- endblock form_field -%}
|
||||||
|
|
||||||
{%- block form_field_pho -%}
|
{%- block form_field_pho -%}
|
||||||
|
{%- if label is empty -%}
|
||||||
|
{%- set label = form.vars.placeholder -%}
|
||||||
|
{%- endif -%}
|
||||||
{%- set opt = opt|merge({
|
{%- set opt = opt|merge({
|
||||||
label_attr: (opt.label_attr ?? {})|merge({class: (opt.label_attr.class|default('') ~ ' sr-only')|trim}),
|
label_attr: (opt.label_attr ?? {})|merge({class: (opt.label_attr.class|default('') ~ ' sr-only')|trim}),
|
||||||
attr: (opt.attr ?? {})|merge({placeholder: opt.attr.placeholder|default(
|
attr: (opt.attr ?? {})|merge({placeholder: opt.attr.placeholder|default(
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,16 @@
|
||||||
{{- block('base_radio_widget') -}}
|
{{- block('base_radio_widget') -}}
|
||||||
{%- endblock radio_widget %}
|
{%- endblock radio_widget %}
|
||||||
|
|
||||||
|
{% block datalist_widget -%}
|
||||||
|
{% set attr = attr|merge({list: attr.list|default(id ~ '_list')}) -%}
|
||||||
|
{{ block('form_widget_simple') -}}
|
||||||
|
<datalist id="{{ id }}_list">
|
||||||
|
{% for choice in choices %}
|
||||||
|
<option value="{{ choice }}"></option>
|
||||||
|
{% endfor %}
|
||||||
|
</datalist>
|
||||||
|
{%- endblock datalist_widget %}
|
||||||
|
|
||||||
{% block form_label -%}
|
{% block form_label -%}
|
||||||
{%- if required -%}
|
{%- if required -%}
|
||||||
{%- set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' st-required')|trim}) -%}
|
{%- set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' st-required')|trim}) -%}
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,9 @@
|
||||||
|
|
||||||
{% block metatags %}
|
{% block metatags %}
|
||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
<meta name="robots" content="noindex" />
|
<meta name="robots" content="noindex,nofollow" />
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
{% block canonical_tag %}{% endblock %}
|
||||||
|
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
{% extends 'base.html.twig' %}
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{% block canonical_tag %}{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<h1>Vielen Dank für Ihren Buchungsauftrag!</h1>
|
<h1>Vielen Dank für Ihren Buchungsauftrag!</h1>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
@ -1,7 +1,11 @@
|
||||||
{% extends 'base.html.twig' %}
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{% block canonical_url %}
|
||||||
|
{% set canonical_url = get_base_url() ~ '/' %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block header2 %}
|
{% block header2 %}
|
||||||
{% include 'default/components/slider.html.twig' %}
|
{% include 'default/components/home/slider.html.twig' %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block breadcrumb %}{% endblock %}
|
{% block breadcrumb %}{% endblock %}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,11 +26,13 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="description col-md-9">
|
<div class="description col-md-9">
|
||||||
<span class="pull-right">
|
<span class="pull-right">
|
||||||
<a href="https://www.sterntours.de/travel_program/pdf/22/" class="btn btn-default btn-sm border-radius">
|
{# #TODO
|
||||||
<i class="fa fa-file-pdf-o"></i> Druckversion
|
<a href="https://www.sterntours.de/travel_program/pdf/22/" class="btn btn-default btn-sm border-radius">
|
||||||
</a>
|
<i class="fa fa-file-pdf-o"></i> Druckversion
|
||||||
</span>
|
</a>
|
||||||
|
#}
|
||||||
|
</span>
|
||||||
<div class="title clearfix">{{ travel_program.title }}</div>
|
<div class="title clearfix">{{ travel_program.title }}</div>
|
||||||
|
|
||||||
<div class="subtitle">{{ travel_program.subtitle }}</div>
|
<div class="subtitle">{{ travel_program.subtitle }}</div>
|
||||||
|
|
@ -92,7 +94,7 @@
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td data-title="Verfügbarkeit">
|
<td data-title="Verfügbarkeit">
|
||||||
<img src="https://www.sterntours.de/images/icons/available-{{ travel_date.status }}.png"
|
<img src="/images/icons/available-{{ travel_date.status }}.png"
|
||||||
alt="Verfügbarkeit">
|
alt="Verfügbarkeit">
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -182,7 +182,8 @@
|
||||||
<th>Preis p.P im Doppelzimmer</th>
|
<th>Preis p.P im Doppelzimmer</th>
|
||||||
<th>Preis p.P im Einzelzimmer</th>
|
<th>Preis p.P im Einzelzimmer</th>
|
||||||
<th>Abflugorte / Zuschläge</th>
|
<th>Abflugorte / Zuschläge</th>
|
||||||
<th>Buchung</th>
|
<th>Status</th>
|
||||||
|
<th>Buchungsformular</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
@ -251,12 +252,16 @@
|
||||||
'id': loop.index0
|
'id': loop.index0
|
||||||
} %}
|
} %}
|
||||||
</td>
|
</td>
|
||||||
|
<td data-title="Verfügbarkeit">
|
||||||
|
<img src="/images/icons/available-{{ travel_date.status }}.png"
|
||||||
|
alt="Verfügbarkeit">
|
||||||
|
</td>
|
||||||
<td data-title="">
|
<td data-title="">
|
||||||
<a href="{{ page.urlPath ~ '/buchen?nr=' ~ travel_date.name }}"
|
<a href="{{ page.urlPath ~ '/buchen?nr=' ~ travel_date.name }}"
|
||||||
class="btn btn-primary"
|
class="btn btn-primary"
|
||||||
rel="nofollow"
|
rel="nofollow"
|
||||||
>
|
>
|
||||||
Buchungsformular
|
Weiter
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
{% extends get_base_template() %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<section class="clearfix">
|
||||||
|
{% embed 'default/components/ttBodySearchForm.html.twig' %}
|
||||||
|
{% block tt_body_search_form_submit %}
|
||||||
|
<div class="form-group col-md-12 col-sm-12 col-xs-12 text-center form-bottom">
|
||||||
|
<button type="submit" class="btn btn-primary">suchen</button>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
{% endembed %}
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="clearfix">
|
||||||
|
{{ page.content|raw|keywords }}
|
||||||
|
</section>
|
||||||
|
{% endblock %}
|
||||||
20
trunk/app/Resources/views/default/pages/ttSearch.html.twig
Normal file
20
trunk/app/Resources/views/default/pages/ttSearch.html.twig
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
{% extends get_base_template() %}
|
||||||
|
|
||||||
|
{% block metatags %}
|
||||||
|
{{ parent() }}
|
||||||
|
<meta name="robots" content="noindex,nofollow" />
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block search_sidebar_widget %}
|
||||||
|
{{ include('default/components/sidebar/ttSearchSidebarWidget.html.twig') }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
{% if tt_url is defined %}
|
||||||
|
<iframe src="{{ tt_url }}" scrolling="no" width="100%" height="13500"
|
||||||
|
onload="window.parent.parent.scrollTo(0,0);"
|
||||||
|
></iframe>
|
||||||
|
{% else %}
|
||||||
|
<p>Es konnten leider keine Ergebnisse gefunden werden.</p>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock body %}
|
||||||
|
|
@ -26,6 +26,11 @@ services:
|
||||||
tags:
|
tags:
|
||||||
- { name: twig.extension }
|
- { name: twig.extension }
|
||||||
|
|
||||||
|
form.type.datalist_type:
|
||||||
|
class: AppBundle\Form\DatalistType
|
||||||
|
tags:
|
||||||
|
- { name: form.type, alias: datalist }
|
||||||
|
|
||||||
app.booking_exporter:
|
app.booking_exporter:
|
||||||
class: AppBundle\Export\SternToursCrmBookingExporter
|
class: AppBundle\Export\SternToursCrmBookingExporter
|
||||||
arguments:
|
arguments:
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ use AppBundle\Entity\BreadcrumbEntry;
|
||||||
use AppBundle\Entity\Page;
|
use AppBundle\Entity\Page;
|
||||||
use AppBundle\Entity\TravelProgram;
|
use AppBundle\Entity\TravelProgram;
|
||||||
use AppBundle\Form\SearchRequestType;
|
use AppBundle\Form\SearchRequestType;
|
||||||
|
use AppBundle\Form\TtSearchRequestType;
|
||||||
use AppBundle\Util;
|
use AppBundle\Util;
|
||||||
use Doctrine\ORM\EntityManager;
|
use Doctrine\ORM\EntityManager;
|
||||||
use Doctrine\ORM\Query\Expr;
|
use Doctrine\ORM\Query\Expr;
|
||||||
|
|
@ -27,8 +28,7 @@ class DefaultController extends Controller
|
||||||
|
|
||||||
public function defaultAction(Request $request)
|
public function defaultAction(Request $request)
|
||||||
{
|
{
|
||||||
// #TODO 404
|
throw new $this->createNotFoundException();
|
||||||
die ("caught");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -36,14 +36,12 @@ class DefaultController extends Controller
|
||||||
*/
|
*/
|
||||||
public function homeAction()
|
public function homeAction()
|
||||||
{
|
{
|
||||||
//$departures = $this->getEntityManager()->getRepository('AppBundle:TravelDeparturePoint')->findAll();
|
|
||||||
$destinations = $this->getEntityManager()->getRepository('AppBundle:TravelCountry')->findAll();
|
|
||||||
|
|
||||||
return $this->render('default/pages/home.html.twig', [
|
return $this->render('default/pages/home.html.twig', [
|
||||||
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||||
'destinations' => $destinations,
|
'canonical_url' => Util::getBaseUrl() .'/',
|
||||||
'startDate' => new \DateTime('+5 day'),
|
'show_search_sidebar_widget' => false,
|
||||||
'endDate' => new \DateTime('+19 day')
|
'search_form' => $this->createForm(SearchRequestType::class)->createView(),
|
||||||
|
'tt_search_form' => $this->createForm(TtSearchRequestType::class)->createView(),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -51,7 +49,7 @@ class DefaultController extends Controller
|
||||||
{
|
{
|
||||||
return $this->render('default/pages/default.html.twig', [
|
return $this->render('default/pages/default.html.twig', [
|
||||||
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||||
'page' => $page
|
'page' => $page,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -60,14 +58,6 @@ class DefaultController extends Controller
|
||||||
return $this->render('default/pages/overview.html.twig', [
|
return $this->render('default/pages/overview.html.twig', [
|
||||||
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||||
'page' => $page,
|
'page' => $page,
|
||||||
|
|
||||||
// #WORKAROUND Special navigation logic here adapted from the old website: Don't show child entries
|
|
||||||
// #TODO Only applies at level 0
|
|
||||||
/*
|
|
||||||
'nav_pages' => $page->getChildren(),
|
|
||||||
'nav_child_pages' => [],
|
|
||||||
'nav_open_node' => null
|
|
||||||
*/
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -108,6 +98,17 @@ class DefaultController extends Controller
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function cmsTraveltainmentAction(Page $page)
|
||||||
|
{
|
||||||
|
$form = $this->createForm(TtSearchRequestType::class);
|
||||||
|
|
||||||
|
return $this->render('default/pages/traveltainment.html.twig', [
|
||||||
|
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||||
|
'page' => $page,
|
||||||
|
'tt_search_form' => $form->createView(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
public function cmsTravelProgramAction(Page $page)
|
public function cmsTravelProgramAction(Page $page)
|
||||||
{
|
{
|
||||||
$this->getDoctrine()->getRepository('AppBundle:TravelPeriod')->getTrueTravelPeriods($page->getTravelProgram());
|
$this->getDoctrine()->getRepository('AppBundle:TravelPeriod')->getTrueTravelPeriods($page->getTravelProgram());
|
||||||
|
|
@ -160,6 +161,69 @@ class DefaultController extends Controller
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Route("/tt-suche")
|
||||||
|
*/
|
||||||
|
public function ttSearchAction(Request $request)
|
||||||
|
{
|
||||||
|
$form = $this->createForm(TtSearchRequestType::class);
|
||||||
|
$form->handleRequest($request);
|
||||||
|
|
||||||
|
if ($form->isValid())
|
||||||
|
{
|
||||||
|
$data = $form->getData();
|
||||||
|
|
||||||
|
$ttUrl = 'http://www.vidado.com/booking/ibe_bp2/index.php?CID=8ce65750ce5af9d9a6b22c9b04772ea7&formular=4&engine=pauschal&showresult=1';
|
||||||
|
$ttUrl .= '&termin=' . $data['termin']->format('d.m.Y');
|
||||||
|
$ttUrl .= '&ruecktermin=' . $data['ruecktermin']->format('d.m.Y');
|
||||||
|
if (!empty($data['dauer'])) $ttUrl .= '&dauer='. $data['dauer'];
|
||||||
|
if (!empty($data['t']))
|
||||||
|
{
|
||||||
|
$ttUrl .= '&personen=25'. str_repeat(';25', $data['t']);
|
||||||
|
for ($i = 0; $i < 3; ++$i)
|
||||||
|
{
|
||||||
|
if (!empty($data['child'.$i]))
|
||||||
|
{
|
||||||
|
$ttUrl .= ';'. $data['child'. $i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$ttUrl .= '&detail=';
|
||||||
|
if (!empty($data['topRegion']) && isset(TtSearchRequestType::$DESTINATION_CHOICES[$data['topRegion']]))
|
||||||
|
{
|
||||||
|
$ttUrl .= 'hotel&topRegion='. TtSearchRequestType::$DESTINATION_CHOICES[$data['topRegion']];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$ttUrl .= 'zielgebiet';
|
||||||
|
}
|
||||||
|
if (!empty($data['abflughafen'])) $ttUrl .= '&abflughafen='. $data['abflughafen'];
|
||||||
|
if (!empty($data['shotel'])) $ttUrl .= '&shotel='. urlencode($data['shotel']);
|
||||||
|
if (!empty($data['kategorie'])) $ttUrl .= '&kategorie='. $data['kategorie'];
|
||||||
|
if (!empty($data['zimmer'])) $ttUrl .= '&zimmer='. $data['zimmer'];
|
||||||
|
if (!empty($data['verpflegung'])) $ttUrl .= '&verpflegung='. $data['verpflegung'];
|
||||||
|
if (!empty($data['hbfges'])) $ttUrl .= '&hbfges='. $data['hbfges'];
|
||||||
|
if (!empty($data['hbfanz'])) $ttUrl .= '&hbfanz='. $data['hbfanz'];
|
||||||
|
if (!empty($data['hbfempf'])) $ttUrl .= '&hbfempf='. $data['hbfempf'];
|
||||||
|
if ($data['familie_kinder'] ?? false) $ttUrl .= '&familie_kinder=0';
|
||||||
|
if ($data['strand'] ?? false) $ttUrl .= '&strand=0';
|
||||||
|
if ($data['wellness'] ?? false) $ttUrl .= '&wellness=0';
|
||||||
|
if ($data['typ'] ?? false) $ttUrl .= '&typ=0';
|
||||||
|
if (!empty($data['sportangebot'])) $ttUrl .= '&sportangebot='. $data['sportangebot'];
|
||||||
|
|
||||||
|
//die($ttUrl);
|
||||||
|
//http://www.vidado.com/booking/ibe_bp2/index.php?CID=8ce65750ce5af9d9a6b22c9b04772ea7&formular=4&engine=pauschal&detail=hotel&showresult=1&termin=26.02.2017&ruecktermin=12.03.2017&dauer=6_14&personen=25;25&abflughafen=-1&topRegion=727
|
||||||
|
//http://www.vidado.com/booking/ibe_bp2/index.php?CID=8ce65750ce5af9d9a6b22c9b04772ea7&formular=4&engine=pauschal&detail=zielgebiet&showresult=1&termin=26.02.2017&ruecktermin=12.03.2017&dauer=6_14&personen=25;25&abflughafen=-1&topRegion=
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('default/pages/ttSearch.html.twig', [
|
||||||
|
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||||
|
'breadcrumb_entries' => [new BreadcrumbEntry('Suchen')],
|
||||||
|
'tt_search_form' => $form->createView(),
|
||||||
|
'tt_url' => $ttUrl ?? null,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
public function headerAction()
|
public function headerAction()
|
||||||
{
|
{
|
||||||
$qb = $this->getEntityManager()->createQueryBuilder();
|
$qb = $this->getEntityManager()->createQueryBuilder();
|
||||||
|
|
@ -255,8 +319,6 @@ class DefaultController extends Controller
|
||||||
}
|
}
|
||||||
return $this->render('default/components/sidebar/searchSidebarWidget.html.twig', [
|
return $this->render('default/components/sidebar/searchSidebarWidget.html.twig', [
|
||||||
'search_form' => $this->createForm(SearchRequestType::class, [
|
'search_form' => $this->createForm(SearchRequestType::class, [
|
||||||
'b' => new \DateTime('+5 day'),
|
|
||||||
'e' => new \DateTime('+19 day'),
|
|
||||||
'c' => $destination,
|
'c' => $destination,
|
||||||
'c2' => $combinedDestination,
|
'c2' => $combinedDestination,
|
||||||
])->createView()
|
])->createView()
|
||||||
|
|
@ -302,6 +364,8 @@ class DefaultController extends Controller
|
||||||
$em->getConnection()->executeUpdate('UPDATE page SET owner = 47 WHERE catalog_id = 3 AND owner = 0');
|
$em->getConnection()->executeUpdate('UPDATE page SET owner = 47 WHERE catalog_id = 3 AND owner = 0');
|
||||||
$em->getConnection()->executeUpdate('UPDATE page SET owner = 66 WHERE catalog_id = 6 AND owner = 0');
|
$em->getConnection()->executeUpdate('UPDATE page SET owner = 66 WHERE catalog_id = 6 AND owner = 0');
|
||||||
$em->getConnection()->executeUpdate('UPDATE page SET owner = 2803 WHERE catalog_id = 14 AND owner = 0');
|
$em->getConnection()->executeUpdate('UPDATE page SET owner = 2803 WHERE catalog_id = 14 AND owner = 0');
|
||||||
|
// Add missing owner relation
|
||||||
|
$em->getConnection()->executeUpdate('UPDATE page SET owner = 13 WHERE id in (1314,1426,1472,1548)');
|
||||||
|
|
||||||
$lft = 0;
|
$lft = 0;
|
||||||
$this->createTree(0, $lft, 0);
|
$this->createTree(0, $lft, 0);
|
||||||
|
|
@ -311,6 +375,7 @@ class DefaultController extends Controller
|
||||||
$em->getConnection()->executeUpdate('UPDATE page SET owner = 0 WHERE parent_id = 47 AND catalog_id = 3');
|
$em->getConnection()->executeUpdate('UPDATE page SET owner = 0 WHERE parent_id = 47 AND catalog_id = 3');
|
||||||
$em->getConnection()->executeUpdate('UPDATE page SET owner = 0 WHERE parent_id = 66 AND catalog_id = 6');
|
$em->getConnection()->executeUpdate('UPDATE page SET owner = 0 WHERE parent_id = 66 AND catalog_id = 6');
|
||||||
$em->getConnection()->executeUpdate('UPDATE page SET owner = 0 WHERE parent_id = 2803 AND catalog_id = 14');
|
$em->getConnection()->executeUpdate('UPDATE page SET owner = 0 WHERE parent_id = 2803 AND catalog_id = 14');
|
||||||
|
$em->getConnection()->executeUpdate('UPDATE page SET owner = 0 WHERE id in (1314,1426,1472,1548)');
|
||||||
|
|
||||||
$em->commit();
|
$em->commit();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -78,9 +78,6 @@ class BookingRequest
|
||||||
*/
|
*/
|
||||||
private $email;
|
private $email;
|
||||||
|
|
||||||
/*
|
|
||||||
* @ Assert\Valid()
|
|
||||||
*/
|
|
||||||
private $travelers = [];
|
private $travelers = [];
|
||||||
|
|
||||||
private $notes;
|
private $notes;
|
||||||
|
|
|
||||||
|
|
@ -182,7 +182,7 @@ final class TravelDate
|
||||||
$departures = $this->flightPeriod === null ? [] : $this->flightPeriod->getDepartures();
|
$departures = $this->flightPeriod === null ? [] : $this->flightPeriod->getDepartures();
|
||||||
}
|
}
|
||||||
$defaultDepartures = DepartureUtil::filterDeparturesByPeriod($defaultDepartures, $this->start, $this->end, true);
|
$defaultDepartures = DepartureUtil::filterDeparturesByPeriod($defaultDepartures, $this->start, $this->end, true);
|
||||||
$this->departures = DepartureUtil::mergeDeparturesWithDefaults($defaultDepartures, $departures, true);
|
$this->departures = DepartureUtil::mergeDeparturesWithDefaults($departures, $defaultDepartures, true);
|
||||||
}
|
}
|
||||||
return $this->departures;
|
return $this->departures;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
37
trunk/src/AppBundle/Form/DatalistType.php
Normal file
37
trunk/src/AppBundle/Form/DatalistType.php
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @author Ulrich Hecht <ulrich.hecht@hecht-software.de>
|
||||||
|
* @date 02/20/2017
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace AppBundle\Form;
|
||||||
|
|
||||||
|
|
||||||
|
use Symfony\Component\Form\AbstractType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||||
|
use Symfony\Component\Form\FormInterface;
|
||||||
|
use Symfony\Component\Form\FormView;
|
||||||
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||||
|
|
||||||
|
class DatalistType extends AbstractType
|
||||||
|
{
|
||||||
|
public function configureOptions(OptionsResolver $resolver)
|
||||||
|
{
|
||||||
|
$resolver->setRequired(['choices']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function buildView(FormView $view, FormInterface $form, array $options)
|
||||||
|
{
|
||||||
|
$view->vars['choices'] = $options['choices'];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getName()
|
||||||
|
{
|
||||||
|
return 'datalist';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getParent()
|
||||||
|
{
|
||||||
|
return TextType::class;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -22,8 +22,14 @@ class SearchRequestType extends AbstractType
|
||||||
{
|
{
|
||||||
$builder->setMethod('GET');
|
$builder->setMethod('GET');
|
||||||
$builder
|
$builder
|
||||||
->add('b', StDateType::class, ['required' => false])
|
->add('b', StDateType::class, [
|
||||||
->add('e', StDateType::class, ['required' => false])
|
'required' => false,
|
||||||
|
'data' => new \DateTime('+5 day'),
|
||||||
|
])
|
||||||
|
->add('e', StDateType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'data' => new \DateTime('+19 day'),
|
||||||
|
])
|
||||||
->add('c', EntityType::class, [
|
->add('c', EntityType::class, [
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'placeholder' => 'beliebiges Reiseziel',
|
'placeholder' => 'beliebiges Reiseziel',
|
||||||
|
|
|
||||||
732
trunk/src/AppBundle/Form/TtSearchRequestType.php
Normal file
732
trunk/src/AppBundle/Form/TtSearchRequestType.php
Normal file
|
|
@ -0,0 +1,732 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @author Ulrich Hecht <ulrich.hecht@hecht-software.de>
|
||||||
|
* @date 02/17/2017
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace AppBundle\Form;
|
||||||
|
|
||||||
|
|
||||||
|
use Symfony\Component\Form\AbstractType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||||
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||||
|
|
||||||
|
class TtSearchRequestType extends AbstractType
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @param FormBuilderInterface $builder
|
||||||
|
* @param array $options
|
||||||
|
*/
|
||||||
|
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||||
|
{
|
||||||
|
$childChoices = ['< 2 Jahre' => 1];
|
||||||
|
for ($i = 2; $i <= 16; ++$i)
|
||||||
|
{
|
||||||
|
$childChoices[$i .' Jahre'] = $i;
|
||||||
|
}
|
||||||
|
$defaultStartDate = new \DateTime('+5 day');
|
||||||
|
$defaultEndDate = new \DateTime('+19 day');
|
||||||
|
|
||||||
|
$builder->setMethod('GET');
|
||||||
|
$builder
|
||||||
|
->add('termin', StDateType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'empty_data' => $defaultStartDate->format('d.m.Y'),
|
||||||
|
'data' => $defaultStartDate,
|
||||||
|
])
|
||||||
|
->add('ruecktermin', StDateType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'empty_data' => $defaultEndDate->format('d.m.Y'),
|
||||||
|
'data' => $defaultEndDate,
|
||||||
|
])
|
||||||
|
->add('dauer', ChoiceType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'empty_data' => '6_14',
|
||||||
|
'placeholder' => 'beliebige Reisedauer',
|
||||||
|
'choices' => self::$DURATION_CHOICES,
|
||||||
|
])
|
||||||
|
->add('topRegion', DatalistType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'choices' => array_keys(self::$DESTINATION_CHOICES),
|
||||||
|
])
|
||||||
|
->add('t', ChoiceType::class, [
|
||||||
|
'choices' => self::$TRAVELER_CHOICES,
|
||||||
|
])
|
||||||
|
;
|
||||||
|
for ($i = 0; $i < 3; ++$i)
|
||||||
|
{
|
||||||
|
$builder->add('child'. $i, ChoiceType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'placeholder' => 'Kind '. ($i + 1) .' - nicht vorhanden',
|
||||||
|
'choices' => $childChoices
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
$builder
|
||||||
|
->add('abflughafen', ChoiceType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'placeholder' => 'Abflughafen - beliebig',
|
||||||
|
'choices' => self::$DEPARTURE_CHOICES,
|
||||||
|
])
|
||||||
|
->add('shotel', TextType::class, ['required' => false])
|
||||||
|
->add('kategorie', ChoiceType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'placeholder' => 'Hotel - beliebig',
|
||||||
|
'choices' => self::$HOTEL_CATEGORY_CHOICES,
|
||||||
|
])
|
||||||
|
->add('zimmer', ChoiceType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'placeholder' => 'Zimmertyp - beliebig',
|
||||||
|
'choices' => self::$ROOM_TYPE_CHOICES,
|
||||||
|
])
|
||||||
|
->add('verpflegung', ChoiceType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'placeholder' => 'Verpflegung - beliebig',
|
||||||
|
'choices' => self::$FARE_CHOICES
|
||||||
|
])
|
||||||
|
->add('hbfges', ChoiceType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'placeholder' => 'Bewertung - beliebig',
|
||||||
|
'choices' => self::$HOTEL_RATING_CHOICES,
|
||||||
|
])
|
||||||
|
->add('hbfanz', ChoiceType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'placeholder' => 'Anzahl Bewertungen - beliebig',
|
||||||
|
'choices' => self::$HOTEL_RATING_COUNT_CHOICES,
|
||||||
|
])
|
||||||
|
->add('hbfempf', ChoiceType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'placeholder' => 'Weiterempfehlungen - beliebig',
|
||||||
|
'choices' => self::$HOTEL_RECOMM_CHOICES,
|
||||||
|
])
|
||||||
|
->add('familie_kinder', CheckboxType::class, ['required' => false])
|
||||||
|
->add('strand', CheckboxType::class, ['required' => false])
|
||||||
|
->add('wellness', CheckboxType::class, ['required' => false])
|
||||||
|
->add('typ', CheckboxType::class, ['required' => false])
|
||||||
|
->add('sportangebot', ChoiceType::class, [
|
||||||
|
'required' => false,
|
||||||
|
'placeholder' => 'Sportangebot - beliebig',
|
||||||
|
'choices' => self::$SPORT_CHOICES,
|
||||||
|
])
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param OptionsResolver $resolver
|
||||||
|
*/
|
||||||
|
public function configureOptions(OptionsResolver $resolver)
|
||||||
|
{
|
||||||
|
$resolver->setDefaults(array(
|
||||||
|
'csrf_protection' => false,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getBlockPrefix()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static $TRAVELER_CHOICES = [
|
||||||
|
'1 Erwachsene(r)' => 1,
|
||||||
|
'2 Erwachsene' => 2,
|
||||||
|
'3 Erwachsene' => 3,
|
||||||
|
'4 Erwachsene' => 4,
|
||||||
|
];
|
||||||
|
|
||||||
|
private static $DURATION_CHOICES = [
|
||||||
|
'1 - 4 Tage' => '9',
|
||||||
|
'5 - 8 Tage' => '10',
|
||||||
|
'1 Woche' => '6_7',
|
||||||
|
'9 - 12 Tage' => '7',
|
||||||
|
'13 - 15 Tage' => '3',
|
||||||
|
'2 Wochen' => '6_14',
|
||||||
|
'16 - 22 Tage' => '12',
|
||||||
|
'3 Wochen' => '6_21',
|
||||||
|
'> 22 Tage oder länger' => '13',
|
||||||
|
];
|
||||||
|
|
||||||
|
private static $HOTEL_CATEGORY_CHOICES = [
|
||||||
|
'2 Sterne' => 0,
|
||||||
|
'3 Sterne' => 1,
|
||||||
|
'4 Sterne' => 2,
|
||||||
|
'5 Sterne' => 3,
|
||||||
|
];
|
||||||
|
|
||||||
|
private static $ROOM_TYPE_CHOICES = [
|
||||||
|
'Einzelzimmer' => 5,
|
||||||
|
'Doppelzimmer' => 6,
|
||||||
|
'Familienzimmer' => 2,
|
||||||
|
'Bungalow' => 0,
|
||||||
|
'Appartment' => 7,
|
||||||
|
];
|
||||||
|
|
||||||
|
private static $FARE_CHOICES = [
|
||||||
|
'nur Übernachtung' => 0,
|
||||||
|
'Frühstück' => 1,
|
||||||
|
'Halbpension' => 2,
|
||||||
|
'Vollpension' => 3,
|
||||||
|
'All Inclusive' => 4,
|
||||||
|
];
|
||||||
|
|
||||||
|
private static $HOTEL_RATING_CHOICES = [
|
||||||
|
'min. 3.0 von 6.0' => 30,
|
||||||
|
'min. 4.0 von 6.0' => 40,
|
||||||
|
'min. 5.0 von 6.0' => 50,
|
||||||
|
'6.0 von 6.0' => 60,
|
||||||
|
];
|
||||||
|
|
||||||
|
private static $HOTEL_RATING_COUNT_CHOICES = [
|
||||||
|
'min. 5' => 5,
|
||||||
|
'min. 10' => 10,
|
||||||
|
'min. 25' => 25,
|
||||||
|
'min. 50' => 50,
|
||||||
|
'min. 100' => 100,
|
||||||
|
];
|
||||||
|
|
||||||
|
private static $HOTEL_RECOMM_CHOICES = [
|
||||||
|
'min. 80%' => 800,
|
||||||
|
'min. 90%' => 900,
|
||||||
|
'100%' => 1000,
|
||||||
|
];
|
||||||
|
|
||||||
|
private static $SPORT_CHOICES = [
|
||||||
|
'großes Sportangebot' => 10,
|
||||||
|
'Tennis' => 0,
|
||||||
|
'Golf' => 1,
|
||||||
|
'Squash' => 2,
|
||||||
|
'Radsport' => 3,
|
||||||
|
'Wassersport' => 4,
|
||||||
|
'Tauchen' => 5,
|
||||||
|
'Reiten' => 6,
|
||||||
|
'Wandern' => 7,
|
||||||
|
'Surfen' => 8,
|
||||||
|
];
|
||||||
|
|
||||||
|
private static $DEPARTURE_CHOICES = [
|
||||||
|
'Nord' => 5000,
|
||||||
|
'S\xFCd' => 5001,
|
||||||
|
'West' => 5002,
|
||||||
|
'Ost' => 5003,
|
||||||
|
'Amsterdam (NL)' => 1,
|
||||||
|
'Basel-Mulhouse (CH)' => 3,
|
||||||
|
'Berlin Brandenburg' => 141,
|
||||||
|
'Berlin-Sch\xF6nefeld' => 4,
|
||||||
|
'Berlin-Tegel' => 5,
|
||||||
|
'Bremen' => 8,
|
||||||
|
'Br\xFCssel (B)' => 9,
|
||||||
|
'Br\xFCssel Charleroi (B)' => 67,
|
||||||
|
'Dortmund' => 10,
|
||||||
|
'Dresden' => 11,
|
||||||
|
'D\xFCsseldorf' => 12,
|
||||||
|
'Eindhoven (NL)' => 73,
|
||||||
|
'Enschede (NL)' => 13,
|
||||||
|
'Erfurt-Weimar' => 14,
|
||||||
|
'Frankfurt' => 15,
|
||||||
|
'Frankfurt-Hahn' => 16,
|
||||||
|
'Friedrichshafen' => 17,
|
||||||
|
'Genf (CH)' => 18,
|
||||||
|
'Graz (A)' => 19,
|
||||||
|
'Groningen (NL)' => 81,
|
||||||
|
'Hamburg' => 20,
|
||||||
|
'Hannover' => 21,
|
||||||
|
'Innsbruck (A)' => 23,
|
||||||
|
'Karlsruhe' => 24,
|
||||||
|
'Kassel-Calden' => 25,
|
||||||
|
'Klagenfurt (A)' => 27,
|
||||||
|
'K\xF6ln-Bonn' => 28,
|
||||||
|
'Leipzig/Halle' => 29,
|
||||||
|
'Linz (A)' => 30,
|
||||||
|
'L\xFCbeck' => 31,
|
||||||
|
'L\xFCttich (B)' => 32,
|
||||||
|
'Luxemburg' => 33,
|
||||||
|
'Maastricht - Aachen (NL)' => 34,
|
||||||
|
'Magdeburg Cochstedt' => 139,
|
||||||
|
'Memmingen' => 90,
|
||||||
|
'M\xFCnchen' => 36,
|
||||||
|
'M\xFCnster-Osnabr\xFCck' => 37,
|
||||||
|
'Niederrhein (Weeze)' => 49,
|
||||||
|
'N\xFCrnberg' => 38,
|
||||||
|
'Paderborn' => 39,
|
||||||
|
'Rostock' => 40,
|
||||||
|
'Saarbr\xFCcken' => 41,
|
||||||
|
'Salzburg (A)' => 42,
|
||||||
|
'Schwerin' => 43,
|
||||||
|
'Strasbourg (F)' => 44,
|
||||||
|
'Stuttgart' => 45,
|
||||||
|
'Warschau (PL)' => 77,
|
||||||
|
'Wien (A)' => 46,
|
||||||
|
'Z\xFCrich (CH)' => 47,
|
||||||
|
'Zweibr\xFCcken' => 48,
|
||||||
|
];
|
||||||
|
|
||||||
|
public static $DESTINATION_CHOICES = [
|
||||||
|
'Balearen' => 10000,
|
||||||
|
'- Formentera' => 627,
|
||||||
|
'- Ibiza' => 32,
|
||||||
|
'- Mallorca' => 35,
|
||||||
|
'- Menorca' => 630,
|
||||||
|
'Kanaren' => 10001,
|
||||||
|
'- Fuerteventura' => 832,
|
||||||
|
'- Teneriffa' => 56,
|
||||||
|
'- La Palma' => 675,
|
||||||
|
'- Lanzarote' => 676,
|
||||||
|
'- Gran Canaria' => 345,
|
||||||
|
'- La Gomera' => 50,
|
||||||
|
'- El Hierro' => 59,
|
||||||
|
'- Graciosa' => 670,
|
||||||
|
'Portugal' => 10002,
|
||||||
|
'- Faro & Algarve' => 637,
|
||||||
|
'- Lissabon & Umgebung' => 674,
|
||||||
|
'- Costa da Caparica (Setúbal)' => 636,
|
||||||
|
'- Alentejo - Beja / Setubal / Evora / Santarem / Portalegre' => 339,
|
||||||
|
'- Porto' => 467,
|
||||||
|
'- Costa do Estoril (Lissabon)' => 695,
|
||||||
|
'- Costa de Prata (Leira / Coimbra / Aveiro)' => 457,
|
||||||
|
'- Costa Verde (Braga / Viana do Castelo)' => 494,
|
||||||
|
'- Madeira' => 639,
|
||||||
|
'- Madeira Rundreisen' => 2244,
|
||||||
|
'- Coimbra / Leiria / Castello Branco' => 338,
|
||||||
|
'- Azoren' => 664,
|
||||||
|
'- Azoren Rundreisen' => 2246,
|
||||||
|
'- Porto Santo' => 2662,
|
||||||
|
'- Braga / Vila Real / Viano do Castelo / Branganca' => 2660,
|
||||||
|
'- Aveiro / Guarda / Viseu' => 2659,
|
||||||
|
'- Costa Azul (Setubal / Beja)' => 2658,
|
||||||
|
'Spanisches Festland' => 10003,
|
||||||
|
'- Spanien Rundreise' => 2068,
|
||||||
|
'- Barcelona & Umgebung' => 2068,
|
||||||
|
'- Golf von Almeria' => 63,
|
||||||
|
'- Costa del Sol & Costa Tropical' => 62,
|
||||||
|
'- Costa Blanca & Costa Calida' => 64,
|
||||||
|
'- Costa Brava' => 2013,
|
||||||
|
'- Madrid & Umgebung' => 794,
|
||||||
|
'- Andalusien Inland' => 229,
|
||||||
|
'- Andalusien Rundreisen' => 2253,
|
||||||
|
'- Costa Barcelona' => 931,
|
||||||
|
'- Costa Dorada' => 2054,
|
||||||
|
'- Costa de la Luz' => 61,
|
||||||
|
'- Nordspanien - Atlantikküste' => 505,
|
||||||
|
'- Costa Azahar' => 2014,
|
||||||
|
'- Zentral Spanien' => 793,
|
||||||
|
'- Provinz Murcia Inland' => 2661,
|
||||||
|
'- Provinz Valencia Inland' => 4202,
|
||||||
|
'- Spanien Nordosten & Pyrenäen' => 65,
|
||||||
|
'- Ceuta' => 4203,
|
||||||
|
'- Melilla' => 4204,
|
||||||
|
'Türkei' => 10004,
|
||||||
|
'- Rundreisen' => 946,
|
||||||
|
'- Side & Alanya' => 643,
|
||||||
|
'- Kemer & Beldibi' => 644,
|
||||||
|
'- Istanbul & Umgebung' => 373,
|
||||||
|
'- Antalya & Belek' => 434,
|
||||||
|
'- Kusadasi & Didyma' => 651,
|
||||||
|
'- Dalaman - Fethiye - Ölüdeniz' => 646,
|
||||||
|
'- Ayvalik, Cesme & Izmir' => 652,
|
||||||
|
'- Marmaris & Icmeler & Datca' => 647,
|
||||||
|
'- Bodrum' => 648,
|
||||||
|
'- Ost-Thrakien & Marmarameer' => 4108,
|
||||||
|
'- Schwarzmeerküste Türkei' => 2511,
|
||||||
|
'- Türkei Inland' => 526,
|
||||||
|
'- Mersin - Adana - Antakya' => 542,
|
||||||
|
'Griechische Inseln' => 10005,
|
||||||
|
'- Kreta' => 616,
|
||||||
|
'- Rhodos' => 655,
|
||||||
|
'- Kos' => 7,
|
||||||
|
'- Santorin' => 12,
|
||||||
|
'- Korfu & Paxi' => 6,
|
||||||
|
'- Mykonos' => 9,
|
||||||
|
'- Zakynthos' => 14,
|
||||||
|
'- Euböa (Evia)' => 383,
|
||||||
|
'- Karpathos & Kasos' => 15,
|
||||||
|
'- Lesbos & Lemnos' => 8,
|
||||||
|
'- Poros' => 546,
|
||||||
|
'Griechische Festland' => 10006,
|
||||||
|
'- Athen & Umgebung' => 18,
|
||||||
|
'- Thessaloniki' => 625,
|
||||||
|
'- Olympische Riviera' => 733,
|
||||||
|
'- Chalkidiki' => 534,
|
||||||
|
'- Peloponnes' => 382,
|
||||||
|
'- Epirus & Westgriechenland' => 553,
|
||||||
|
'- Pilion' => 734,
|
||||||
|
'- Thessalien & Mittelgriechenland' => 4103,
|
||||||
|
'Italien, Malta' => 10007,
|
||||||
|
'- Italien Rundreise' => 2235,
|
||||||
|
'- Malta Rundreise' => 2513,
|
||||||
|
'- Venetien' => 82,
|
||||||
|
'- Malta' => 595,
|
||||||
|
'- Rom & Umgebung' => 560,
|
||||||
|
'- Toskana' => 537,
|
||||||
|
'- Emilia Romagna' => 81,
|
||||||
|
'- Aostatal & Piemont & Lombardei' => 845,
|
||||||
|
'- Neapel & Umgebung' => 76,
|
||||||
|
'- Sizilien' => 77,
|
||||||
|
'- Sizilien Rundreisen' => 2222,
|
||||||
|
'- Apulien' => 464,
|
||||||
|
'- Latium' => 3005,
|
||||||
|
'- Trentino & Südtirol' => 844,
|
||||||
|
'- Oberitalienische Seen' => 2012,
|
||||||
|
'- Friaul - Julisch Venetien' => 297,
|
||||||
|
'- Ligurien' => 818,
|
||||||
|
'- Ischia' => 75,
|
||||||
|
'- Sardinien' => 78,
|
||||||
|
'- Gardasee' => 2048,
|
||||||
|
'- Kalabrien' => 536,
|
||||||
|
'- Umbrien' => 817,
|
||||||
|
'- Basilikata' => 291,
|
||||||
|
'- Dolomiten' => 2046,
|
||||||
|
'- Italienische Alpen' => 2047,
|
||||||
|
'- Capri' => 79,
|
||||||
|
'Marroko, Tunesien Pauschalreisen' => 10008,
|
||||||
|
'- Marokko Rundreisen' => 2237,
|
||||||
|
'- Tunesien Rundreisen' => 959,
|
||||||
|
'- Marokko - Marrakesch' => 126,
|
||||||
|
'- Marokko - Atlantikküste: Agadir / Safi / Tiznit' => 125,
|
||||||
|
'- Marokko - Atlantikküste: Casablanca / El Jadida / Rabat' => 4200,
|
||||||
|
'- Marokko - Inland' => 705,
|
||||||
|
'- Tunesien - Monastir' => 614,
|
||||||
|
'- Tunesien - Hammamet' => 132,
|
||||||
|
'- Tunesien - Insel Djerba' => 133,
|
||||||
|
'- Tunesien - Oase Zarzis' => 135,
|
||||||
|
'- Tunesien - Norden' => 131,
|
||||||
|
'- Tunesien - Inland & Gabès & Sfax' => 136,
|
||||||
|
'- Tunesien - Oase Tozeur / Tamerza / Nefta' => 134,
|
||||||
|
'Ägypten Pauschalreisen' => 10010,
|
||||||
|
'- Nilkreuzfahrten' => 2202,
|
||||||
|
'- Rundreisen & Badeurlaub' => 2204,
|
||||||
|
'- Hurghada & Safaga' => 350,
|
||||||
|
'- Marsa Alam & Quseir' => 330,
|
||||||
|
'- Luxor & Assuan' => 349,
|
||||||
|
'- Sharm el Sheikh / Nuweiba / Taba' => 351,
|
||||||
|
'- Kairo & Gizeh & Memphis & Ismailia' => 348,
|
||||||
|
'- weitere Angebote Ägypten' => 2500,
|
||||||
|
'- Marsa Matruh & Alexandria' => 4144,
|
||||||
|
'Afrika' => 10011,
|
||||||
|
'- Kap Verde - Sal' => 585,
|
||||||
|
'- Kap Verde - Boavista' => 280,
|
||||||
|
'- Kenia - Nairobi & Inland' => 174,
|
||||||
|
'- Gambia' => 137,
|
||||||
|
'- Kenia - Südküste' => 359,
|
||||||
|
'- Kenia - Nordküste' => 358,
|
||||||
|
'- Namibia' => 453,
|
||||||
|
'- Western Cape (Kapstadt)' => 873,
|
||||||
|
'- Senegal' => 139,
|
||||||
|
'- Tansania - Sansibar' => 454,
|
||||||
|
'- Eastern Cape (Port Elizabeth)' => 4109,
|
||||||
|
'- Northern Cape (Kimberley)' => 875,
|
||||||
|
'- Gauteng (Johannesburg)' => 883,
|
||||||
|
'- KwaZulu-Natal (Durban)' => 881,
|
||||||
|
'- Limpopo (Polokwane)' => 879,
|
||||||
|
'- Northwest (Mahikeng)' => 876,
|
||||||
|
'- Äthiopien' => 4112,
|
||||||
|
'- Madagaskar' => 161,
|
||||||
|
'- Botswana' => 842,
|
||||||
|
'- Malawi' => 1019,
|
||||||
|
'Kuba' => 10012,
|
||||||
|
'- Kuba - Havanna & Varadero' => 369,
|
||||||
|
'- Kuba - Holguin' => 371,
|
||||||
|
'- weitere Angebote Kuba' => 2522,
|
||||||
|
'Dom. Republik' => 10013,
|
||||||
|
'- Dom. Republik - Süden (Santo Domingo)' => 368,
|
||||||
|
'- Dom. Republik - Norden (Puerto Plata & Samana)' => 366,
|
||||||
|
'- Dom. Republik - Osten (Punta Cana)' => 367,
|
||||||
|
'Karibik' => 10014,
|
||||||
|
'- Jamaika' => 247,
|
||||||
|
'- Curacao' => 582,
|
||||||
|
'- Martinique' => 571,
|
||||||
|
'- Guadeloupe' => 572,
|
||||||
|
'- Barbados' => 245,
|
||||||
|
'- Saint-Martin (frz.)' => 4098,
|
||||||
|
'- Grenada' => 377,
|
||||||
|
'- Puerto Rico' => 251,
|
||||||
|
'- Aruba' => 4197,
|
||||||
|
'- Tobago' => 378,
|
||||||
|
'- Sint Maarten (nl.)' => 4198,
|
||||||
|
'- Antigua & Barbuda' => 250,
|
||||||
|
'- Bonaire, Sint Eustatius & Saba' => 4110,
|
||||||
|
'- Bahamas' => 566,
|
||||||
|
'- Saint Kitts & Nevis' => 578,
|
||||||
|
'- Cayman Islands' => 581,
|
||||||
|
'- St.Lucia' => 249,
|
||||||
|
'- Bermuda' => 437,
|
||||||
|
'- Saint-Barthélemy' => 2648,
|
||||||
|
'- Virgin Islands British' => 680,
|
||||||
|
'- Turks & Caicosinseln' => 574,
|
||||||
|
'- St. Vincent & Grenadinen' => 747,
|
||||||
|
'- Virgin Islands USA' => 4199,
|
||||||
|
'USA' => 10015,
|
||||||
|
'- New York' => 697,
|
||||||
|
'- Illinois & Wisconsin' => 759,
|
||||||
|
'- New Jersey & Delaware' => 782,
|
||||||
|
'- Florida Ostküste' => 521,
|
||||||
|
'- Nevada' => 692,
|
||||||
|
'- Florida Orlando & Inland' => 524,
|
||||||
|
'- Florida Westküste' => 522,
|
||||||
|
'- Florida Südspitze' => 523,
|
||||||
|
'- Kalifornien' => 688,
|
||||||
|
'- New England' => 886,
|
||||||
|
'- Pennsylvania' => 758,
|
||||||
|
'- Texas' => 755,
|
||||||
|
'- Arizona' => 484,
|
||||||
|
'- Georgia' => 757,
|
||||||
|
'- Tennessee' => 773,
|
||||||
|
'- Louisiana & Mississippi' => 756,
|
||||||
|
'- Michigan' => 762,
|
||||||
|
'Mexiko' => 10016,
|
||||||
|
'- Mexiko: Yucatan / Cancun' => 282,
|
||||||
|
'- Mexiko Stadt' => 541,
|
||||||
|
'- Mexiko: Acapulco / Oaxaca' => 701,
|
||||||
|
'- Mexiko: Pazifikküste' => 704,
|
||||||
|
'- Mexiko: Karibikküste' => 2241,
|
||||||
|
'- Mexiko: Inland' => 438,
|
||||||
|
'Asien' => 10017,
|
||||||
|
'- Sri Lanka' => 361,
|
||||||
|
'- Malaysia' => 452,
|
||||||
|
'- Hongkong & Kowloon & Hongkong Island' => 474,
|
||||||
|
'- China - Peking (Beijing)' => 439,
|
||||||
|
'- China - Hubei / Shaanxi / Shanxi / Henan' => 2654,
|
||||||
|
'- China - Shanghai' => 4141,
|
||||||
|
'- Singapur' => 473,
|
||||||
|
'- Neu Delhi / Rajasthan / Uttar Pradesh / Madhya Pradesh' => 488,
|
||||||
|
'- Vietnam' => 448,
|
||||||
|
'- Karnataka / Kerala / A. Pradesh / T. Nadu / Lakkadiven' => 197,
|
||||||
|
'- Indonesien: Bali' => 311,
|
||||||
|
'- Nepal' => 461,
|
||||||
|
'- Punjab / Uttarakhand / Himachal Pradesh & Hoher Norden' => 2629,
|
||||||
|
'- Indonesien: Java' => 470,
|
||||||
|
'- Indien: Goa' => 360,
|
||||||
|
'- Kambodscha' => 843,
|
||||||
|
'- Taipeh & Umgebung' => 489,
|
||||||
|
'- Bihar / Jharkhand / West Bengal / Odisha & Ostindien' => 2630,
|
||||||
|
'- China - Hainan / Guangdong / Hunan / Jiangxi' => 2653,
|
||||||
|
'- Indonesien: Insel Bintan & Batam' => 871,
|
||||||
|
'- Indonesien: Kleine Sundainseln' => 528,
|
||||||
|
'- Laos' => 847,
|
||||||
|
'- Myanmar' => 645,
|
||||||
|
'- Indien: Maharashtra - Mumbai / Gujarat' => 4201,
|
||||||
|
'- Macao' => 708,
|
||||||
|
'- Indonesien: Nordosten' => 4166,
|
||||||
|
'- Tokio, Osaka, Hiroshima, Japan. Inseln' => 469,
|
||||||
|
'Zypern' => 10019,
|
||||||
|
'- Zypern Rundreisen' => 2276,
|
||||||
|
'- Republik Zypern - Süden' => 620,
|
||||||
|
'- Nordzypern' => 99,
|
||||||
|
'Dubai, Arabische Halbinsel' => 10020,
|
||||||
|
'- Oman Rundreisen' => 2164,
|
||||||
|
'- Arabische Halbinsel Rundreisen' => 2273,
|
||||||
|
'- Oman' => 532,
|
||||||
|
'- Ras Al-Khaimah' => 723,
|
||||||
|
'- Dubai' => 353,
|
||||||
|
'- Sharjah / Khorfakkan' => 352,
|
||||||
|
'- Abu Dhabi' => 354,
|
||||||
|
'- Fujairah' => 722,
|
||||||
|
'- Ajman' => 724,
|
||||||
|
'- Al Ain' => 884,
|
||||||
|
'- Bahrain' => 721,
|
||||||
|
'- Umm Al Quwain' => 725,
|
||||||
|
'- Katar' => 720,
|
||||||
|
'Frankreich' => 10021,
|
||||||
|
'- Côte d\'Azur' => 2055,
|
||||||
|
'- Paris & Umgebung' => 495,
|
||||||
|
'- Pays de la Loire' => 4188,
|
||||||
|
'- Aquitanien' => 25,
|
||||||
|
'- Disneyland Paris' => 2041,
|
||||||
|
'- Normandie & Picardie & Nord-Pas-de-Calais' => 1023,
|
||||||
|
'- Burgund & Centre' => 2017,
|
||||||
|
'- Provence-Alpes-Côte d\'Azur' => 2056,
|
||||||
|
'- Languedoc Roussillon' => 2057,
|
||||||
|
'- Monaco' => 880,
|
||||||
|
'- Franche-Comté & Champagne-Ardenne' => 200,
|
||||||
|
'- Korsika' => 23,
|
||||||
|
'- Rhone Alpes' => 2042,
|
||||||
|
'Nordeuropa' => 10022,
|
||||||
|
'- Schweden' => 851,
|
||||||
|
'- Dänemark' => 902,
|
||||||
|
'- Norwegen' => 813,
|
||||||
|
'- Finnland' => 490,
|
||||||
|
'- Island' => 449,
|
||||||
|
'Südamerika' => 10023,
|
||||||
|
'- Brasilien: Distrito Federal (Brasilia)' => 2599,
|
||||||
|
'- Brasilien: Ceara (Fortaleza)' => 4170,
|
||||||
|
'- Brasilien: Rio Grande de Norte (Natal)' => 4169,
|
||||||
|
'- Brasilien: Alagoas (Maceio)' => 4172,
|
||||||
|
'- Brasilien: Rio de Janeiro & Umgebung' => 375,
|
||||||
|
'- Brasilien: Parana (Curitiba)' => 2592,
|
||||||
|
'- Brasilien: Bahia (Salvador da Bahia)' => 4167,
|
||||||
|
'- Brasilien: Amazonas (Manaus)' => 4171,
|
||||||
|
'- Brasilien: Sergipe (Aracaju)' => 2594,
|
||||||
|
'- Brasilien: Rio Grande do Sul (Porto Alegre)' => 2590,
|
||||||
|
'- Kolumbien' => 376,
|
||||||
|
'- Brasilien: Pernambuco (Recife)' => 374,
|
||||||
|
'- Ecuador' => 783,
|
||||||
|
'- Peru' => 787,
|
||||||
|
'- Venezuela - Isla Margarita' => 440,
|
||||||
|
'- Uruguay' => 785,
|
||||||
|
'- Argentinien' => 450,
|
||||||
|
'- Chile' => 784,
|
||||||
|
'- Venezuela - Küste & Inland & Los Roques Archipel' => 293,
|
||||||
|
'- Brasilien: Paraiba (Joao Pessoa)' => 2595,
|
||||||
|
'Kanada' => 10024,
|
||||||
|
'- Ontario' => 766,
|
||||||
|
'- Alberta' => 767,
|
||||||
|
'- Quebec' => 765,
|
||||||
|
'- British Columbia' => 768,
|
||||||
|
'Naher Osten' => 10026,
|
||||||
|
'- Israel - Tel Aviv & Umgebung' => 510,
|
||||||
|
'- Israel- Eilat' => 225,
|
||||||
|
'- Israel- Totes Meer' => 727,
|
||||||
|
'- Israel' => 511,
|
||||||
|
'- Jordanien' => 515,
|
||||||
|
'- Israel - Jerusalem & Umgebung' => 509,
|
||||||
|
'- Iran' => 2580,
|
||||||
|
'Thailand' => 10027,
|
||||||
|
'- Bangkok & Umgebung' => 321,
|
||||||
|
'- Insel Phuket' => 322,
|
||||||
|
'- Insel Ko Samui' => 325,
|
||||||
|
'- Nordthailand (Chiang Mai, Chiang Rai, Sukhothai)' => 4128,
|
||||||
|
'- Südostthailand (Pattaya, Jomtien)' => 4131,
|
||||||
|
'- Khao Lak & Umgebung' => 846,
|
||||||
|
'- Krabi & Umgebung' => 4133,
|
||||||
|
'- Westthailand (Hua Hin, Cha Am, River Kwai)' => 4130,
|
||||||
|
'- Südthailand (Surat Thani, Trang)' => 4132,
|
||||||
|
'- Inseln im Golf von Thailand (Koh Chang, Koh Phangan)' => 323,
|
||||||
|
'- Inseln in der Andaman See (Koh Pee Pee, Koh Lanta)' => 327,
|
||||||
|
'- Nordostthailand (Issan)' => 4129,
|
||||||
|
'- sonstige Angebote Thailand' => 2535,
|
||||||
|
'Mitteleuropa' => 10028,
|
||||||
|
'- Niederlande' => 854,
|
||||||
|
'- Irland' => 503,
|
||||||
|
'- London & Südengland' => 178,
|
||||||
|
'- Wien & Umgebung' => 958,
|
||||||
|
'- Salzburg - Salzburger Land' => 2007,
|
||||||
|
'- Schottland' => 901,
|
||||||
|
'- Belgien' => 855,
|
||||||
|
'- Kärnten' => 951,
|
||||||
|
'- Österreich Rundreisen' => 2243,
|
||||||
|
'- Niederösterreich' => 952,
|
||||||
|
'- Wallis' => 934,
|
||||||
|
'- Tirol - Osttirol' => 2018,
|
||||||
|
'- Salzburg - Salzburg' => 954,
|
||||||
|
'- Bern & Berner Oberland' => 916,
|
||||||
|
'- Tirol - Innsbruck, Mittel- und Nordtirol' => 956,
|
||||||
|
'- Steiermark' => 955,
|
||||||
|
'- Graubünden' => 920,
|
||||||
|
'- Mittel- & Nordengland' => 179,
|
||||||
|
'- Tirol - Westtirol & Ötztal' => 2009,
|
||||||
|
'- Oberösterreich' => 953,
|
||||||
|
'- Genf' => 918,
|
||||||
|
'- Tirol - Region Seefeld' => 2001,
|
||||||
|
'- Zürich' => 936,
|
||||||
|
'- Luzern & Aargau' => 922,
|
||||||
|
'- Uri & Glarus' => 932,
|
||||||
|
'- Nordirland' => 905,
|
||||||
|
'- Salzkammergut - Salzburg' => 2006,
|
||||||
|
'- Burgenland' => 950,
|
||||||
|
'- Waadt & Jura & Neuenburg' => 933,
|
||||||
|
'- Tirol - Zillertal' => 2004,
|
||||||
|
'- St.Gallen & Thurgau' => 926,
|
||||||
|
'- Jersey - Kanalinsel' => 962,
|
||||||
|
'- Tirol - Paznaun' => 1003,
|
||||||
|
'- Bodensee (Österreich)' => 4190,
|
||||||
|
'- Tessin' => 930,
|
||||||
|
'Deutschland' => 10029,
|
||||||
|
'- Allgäu' => 2026,
|
||||||
|
'- Baden-Württemberg' => 104,
|
||||||
|
'- Bayerisch-Schwaben' => 4196,
|
||||||
|
'- Bayerische Alpen' => 2058,
|
||||||
|
'- Bayerischer Wald' => 2025,
|
||||||
|
'- Berchtesgadener Land' => 2069,
|
||||||
|
'- Berlin' => 106,
|
||||||
|
'- Bodensee (Deutschland)' => 2028,
|
||||||
|
'- Borkum' => 2078,
|
||||||
|
'- Brandenburg' => 107,
|
||||||
|
'- Bremen' => 112,
|
||||||
|
'- Düsseldorf & Umgebung' => 2019,
|
||||||
|
'- Eifel & Westerwald' => 2052,
|
||||||
|
'- Elbsandsteingebirge' => 2051,
|
||||||
|
'- Emsland' => 2037,
|
||||||
|
'- Erzgebirge' => 2050,
|
||||||
|
'- Fichtelgebirge' => 2030,
|
||||||
|
'- Franken' => 2060,
|
||||||
|
'- Hamburg' => 113,
|
||||||
|
'- Harz' => 2031,
|
||||||
|
'- Hessen' => 114,
|
||||||
|
'- Hessisches Bergland' => 2072,
|
||||||
|
'- Hochschwarzwald' => 4111,
|
||||||
|
'- Hunsrück / Taunus' => 2061,
|
||||||
|
'- Insel Rügen' => 2032,
|
||||||
|
'- Insel Usedom' => 2033,
|
||||||
|
'- Köln & Umgebung' => 2020,
|
||||||
|
'- Lausitz' => 2071,
|
||||||
|
'- Lüneburger Heide' => 2024,
|
||||||
|
'- Mecklenburg Ostseeküste' => 2035,
|
||||||
|
'- Mecklenburg-Vorpommern' => 115,
|
||||||
|
'- Mecklenburgische Seenplatte' => 2034,
|
||||||
|
'- Mosel' => 2062,
|
||||||
|
'- München' => 264,
|
||||||
|
'- Münsterland' => 2074,
|
||||||
|
'- Niederbayern' => 2063,
|
||||||
|
'- Niedersachsen' => 116,
|
||||||
|
'- Nordfriesland & Inseln' => 127,
|
||||||
|
'- Nordrhein-Westfalen' => 117,
|
||||||
|
'- Nordseeküste und Inseln - sonstige Angebote' => 2036,
|
||||||
|
'- Oberbayern' => 2008,
|
||||||
|
'- Oberpfalz' => 105,
|
||||||
|
'- Ostseeküste' => 2039,
|
||||||
|
'- Pfalz' => 2053,
|
||||||
|
'- Radtouren und andere Specials' => 3001,
|
||||||
|
'- Rheingau' => 2022,
|
||||||
|
'- Rheinland' => 2065,
|
||||||
|
'- Rheinland-Pfalz' => 118,
|
||||||
|
'- Rhön' => 2029,
|
||||||
|
'- Ruhrgebiet' => 2059,
|
||||||
|
'- Rundreise Deutschland & sonstige Angebote' => 2501,
|
||||||
|
'- Saarland' => 119,
|
||||||
|
'- Sachsen' => 121,
|
||||||
|
'- Sachsen-Anhalt' => 123,
|
||||||
|
'- Sauerland' => 2038,
|
||||||
|
'- Schleswig-Holstein' => 4102,
|
||||||
|
'- Schwarzwald' => 2002,
|
||||||
|
'- Schwäbische Alb' => 2066,
|
||||||
|
'- Spessart - Odenwald' => 2070,
|
||||||
|
'- Teutoburger Wald' => 2021,
|
||||||
|
'- Thüringen' => 128,
|
||||||
|
'- Thüringer Wald' => 2067,
|
||||||
|
'Kroatien, Bulgarien, Osteuropa' => 10030,
|
||||||
|
'- Estland' => 838,
|
||||||
|
'- Georgien' => 837,
|
||||||
|
'- Angebote Rad- und Schiff Kroatien' => 3014,
|
||||||
|
'- Insel Brac' => 501,
|
||||||
|
'- Insel Hvar' => 500,
|
||||||
|
'- Insel Krk' => 507,
|
||||||
|
'- Istrien' => 483,
|
||||||
|
'- Kroatische Inseln' => 504,
|
||||||
|
'- Kvarner Bucht' => 480,
|
||||||
|
'- Mitteldalmatien' => 877,
|
||||||
|
'- Mittelkroatien' => 301,
|
||||||
|
'- Norddalmatien' => 2011,
|
||||||
|
'- Slavonien' => 302,
|
||||||
|
'- Süddalmatien' => 635,
|
||||||
|
'- Lettland' => 836,
|
||||||
|
'- Litauen' => 316,
|
||||||
|
'- Mazedonien' => 909,
|
||||||
|
'- Moldavien' => 835,
|
||||||
|
'- Montenegro' => 455,
|
||||||
|
'- Polen' => 852,
|
||||||
|
'- Bukarest & Umgebung' => 816,
|
||||||
|
'- Rumänien' => 110,
|
||||||
|
'- Baikalsee' => 892,
|
||||||
|
'- Moskau & Umgebung' => 820,
|
||||||
|
'- Sankt Petersburg & Russland Nordwest (Murmansk)' => 821,
|
||||||
|
'- Serbien' => 2579,
|
||||||
|
'- Slowakei' => 850,
|
||||||
|
'- Slowenien Inland' => 497,
|
||||||
|
'- slowenische Adria' => 628,
|
||||||
|
'- Tschechien' => 853,
|
||||||
|
'- Ukraine & Krim' => 751,
|
||||||
|
'- Plattensee / Balaton' => 2016,
|
||||||
|
'- Ungarn' => 849,
|
||||||
|
'- Weißrussland' => 834,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -25,11 +25,11 @@ jQuery(document).ready(function($) {
|
||||||
allowfullscreen: true,
|
allowfullscreen: true,
|
||||||
'data-st-video': this.id
|
'data-st-video': this.id
|
||||||
})
|
})
|
||||||
.addClass('st-collapsed')
|
|
||||||
.hide()
|
.hide()
|
||||||
.insertAfter(this)
|
.insertAfter(this)
|
||||||
;
|
;
|
||||||
el$
|
el$
|
||||||
|
.addClass('st-collapsed')
|
||||||
.css('background-image', 'url(/images/st2/icons/arrowup.gif)')
|
.css('background-image', 'url(/images/st2/icons/arrowup.gif)')
|
||||||
.text(caption + ' einblenden')
|
.text(caption + ' einblenden')
|
||||||
.attr('href', 'javascript:void(0);')
|
.attr('href', 'javascript:void(0);')
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ namespace AppBundle\Twig;
|
||||||
|
|
||||||
|
|
||||||
use AppBundle\Service\KeywordService;
|
use AppBundle\Service\KeywordService;
|
||||||
|
use AppBundle\Util;
|
||||||
use Symfony\Component\HttpFoundation\RequestStack;
|
use Symfony\Component\HttpFoundation\RequestStack;
|
||||||
|
|
||||||
class AppExtension extends \Twig_Extension
|
class AppExtension extends \Twig_Extension
|
||||||
|
|
@ -46,6 +47,7 @@ class AppExtension extends \Twig_Extension
|
||||||
'is_safe' => ['html']
|
'is_safe' => ['html']
|
||||||
]),
|
]),
|
||||||
'get_base_template' => new \Twig_SimpleFunction('get_base_template', [$this, 'getBaseTemplate']),
|
'get_base_template' => new \Twig_SimpleFunction('get_base_template', [$this, 'getBaseTemplate']),
|
||||||
|
'get_base_url' => new \Twig_SimpleFunction('get_base_url', [$this, 'getBaseUrl']),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -64,6 +66,11 @@ class AppExtension extends \Twig_Extension
|
||||||
return ($this->requestStack->getCurrentRequest()->isXmlHttpRequest() ? 'ajax' : 'base') .'.html.twig';
|
return ($this->requestStack->getCurrentRequest()->isXmlHttpRequest() ? 'ajax' : 'base') .'.html.twig';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getBaseUrl()
|
||||||
|
{
|
||||||
|
return Util::getBaseUrl();
|
||||||
|
}
|
||||||
|
|
||||||
public function formField($form, $label = null, $opt = null)
|
public function formField($form, $label = null, $opt = null)
|
||||||
{
|
{
|
||||||
$this->template = $this->environment->loadTemplate( '::default/form/helpers.html.twig' );
|
$this->template = $this->environment->loadTemplate( '::default/form/helpers.html.twig' );
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ namespace AppBundle\Util;
|
||||||
|
|
||||||
|
|
||||||
use AppBundle\Entity\TravelDeparturePoint;
|
use AppBundle\Entity\TravelDeparturePoint;
|
||||||
|
use Doctrine\Common\Collections\Collection;
|
||||||
|
|
||||||
class DepartureUtil
|
class DepartureUtil
|
||||||
{
|
{
|
||||||
|
|
@ -118,6 +119,10 @@ class DepartureUtil
|
||||||
$departures[] = $defaultDeparture;
|
$departures[] = $defaultDeparture;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($departures instanceof Collection)
|
||||||
|
{
|
||||||
|
$departures = $departures->toArray();
|
||||||
|
}
|
||||||
return DepartureUtil::sortDepartures($departures);
|
return DepartureUtil::sortDepartures($departures);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue