init without trunk
This commit is contained in:
parent
ed24ac4994
commit
bb809e7233
14652 changed files with 177862 additions and 94817 deletions
836
app/Resources/views/default/pages/booking.html.twig
Normal file
836
app/Resources/views/default/pages/booking.html.twig
Normal file
|
|
@ -0,0 +1,836 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
{% form_theme form 'default/form/theme.html.twig' %}
|
||||
|
||||
{% block meta_robots %}
|
||||
<meta name="robots" content="noindex,nofollow" />
|
||||
{% if app.debug %}<!-- meta-robots wurde durch das Twig-Seitentemplate festgelegt -->{% endif %}
|
||||
{% endblock %}
|
||||
{% block canonical_tag %}{% if app.debug %}<!-- Die canonical URL wird für diese Seite bewusst nicht definiert, da sie vom Suchindex ausgeschlossen wurde (Siehe meta robots) -->{% endif %}{% endblock %}
|
||||
|
||||
|
||||
{% block body %}
|
||||
|
||||
|
||||
<section class="clearfix">
|
||||
|
||||
<div class="content-copy">
|
||||
|
||||
<h1>Buchungsformular</h1>
|
||||
|
||||
<div class="pull-right">
|
||||
<a href="{{ page.urlPath }}" class="btn btn-primary btn-sm"><< zurück zu Termine und Preise</a>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<h2 style="margin-top:10px">{{ travel_program.title }}</h2>
|
||||
|
||||
|
||||
<div id="booking_form" class="booking_form">
|
||||
|
||||
<form class="st-booking-form" method="post" data-toggle="validator">
|
||||
|
||||
{{ form_errors(form) }}
|
||||
{% spaceless %}
|
||||
{% if not form.vars.valid %}
|
||||
|
||||
<ul>
|
||||
{% for error in form.vars.errors.form.getErrors(true) %}
|
||||
<li>{{ error.message }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
|
||||
{% endif %}
|
||||
{% endspaceless %}
|
||||
|
||||
{{ form_errors(form.email) }}
|
||||
|
||||
<div id="message"></div>
|
||||
|
||||
<div class="form-box">
|
||||
<div class="table-responsive" id="no-more-tables_first">
|
||||
<table class="table first-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Reiseprogramm</td>
|
||||
<td>
|
||||
{{ travel_program.title }}
|
||||
{#<br class="visible-xs"><a href="#" data-toggle="modal" data-target="#myModal">(Reisebeschreibung aufrufen)</a>#}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Kategorie</td>
|
||||
<td>Standard {# #TODO #}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Reisezeitraum</td>
|
||||
<td>{{ travel_date.start|date }} - {{ travel_date.end|date }} <br class="hidden visible-xs"> ({{ travel_date.name }})</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ form_label(form.departure, 'Abflugort') }}</td>
|
||||
<td>
|
||||
<div class="form-group" style="margin-bottom: 0px;">
|
||||
{{ form_widget(form.departure) }}
|
||||
{{ form_errors(form.departure) }}
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{# TODO folgendes evtl noch weiter verallgemeinern #}
|
||||
{% set priceTypeIds = [] %}
|
||||
{% set priceTypeChildIds = [] %}
|
||||
{% set extraDays = 0 %}
|
||||
|
||||
|
||||
{% for price in travel_date.prices %}
|
||||
{% if(price.available == "1") %}
|
||||
{% set priceTypeIds = priceTypeIds|merge([price.priceTypeId]) %}
|
||||
{% if(price.priceChildren > 0) %}
|
||||
{% set priceTypeChildIds = priceTypeChildIds|merge([price.priceTypeId]) %}
|
||||
{% endif %}
|
||||
{% if(price.extraPrice > 0) %}
|
||||
{% set extraDays = 1 %}
|
||||
{% endif %}
|
||||
{% if(price.extraPriceComfort > 0) %}
|
||||
{% set extraDays = 1 %}
|
||||
{% endif %}
|
||||
{% if(price.extraPriceChildren > 0) %}
|
||||
{% set extraDays = 1 %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% if "1" in priceTypeIds %}
|
||||
<tr>
|
||||
{% else %}
|
||||
<tr style="display:none">
|
||||
{% endif %}
|
||||
<td>{{ form_label(form.singleRoomCount, 'Einzelzimmer') }}</td>
|
||||
<td>
|
||||
{{ form_widget(form.singleRoomCount) }}
|
||||
{{ form_errors(form.singleRoomCount) }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
{% if "1" in priceTypeChildIds %}
|
||||
<tr>
|
||||
{% else %}
|
||||
<tr style="display:none">
|
||||
{% endif %}
|
||||
<td>{{ form_label(form.singleRoomChildCount, 'Einzelzimmer mit Kind') }}</td>
|
||||
<td>
|
||||
{{ form_widget(form.singleRoomChildCount) }}
|
||||
{{ form_errors(form.singleRoomChildCount) }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
{% if "3" in priceTypeIds %}
|
||||
<tr>
|
||||
{% else %}
|
||||
<tr style="display:none">
|
||||
{% endif %}
|
||||
<td>{{ form_label(form.doubleRoomCount, 'Doppelzimmer') }}</td>
|
||||
<td>
|
||||
{{ form_widget(form.doubleRoomCount) }}
|
||||
{{ form_errors(form.doubleRoomCount) }}
|
||||
</td>
|
||||
</tr>
|
||||
{% if "3" in priceTypeChildIds %}
|
||||
<tr>
|
||||
{% else %}
|
||||
<tr style="display:none">
|
||||
{% endif %}
|
||||
<td>{{ form_label(form.doubleRoomChildCount, 'Doppelzimmer mit Kind') }}</td>
|
||||
<td>
|
||||
{{ form_widget(form.doubleRoomChildCount) }}
|
||||
{{ form_errors(form.doubleRoomChildCount) }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
{% if "5" in priceTypeIds %}
|
||||
<tr>
|
||||
{% else %}
|
||||
<tr style="display:none">
|
||||
{% endif %}
|
||||
<td>{{ form_label(form.tripleRoomCount, 'Dreibettzimmer') }}</td>
|
||||
<td>
|
||||
{{ form_widget(form.tripleRoomCount) }}
|
||||
{{ form_errors(form.tripleRoomCount) }}
|
||||
</td>
|
||||
</tr>
|
||||
{% if "5" in priceTypeChildIds %}
|
||||
<tr>
|
||||
{% else %}
|
||||
<tr style="display:none">
|
||||
{% endif %}
|
||||
<td>{{ form_label(form.tripleRoomChildCount, 'Dreibettzimmer mit Kind') }}</td>
|
||||
<td>
|
||||
{{ form_widget(form.tripleRoomChildCount) }}
|
||||
{{ form_errors(form.tripleRoomChildCount) }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Zubuchbare Leistungen</td>
|
||||
<td>
|
||||
{% if form.comfort is defined %}
|
||||
<div class="checkbox">
|
||||
{{ form_widget(form.comfort) }}
|
||||
<label for="{{ form.comfort.vars.id }}">
|
||||
Komfort-Kategorie (4 Sterne)
|
||||
(<a href="#" data-toggle="modal" data-target="#st-comfort-booking-option-modal">Details</a>)
|
||||
</label>
|
||||
{% embed "default/components/embed/modal.html.twig" with {
|
||||
'title': 'Komfort-Kategorie (4 Sterne)',
|
||||
'id': 'comfort-booking-option'
|
||||
} %}
|
||||
{% block body %}
|
||||
<h4>Aufpreise für Kategorie</h4>
|
||||
<ul>
|
||||
{% for price in travel_date.prices %}
|
||||
{# @var price \AppBundle\Entity\TravelPeriodPrice #}
|
||||
<li>
|
||||
p.P. {{ price.effectiveComfortPrice|number_format(2) }} €
|
||||
{{ price_type_by_id[price.priceType.id].name }}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
{% endembed %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if form.travelOptions is defined %}
|
||||
{% for travelOptionForm in form.travelOptions %}
|
||||
{% include 'default/components/booking/travelOption.html.twig' with {
|
||||
'travelOptionForm': travelOptionForm,
|
||||
'travelOption': form.travelOptions.vars.choices[travelOptionForm.vars.value].data
|
||||
} %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{% if extraDays == 1 and travel_program.drafts.count() > 0 %}
|
||||
<tr>
|
||||
{% else %}
|
||||
<tr style="display:none;">
|
||||
{% endif %}
|
||||
<td>Verlängerung buchen</td>
|
||||
<td>
|
||||
{% for country in travel_program.countries %}
|
||||
<p>{{ country.textBefore }}</p>
|
||||
{% endfor %}
|
||||
|
||||
{{ form_widget(form.extraBookingDaysBefore) }}
|
||||
{{ form_errors(form.extraBookingDaysBefore) }}
|
||||
<br>
|
||||
{% for country in travel_program.countries %}
|
||||
<p>{{ country.textAfter }}</p>
|
||||
{% endfor %}
|
||||
{{ form_widget(form.extraBookingDaysAfter) }}
|
||||
{{ form_errors(form.extraBookingDaysAfter) }}
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr style="">
|
||||
<td>Reiseversicherung</td>
|
||||
<td>
|
||||
<div class="radio">
|
||||
<input id="st-no-insurance-opt" type="radio" value=""
|
||||
name="{{ form.insurance.vars.full_name }}"
|
||||
{% if form.insurance.vars.value == '' %}checked{% endif %}
|
||||
>
|
||||
<label for="st-no-insurance-opt">keine Reiseversicherung</label>
|
||||
</div>
|
||||
|
||||
{% for insuranceForm in form.insurance %}
|
||||
{% include 'default/components/booking/insurance.html.twig' with {
|
||||
'form': insuranceForm,
|
||||
'insurance': form.insurance.vars.choices[insuranceForm.vars.value].data
|
||||
} %}
|
||||
{% endfor %}
|
||||
{{ form_errors(form.insurance) }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="display: none">
|
||||
<td>Reiseversicherung</td>
|
||||
<td>
|
||||
<p style="white-space: normal;">
|
||||
<br>
|
||||
{{ getContextBySlug('reise-ruecktrittskosten-empfehlung')|raw }}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12">
|
||||
<div class="panel">
|
||||
<div class="panel-body">
|
||||
<h3>Ihr gewähltes Angebot</h3>
|
||||
<div class="st-booking-summary">
|
||||
{% include 'default/components/booking/summary.html.twig' with {
|
||||
'summary': summary,
|
||||
'total_price': total_price,
|
||||
'booking_price_info': booking_price_info,
|
||||
'show_detail' : true,
|
||||
} %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
{{ getContextBySlug('gewuenschte-zahlungsart') }}
|
||||
{% if(travel_program.category.id != 1) %}
|
||||
{{ getContextBySlug('abweichende-anzahlungsbedingungen') }}
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Flugdaten</h5>
|
||||
</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<div class="accordion-toggle-2">
|
||||
<div class="panel-group" id="accordion_fd">
|
||||
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion_fd" href="#collapse_fd" aria-expanded="true">
|
||||
<h3><span>Flugdaten einblenden</span><i class="indicator pull-right icon-plus"></i></h3>
|
||||
</a>
|
||||
<div id="collapse_fd" class="panel-collapse collapse" aria-expanded="true" style="">
|
||||
<div class="panel-body">
|
||||
{% for departure in travel_date.departures %}
|
||||
{# @var departure \AppBundle\Entity\TravelDeparturePoint #}
|
||||
{% if departure.flightTime[travel_date.startWeekday] is defined %}
|
||||
{% if departure.flightTime[travel_date.startWeekday] != "" %}
|
||||
<div class="flight_times_ele" id="flight_time_{{ departure.id }}" style="display: none;">
|
||||
<h3>Von {{ departure.name }}</h3>
|
||||
{% for flightTime in departure.flightTime[travel_date.startWeekday]|split('\n') %}
|
||||
{% if flightTime != "" %}
|
||||
{{ flightTime|raw }}<br>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<div class="" id="no_flight_time" style="display: none;">
|
||||
<p>{{ getContextBySlug('keine-flugdaten') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- accordion -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Reiseprogramm mit Anzeige der Reisetage</h5>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
{% set travel_program_dates = travel_program.getTravelProgramDates(travel_date.start) %}
|
||||
|
||||
<ul class="c1">
|
||||
{% for travel_program_date in travel_program_dates if travel_program_date.count < 1 %}
|
||||
|
||||
<div id="extraDaysProgramBefore_show" style="display: none;">
|
||||
<li>
|
||||
<span id="extraDaysProgramBefore_date" data-org-date="{{ travel_program_date.date }}">{{ travel_program_date.date }}</span> : Reiseverlängerung vor der Reise - {{ travel_program_date.day|raw }}
|
||||
{% if travel_program_date.night is defined %}
|
||||
<br> {{ getContextBySlug('uebernachtung-reiseverlaengerung') }}
|
||||
{% endif %}
|
||||
</li>
|
||||
<li>
|
||||
{{ travel_program_date.date }} : Start {{ travel_program.title }}
|
||||
{% if travel_program_date.night is defined %}
|
||||
<br>Übernachtung : {{ travel_program_date['night']|raw }}
|
||||
{% endif %}
|
||||
</li>
|
||||
</div>
|
||||
<div id="extraDaysProgramBefore_hide">
|
||||
<li>
|
||||
{{ travel_program_date.date }} : {{ travel_program_date.day|raw }}
|
||||
{% if travel_program_date.night is defined %}
|
||||
<br>Übernachtung : {{ travel_program_date['night']|raw }}
|
||||
{% endif %}
|
||||
</li>
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
<div class="accordion-toggle-2">
|
||||
<div class="panel-group" id="accordion_pd">
|
||||
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion_pd" href="#collapse_pd" aria-expanded="true">
|
||||
<h3><span>Reiseablauf mit Reisetagen einblenden</span><i class="indicator pull-right icon-plus"></i></h3>
|
||||
</a>
|
||||
<div id="collapse_pd" class="panel-collapse collapse" aria-expanded="true" style="">
|
||||
<div class="panel-body">
|
||||
{% for travel_program_date in travel_program_dates if travel_program_date.count > 0 %}
|
||||
{% if travel_program_dates|length != travel_program_date.count +1 %}
|
||||
<li>
|
||||
{{ travel_program_date.date }} : {{ travel_program_date.day|raw }}
|
||||
{% if travel_program_date.night is defined %}
|
||||
<br>Übernachtung : {{ travel_program_date['night']|raw }}
|
||||
{% endif %}
|
||||
</li>
|
||||
{% else %}
|
||||
<div id="extraDaysProgramAfter_show" style="display: none;">
|
||||
<li>
|
||||
{{ travel_program_date.date }} : Ende {{ travel_program.title }}
|
||||
<br>{{ getContextBySlug('uebernachtung-reiseverlaengerung') }}
|
||||
</li>
|
||||
<li>
|
||||
<span id="extraDaysProgramAfter_date" data-org-date="{{ travel_program_date.date }}">{{ travel_program_date.date }}</span> : Reiseverlängerung - {{ travel_program_date.day|raw }}
|
||||
</li>
|
||||
</div>
|
||||
<div id="extraDaysProgramAfter_hide">
|
||||
<li>
|
||||
{{ travel_program_date.date }} : {{ travel_program_date.day|raw }}
|
||||
{% if travel_program_date.night is defined %}
|
||||
<br>Übernachtung : {{ travel_program_date['night']|raw }}
|
||||
{% endif %}
|
||||
</li>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ul>
|
||||
|
||||
</div><!-- accordion -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Reiseleistungen</h5>
|
||||
</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<div class="accordion-toggle-2">
|
||||
<div class="panel-group" id="accordion">
|
||||
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapse1" aria-expanded="true">
|
||||
<h3><span>Reiseleistungen einblenden</span><i class="indicator pull-right icon-plus"></i></h3>
|
||||
</a>
|
||||
<div id="collapse1" class="panel-collapse collapse" aria-expanded="true" style="">
|
||||
<div class="panel-body">
|
||||
<h3>Eingeschlossene Leistungen</h3>
|
||||
<ul class="c1">
|
||||
{% for travel_program_service in travel_program.included|replace({'*': '<img src="/bundles/app/images/star-mini.png" >'})|split('\n') %}
|
||||
<li>{{ travel_program_service|raw }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<h3>Nicht eingeschlossene / zubuchbare Leistungen</h3>
|
||||
<ul class="c1">
|
||||
{% for travel_program_service in travel_program.excluded|split('\n') %}
|
||||
<li>{{ travel_program_service|raw }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% if (travel_program.advices is not empty) or (travel_program.generalnote is not empty) %}
|
||||
<h3>Hinweise</h3>
|
||||
<ul class="c1">
|
||||
{% if travel_program.generalnote is not empty %}
|
||||
{% for notes in travel_program.generalnote.text|trim|split('\n') %}
|
||||
{% if notes is not empty %}
|
||||
<li>{{ notes|raw }}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% for travel_program_advice in travel_program.advices|trim|split('\n') %}
|
||||
{% if travel_program_advice is not empty %}
|
||||
<li>{{ travel_program_advice|raw }}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- accordion -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Reiseanmelder</h5>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
||||
{{ form_field_pho(form.salutation, 'Anrede', {'label_attr': {class: 'sr-only'}}) }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.firstName, 'Vorname') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.lastName, 'Nachname') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.streetAddress, 'Straße, Hausnummer') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.zipCode, 'PLZ') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.city, 'Ort') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
||||
{{ form_field_pho(form.nation, 'Land') }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.phone, 'Telefon tagsüber') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||
{{ form_field_pho(form.mobile, 'Handynummer (Bitte angeben)') }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.email, 'E-Mail-Adresse') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
<style type="text/css">
|
||||
.form-box-small .form-group {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.form-box-small .help-block {
|
||||
margin-top: 0px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.form-box-small .form-control{
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.form-box.form-box-small .st-travelers div.required:before {
|
||||
margin-right: 20px;
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="form-box form-box-small">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Reiseteilnehmer</h5>
|
||||
<p>{{ getContextBySlug('namen-reisepass') | raw }}</p>
|
||||
</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<div class="hidden">
|
||||
{% for country in travel_program.countries %}
|
||||
<input type="hidden" name="travel_program_countries_id[]" value="{{ country.id }}">
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="st-travelers">
|
||||
{% set currentIndex = 0 %}
|
||||
{% for room in form.rooms %}
|
||||
{% for traveler in room.travelers %}
|
||||
{#{{ dump(room.vars.value.roomType) }}#}
|
||||
{% set currentIndex = currentIndex + 1 %}
|
||||
|
||||
<div class="row st-traveler st-traveler-{{ currentIndex }}"
|
||||
data-st-traveler-index="{{ currentIndex }}"
|
||||
data-room-index="{{ loop.parent.loop.index }}"
|
||||
data-room-type="{{ room.vars.value.type }}"
|
||||
style="display: ; border-bottom:2px solid #ffc926; margin-bottom: 20px; padding-bottom: 10px;">
|
||||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12" style="margin-bottom:10px; padding-bottom:10px; border-bottom:1px solid #fff;">
|
||||
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button">
|
||||
{% set roomType = "" %}
|
||||
{% if loop.parent.loop.index is not null %}
|
||||
{% if room.vars.value.type == "1" %}
|
||||
{% set roomType = "Einzelzimmer" %}
|
||||
{% elseif room.vars.value.type == "2" %}
|
||||
{% set roomType = "Doppelzimmer" %}
|
||||
{% elseif room.vars.value.type == "3" %}
|
||||
{% set roomType = "Dreibettzimmer" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
Reiseteilnehmer | {{ roomType }}
|
||||
</button>
|
||||
{% if traveler.vars.value.child %}
|
||||
<br><i>bis einschließlich 11 Jahre</i>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-3 col-sm-12 col-xs-12">
|
||||
<div class="form-group" style="margin-top:0px;">
|
||||
<div class="">
|
||||
{{ form_field_pho(traveler.sex, 'Geschlecht', {
|
||||
required: false
|
||||
}) }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 col-sm-12 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="">
|
||||
{{ form_field_pho(traveler.firstName, 'Vorname') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-5 col-sm-12 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="">
|
||||
{{ form_field_pho(traveler.lastName, 'Nachname') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-offset-3 col-md-4 col-sm-12 col-xs-12">
|
||||
<div class="form-group" style="margin-top:0px;">
|
||||
<div class="nationality_select" data-toggle="#nationality_entry_{{ currentIndex }}">
|
||||
{{ form_field_pho(traveler.nationality, 'Nationalität') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-5 col-sm-12 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="">
|
||||
{{ form_field_pho(traveler.birthDate, 'Geburtsdatum (04.01.1964)') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
|
||||
<div class="accordion-toggle-2" id="nationality_entry_{{ currentIndex }}" style="display:none;">
|
||||
<div class="panel-group" id="accordion_entry_{{ currentIndex }}">
|
||||
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion_entry_{{ currentIndex }}" href="#collapse_entry_{{ currentIndex }}" aria-expanded="true">
|
||||
<h3><span>Einreise-, Visabestimmungen und gesundheitspolizeilichen Vorschriften</span><i class="indicator pull-right icon-plus"></i></h3>
|
||||
</a>
|
||||
<div id="collapse_entry_{{ currentIndex }}" class="panel-collapse collapse acc_nationality_panel" aria-expanded="true" style="">
|
||||
<div class="panel-body set_nationality_country_text">
|
||||
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- accordion -->
|
||||
|
||||
<div class="form-group" style="margin-bottom: 15px;">
|
||||
<div class="checkbox">
|
||||
{{ form_widget(traveler.acceptEntryRequirements) }}
|
||||
<label for="{{ traveler.acceptEntryRequirements.vars.id }}" style="line-height: 1.2em;">
|
||||
{{ getContextBySlug('hinweise-einreisebestimmungen')|raw }}
|
||||
</label>
|
||||
<span class="checkbox_marker"></span>
|
||||
{{ form_errors(traveler.acceptEntryRequirements) }}
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> <!-- row -->
|
||||
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
</div> <!-- st trav -->
|
||||
<h2>Hinweis</h2>
|
||||
<p>{{ getContextBySlug('hinweis-staatsbuergerschaft-1') | raw }}
|
||||
{% for nationalitie in nationalities %}
|
||||
{{ nationalitie.name }}{% if not loop.last %},{% endif %}
|
||||
{% endfor %} {{ getContextBySlug('hinweis-staatsbuergerschaft-2')|raw }} </p>
|
||||
|
||||
|
||||
</div> <!-- col -->
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Formblatt</h5>
|
||||
|
||||
<div class="well">
|
||||
|
||||
{{ travel_program.organizer.legalRights|raw }}
|
||||
<a href="https://v2.sterntours.de/uploads/{{ travel_program.organizer.fileFormPage }}" target="_blank">
|
||||
{{ getContextBySlug('informationen-formblatt') }}
|
||||
|
||||
</a>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
{{ form_widget(form.acceptLegalRights) }}
|
||||
<label for="{{ form.acceptLegalRights.vars.id }}" style="line-height: 1.2em;">
|
||||
{{ getContextBySlug('bestaetigung-formblatt') }}
|
||||
</label>
|
||||
<span class="checkbox_marker"></span>
|
||||
{{ form_errors(form.acceptLegalRights) }}
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- end form-box -->
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Reisebedingungen (ARB)</h5>
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
{{ form_widget(form.acceptTerms) }}
|
||||
<label for="{{ form.acceptTerms.vars.id }}" style="line-height: 1.2em;">
|
||||
{{ getContextBySlug('reisebedingungen-check-1') }}
|
||||
|
||||
{% if travel_program.isMediated %}
|
||||
<a href="https://v2.sterntours.de/uploads/{{ travel_program.organizer.fileName }}?t={{ travel_program.organizer.rulesUpdatedTime }}" target="_blank">
|
||||
{{ getContextBySlug('reisebedingungen-link-1') }}
|
||||
</a> {{ travel_program.organizer.name }}
|
||||
{% else %}
|
||||
<a href="https://v2.sterntours.de/uploads/{{ travel_program.organizer.formArb }}?t={{ travel_program.organizer.rulesUpdatedTime }}" target="_blank">
|
||||
{{ getContextBySlug('reisebedingungen-link-2') }}
|
||||
</a> {{ travel_program.organizer.name }}
|
||||
{% endif %}
|
||||
{{ getContextBySlug('reisebedingungen-check-2')|raw }}
|
||||
</label>
|
||||
<span class="checkbox_marker"></span>
|
||||
{{ form_errors(form.acceptTerms) }}
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Datenschutzerklärung</h5>
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
{{ form_widget(form.acceptPrivacy) }}
|
||||
<label for="{{ form.acceptPrivacy.vars.id }}" style="line-height: 1.2em;">Ich habe die <a href="/datenschutz" target="_blank">Datenschutzerklärung</a> zur Kenntnis genommen.
|
||||
</label>
|
||||
<span class="checkbox_marker"></span>
|
||||
{{ form_errors(form.acceptPrivacy) }}
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Wichtiger Hinweis</h5>
|
||||
{{ getContextBySlug('hinweis-bestellung')|raw }}
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Unverbindliche Anmerkungen</h5>
|
||||
</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
{{ form_field(form.notes, 'Unverbindliche Anmerkungen', {
|
||||
'label_attr': {'class': 'sr-only'},
|
||||
'attr': {'rows': '6'}
|
||||
}) }}
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
|
||||
<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">
|
||||
<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>
|
||||
|
||||
{{ form_rest(form) }}
|
||||
</form>
|
||||
|
||||
</div><!-- end contact-form -->
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
{% endblock body %}
|
||||
378
app/Resources/views/default/pages/bookingConfirmation.html.twig
Normal file
378
app/Resources/views/default/pages/bookingConfirmation.html.twig
Normal file
|
|
@ -0,0 +1,378 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block canonical_tag %}{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<style>
|
||||
.c1.plus li:before {
|
||||
content: '+';
|
||||
}
|
||||
.c1.minus li:before {
|
||||
content: '-';
|
||||
}
|
||||
</style>
|
||||
<section class="clearfix">
|
||||
|
||||
<div class="content-copy">
|
||||
|
||||
<h1>Vielen Dank für Ihren Buchungsauftrag!</h1>
|
||||
|
||||
<div class="pull-right">
|
||||
<a href="/" class="btn btn-primary btn-sm"><< Zurück zur Startseite</a>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<h2 style="margin-top:10px">{{ travel_program.title }}</h2>
|
||||
|
||||
|
||||
<div id="booking_form" class="booking_form">
|
||||
|
||||
<form class="st-booking-form" method="post">
|
||||
|
||||
|
||||
<div id="message"></div>
|
||||
|
||||
<div class="form-box">
|
||||
<div class="table-responsive" id="no-more-tables_first">
|
||||
<table class="table first-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Reiseprogramm</td>
|
||||
<td>
|
||||
{{ travel_program.title }}
|
||||
{#<br class="visible-xs"><a href="#" data-toggle="modal" data-target="#myModal">(Reisebeschreibung aufrufen)</a>#}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Kategorie</td>
|
||||
<td>Standard {# #TODO #}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Reisezeitraum</td>
|
||||
<td>{{ booking.selectedStartDate|date }} - {{ booking.selectedEndDate|date }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Abflugort</td>
|
||||
<td>
|
||||
{{ booking.selectedDeparture.name }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12">
|
||||
<div class="panel">
|
||||
<div class="panel-body">
|
||||
<h3>Ihr gewähltes Angebot</h3>
|
||||
<div class="st-booking-summary">
|
||||
{% include 'default/components/booking/summary.html.twig' with {
|
||||
'summary': summary,
|
||||
'total_price': total_price,
|
||||
'booking_price_info': booking_price_info,
|
||||
'show_detail' : false,
|
||||
} %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Reiseleistungen</h5>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<div class="accordion-toggle-2">
|
||||
<div class="panel-group" id="accordion">
|
||||
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapse1" aria-expanded="true">
|
||||
<h3><span>Reiseleistungen einblenden</span><i class="indicator pull-right icon-plus"></i></h3>
|
||||
</a>
|
||||
<div id="collapse1" class="panel-collapse collapse" aria-expanded="true" style="">
|
||||
<div class="panel-body">
|
||||
<h3>Eingeschlossene Leistungen</h3>
|
||||
<ul class="c1 plus">
|
||||
{% for travel_program_service in travel_program.included|replace({'*': '<img src="/bundles/app/images/star-mini.png" >'})|split('\n') %}
|
||||
<li>{{ travel_program_service|raw }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<h3>Nicht eingeschlossene / zubuchbare Leistungen</h3>
|
||||
<ul class="c1 minus">
|
||||
{% for travel_program_service in travel_program.excluded|split('\n') %}
|
||||
<li>{{ travel_program_service|raw }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% if (travel_program.advices is not empty) or (travel_program.generalnote is not empty) %}
|
||||
<h3>Hinweise</h3>
|
||||
<ul class="c1">
|
||||
{% if travel_program.generalnote is not empty %}
|
||||
{% for notes in travel_program.generalnote.text|trim|split('\n') %}
|
||||
{% if notes is not empty %}
|
||||
<li>{{ notes|raw }}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% for travel_program_advice in travel_program.advices|trim|split('\n') %}
|
||||
{% if travel_program_advice is not empty %}
|
||||
<li>{{ travel_program_advice|raw }}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- accordion -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Reiseanmelder</h5>
|
||||
</div>
|
||||
|
||||
<div class="table-responsive" id="no-more-tables_first">
|
||||
<table class="table first-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Anrede</td>
|
||||
<td>
|
||||
{% if booking.salutationId == 1 %}
|
||||
Herr
|
||||
{% elseif booking.salutationId == 2 %}
|
||||
Frau
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Vorname</td>
|
||||
<td>{{ booking.firstName }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Nachname</td>
|
||||
<td>{{ booking.lastName }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Vorname</td>
|
||||
<td>{{ booking.firstName }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Straße, Hausnummer</td>
|
||||
<td>{{ booking.street }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PLZ</td>
|
||||
<td>{{ booking.zipCode }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ort</td>
|
||||
<td>{{ booking.city }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Land</td>
|
||||
<td>{{ booking.countryId }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Telefon tagsüber</td>
|
||||
<td>{{ booking.phone }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Handynummer (Bitte angeben)</td>
|
||||
<td>{{ booking.mobile }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>E-Mail-Adresse</td>
|
||||
<td>{{ booking.email }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Reiseteilnehmer</h5>
|
||||
</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
|
||||
<div class="table-responsive" id="no-more-tables">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="text-align: left;">Nr.</th>
|
||||
<th style="text-align: left;">Zimmertyp</th>
|
||||
<th style="text-align: left;">Geschlecht</th>
|
||||
<th style="text-align: left;">Vorname</th>
|
||||
<th style="text-align: left;">Nachname</th>
|
||||
<th style="text-align: left;">Geburtsdatum</th>
|
||||
<th style="text-align: left;">Nationalität</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="st-travelers">
|
||||
|
||||
{% set travelerIndex = 0 %}
|
||||
{% set travelerCollection = booking_request.travelers|slice(0, (booking_request.travelerCount + booking_request.childrenCount)) %}
|
||||
{% for room in booking_request.occupiedRooms %}
|
||||
{% if(room.type == 1) %}
|
||||
<tr>
|
||||
<td>
|
||||
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
|
||||
</td>
|
||||
<td style="text-align: left;">Einzelzimmer Erwachsener</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName(nationalities) }}</td>
|
||||
</tr>
|
||||
{% set travelerIndex = travelerIndex + 1 %}
|
||||
{% if(room.child == 1) %}
|
||||
<tr>
|
||||
<td>
|
||||
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
|
||||
</td>
|
||||
<td style="text-align: left;">Einzelzimmer Kind</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName(nationalities) }}</td
|
||||
</tr>
|
||||
{% set travelerIndex = travelerIndex + 1 %}
|
||||
{% endif %}
|
||||
{% elseif (room.type == 2) %}
|
||||
<tr>
|
||||
<td>
|
||||
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
|
||||
</td>
|
||||
<td style="text-align: left;">Doppelzimmer Erwachsener</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName(nationalities) }}</td>
|
||||
</tr>
|
||||
{% set travelerIndex = travelerIndex + 1 %}
|
||||
<tr>
|
||||
<td>
|
||||
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
|
||||
</td>
|
||||
<td style="text-align: left;">Doppelzimmer Erwachsener</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName(nationalities) }}</td>
|
||||
</tr>
|
||||
{% set travelerIndex = travelerIndex + 1 %}
|
||||
|
||||
{% if(room.child == 1) %}
|
||||
<tr>
|
||||
<td>
|
||||
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
|
||||
</td>
|
||||
<td style="text-align: left;">Doppelzimmer Kind</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName(nationalities) }}</td>
|
||||
</tr>
|
||||
{% set travelerIndex = travelerIndex + 1 %}
|
||||
{% endif %}
|
||||
{% elseif (room.type == 3) %}
|
||||
<tr>
|
||||
<td>
|
||||
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
|
||||
</td>
|
||||
<td style="text-align: left;">Dreibettzimmer Erwachsener</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName(nationalities) }}</td>
|
||||
</tr>
|
||||
{% set travelerIndex = travelerIndex + 1 %}
|
||||
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
|
||||
</td>
|
||||
<td style="text-align: left;">Dreibettzimmer Erwachsener</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName(nationalities) }}</td>
|
||||
</tr>
|
||||
{% set travelerIndex = travelerIndex + 1 %}
|
||||
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
|
||||
</td>
|
||||
<td style="text-align: left;">Dreibettzimmer Erwachsener</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName(nationalities) }}</td>
|
||||
</tr>
|
||||
{% set travelerIndex = travelerIndex + 1 %}
|
||||
{% if(room.child == 1) %}
|
||||
<tr>
|
||||
<td>
|
||||
<button class="btn btn-primary btn-sm border-radius st-traveller-index" type="button" >{{ loop.index ?? '' }} </button>
|
||||
</td>
|
||||
<td style="text-align: left;">Dreibettzimmer Kind</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].sex == 1 ? 'männlich' : 'weiblich' }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].firstName }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].lastName -}}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].birthDate }}</td>
|
||||
<td style="text-align: left;">{{ travelerCollection[travelerIndex].nationalityName(nationalities) }}</td>
|
||||
</tr>
|
||||
{% set travelerIndex = travelerIndex + 1 %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Unverbindliche Anmerkungen</h5>
|
||||
</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<p>{{ booking.comments }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
|
||||
</div><!-- end contact-form -->
|
||||
|
||||
<div class="pull-right">
|
||||
<a href="/" class="btn btn-primary btn-sm"><< Zurück zur Startseite</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<div class="row">
|
||||
{% for calendar_month in calendar %}
|
||||
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<table class="table calendar-table" id="jump-{{ calendar_month['monthNumber'] }}-{{ calendar_month['year'] }}">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="7">
|
||||
{{ calendar_month['monthNumber'] }} {{ calendar_month['monthName'] }} {{ calendar_month['year'] }}
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Mo</th>
|
||||
<th>Di</th>
|
||||
<th>Mi</th>
|
||||
<th>Do</th>
|
||||
<th>Fr</th>
|
||||
<th>Sa</th>
|
||||
<th>So</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for weekIndex in 0..5 %}
|
||||
<tr>
|
||||
{% for dayIndex in 0..6 %}
|
||||
{# @var dayState \AppBundle\Util\CalendarDayState #}
|
||||
{% set dayState = calendar_month['data'][(weekIndex * 7) + dayIndex] %}
|
||||
|
||||
<td class="{{ dayState.getCssClass }} {% if dayState.isBookable %}active{% endif %}">
|
||||
{% if dayState.isBookable %}
|
||||
{% if dayState.isPastDate %}
|
||||
<div><del style="color:#989898;">{{ dayState.day }}</del></div>
|
||||
{% else %}
|
||||
<a href="{{ page.urlPath }}/buchen?pnr={{ dayState.price.id }}&fd={{ dayState.day < 10 ? '0':'' }}{{dayState.day}}{{ calendar_month['monthNumber'] < 10 ? '0':'' }}{{calendar_month['monthNumber']}}{{calendar_month['year']}}"
|
||||
rel="nofollow" class="table-link"
|
||||
>
|
||||
{{ dayState.day }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% elseif dayState.day == 0 %}
|
||||
|
||||
{% else %}
|
||||
{% if dayState.isPastDate %}
|
||||
<div><del style="color:#989898;">{{ dayState.day }}</del></div>
|
||||
{% else %}
|
||||
<div>{{ dayState.day }}</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
1265
app/Resources/views/default/pages/cms/components/ssSudan.html.twig
Normal file
1265
app/Resources/views/default/pages/cms/components/ssSudan.html.twig
Normal file
File diff suppressed because it is too large
Load diff
7
app/Resources/views/default/pages/cms/default.html.twig
Normal file
7
app/Resources/views/default/pages/cms/default.html.twig
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
</section>
|
||||
{% endblock %}
|
||||
34
app/Resources/views/default/pages/cms/feedback.html.twig
Normal file
34
app/Resources/views/default/pages/cms/feedback.html.twig
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix" style="margin-bottom: 0;">
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
</section>
|
||||
|
||||
<section class="clearfix">
|
||||
{#{% 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>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
{#
|
||||
402
|
||||
318
|
||||
315
|
||||
|
||||
UPDATE page SET page.order=page.id*-1 WHERE owner=402
|
||||
UPDATE page SET page.order=page.id*-1 WHERE owner=315
|
||||
UPDATE page SET page.order=page.id*-1 WHERE owner=318
|
||||
|
||||
Select DATE_FORMAT(page.date, '%Y%m%d')*-1 FROM page WHERE model='feedback'
|
||||
|
||||
UPDATE page SET page.order=DATE_FORMAT(page.date, '%Y%m%d')*-1 WHERE model='feedback'
|
||||
|
||||
UPDATE page SET page.model='feedback' WHERE owner=402
|
||||
UPDATE page SET page.model='feedback' WHERE owner=315
|
||||
UPDATE page SET page.model='feedback' WHERE owner=318
|
||||
#}
|
||||
|
|
@ -0,0 +1,229 @@
|
|||
{#{% extends 'admin.html.twig' %}#}
|
||||
{# @var fewo_lodging \AppBundle\Entity\FewoLodging #}
|
||||
{% extends get_base_template() %}
|
||||
|
||||
{% block stylesheets %}
|
||||
<style>.box-slider .slide:not(.active) {display: none;}</style>{# TODO Move to custom.css #}
|
||||
<link rel="stylesheet" href="{{ asset('css/my-fewo.css?v') }}{{ get_file_last_time('css/my-fewo.css') }}">
|
||||
{% endblock stylesheets %}
|
||||
{% block body %}
|
||||
|
||||
<section class="clearfix">
|
||||
<div class="content-copy">
|
||||
|
||||
<h1>{{ fewo_lodging.name }}</h1>
|
||||
|
||||
{#
|
||||
********* SLIDER *********
|
||||
#}
|
||||
|
||||
<section class="section fullscreen background padding-0 margin-bottom-20">
|
||||
<div id="myCarousel" class="carousel slide fewo">
|
||||
<!-- Indicators -->
|
||||
<ol class="carousel-indicators">
|
||||
{% for lodging_image in slider_imgs %}
|
||||
<li data-target="#myCarousel" data-slide-to="{{ loop.index-1 }}" {% if loop.first %}class="active"{% endif %}></li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
<!-- Wrapper for Slides -->
|
||||
<div class="carousel-inner">
|
||||
{% for lodging_image in slider_imgs %}
|
||||
<div class="item{% if loop.first %} active{% endif %}">
|
||||
<div class="fill" style="background-image:url({{ asset('_uploads/images/' ~ lodging_image.file) }});background-position: center center">
|
||||
<span class="image-title">{{ lodging_image.fileName }}</span>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<!-- Controls -->
|
||||
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
|
||||
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
|
||||
<span class="sr-only">Previous</span>
|
||||
</a>
|
||||
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
|
||||
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
|
||||
<span class="sr-only">Next</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</section><!-- end section -->
|
||||
|
||||
{#
|
||||
********* TAB BAR *********
|
||||
#}
|
||||
|
||||
{% block travel_lodging_program_tab_bar %}
|
||||
<div class="scroller-nav-tabs scroller-left-nav-tabs"><i class="glyphicon glyphicon-chevron-left"></i></div>
|
||||
<div class="scroller-nav-tabs scroller-right-nav-tabs"><i class="glyphicon glyphicon-chevron-right"></i></div>
|
||||
<div class="wrapper-nav-tabs">
|
||||
<ul class="nav nav-tabs nav-justified list-nav-tabs">
|
||||
<li class="">
|
||||
<a href="#travel-description-content-tab" aria-controls="travel-description-content-tab" role="tab" data-toggle="tab">
|
||||
Beschreibung
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#travel-equipment-content-tab" aria-controls="travel-equipment-content-tab" role="tab" data-toggle="tab">
|
||||
Ausstattung
|
||||
</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<a href="#travel-dates-content-tab" aria-controls="travel-dates-content-tab" role="tab" data-toggle="tab">
|
||||
Termine <i class="fa fa-star"></i> Preise <i class="fa fa-star"></i> Mieten
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{% endblock travel_lodging_program_tab_bar %}
|
||||
|
||||
<div class="tab-content">
|
||||
|
||||
{#
|
||||
********* BESCHREIBUNG *********
|
||||
#}
|
||||
|
||||
<div role="tabpanel" class="tab-pane " id="travel-description-content-tab">
|
||||
|
||||
<h3>Allgemeines</h3>
|
||||
|
||||
<div class="table-responsive" id="no-more-tables">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Typ</th>
|
||||
<th>Adresse</th>
|
||||
<th>PLZ</th>
|
||||
<th>Ort</th>
|
||||
<th>Max. Personenanzahl</th>
|
||||
<th>Kaution</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td data-title="Typ">
|
||||
{{ fewo_lodging.type }}
|
||||
</td>
|
||||
<td data-title="Adresse">
|
||||
{{ fewo_lodging.adress1 }}
|
||||
{% if fewo_lodging.adress2 is not empty %}
|
||||
{{ fewo_lodging.adress2 }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td data-title="PLZ">
|
||||
{{ fewo_lodging.zipCode }}
|
||||
</td>
|
||||
<td data-title="Ort">
|
||||
{% if fewo_lodging.city is not empty %}
|
||||
{{ fewo_lodging.city }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td data-title="Max. Personenanzahl">
|
||||
{% if fewo_lodging.maximumPersons is not empty %}
|
||||
{{ fewo_lodging.maximumPersons }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td data-title="Kaution">
|
||||
{% if fewo_lodging.deposit is not empty %}
|
||||
{{ fewo_lodging.deposit|number_format(2, ',', '.') }} €
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% if fewo_lodging.description is not empty %}
|
||||
<hr>
|
||||
<div>
|
||||
{{ fewo_lodging.description|raw }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div> <!-- END tabpanel -->
|
||||
|
||||
{#
|
||||
********* AUSSTATTUNG *********
|
||||
#}
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="travel-equipment-content-tab">
|
||||
<div>
|
||||
{{ fewo_lodging.equipment|raw }}
|
||||
</div>
|
||||
</div> <!-- END tabpanel -->
|
||||
|
||||
{#
|
||||
********* TERMINE UND PREISE *********
|
||||
#}
|
||||
|
||||
<div role="tabpanel" class="tab-pane active" id="travel-dates-content-tab">
|
||||
<h3>Saisons</h3>
|
||||
<div class="table-responsive" id="no-more-tables">
|
||||
|
||||
{% if fewo_lodging.prices is not empty %}
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Beginn</th>
|
||||
<th>Ende</th>
|
||||
<th>Mindestbelegung</th>
|
||||
<th>Preis pro Nacht</th>
|
||||
<th>Service-Gebühr</th>
|
||||
<th>Kaution</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for price in fewo_lodging.prices %}
|
||||
{% if price.season is not empty %}
|
||||
<tr>
|
||||
<td data-title="Name">
|
||||
<strong class="small">
|
||||
{{ price.season.name }}
|
||||
</strong>
|
||||
</td>
|
||||
<td data-title="Beginn">
|
||||
<a class="default scroll-to-jump" href="#jump-{{ price.season.fromDate|date("n-Y") }}">
|
||||
{{ price.season.fromDate|date }}
|
||||
</a>
|
||||
</td>
|
||||
<td data-title="Ende">
|
||||
<a class="default scroll-to-jump" href="#jump-{{ price.season.toDate|date("n-Y") }}">
|
||||
{{ price.season.toDate|date }}
|
||||
</a>
|
||||
</td>
|
||||
<td data-title="Mindestbelegung">
|
||||
{{ price.season.minimumStay }} {{ price.season.minimumStay < 2 ? 'Nacht' : 'Nächte' }}
|
||||
</td>
|
||||
<td data-title="Preis p.P pro Nacht">
|
||||
{{ price.perNight|number_format(2, ',', '.') }} €
|
||||
</td>
|
||||
<td data-title="Service-Gebühr">
|
||||
{{ price.flatPrice|number_format(2, ',', '.') }} €
|
||||
</td>
|
||||
<td data-title="Kaution">
|
||||
{% if fewo_lodging.deposit is not empty %}
|
||||
{{ fewo_lodging.deposit|number_format(2, ',', '.') }} €
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
Momentan sind für dieses Programm keine Termine verfügbar.
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<h3>Buchung</h3>
|
||||
|
||||
<p>Bitte klicken Sie einen Anreisetermin (grüne Zahl), um zur Buchungsmaske zu gelagen.</p>
|
||||
|
||||
{% include 'default/pages/cms/calendarLodgingProgram.html.twig' %}
|
||||
|
||||
</div> <!-- END tabpanel -->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section><!-- end section -->
|
||||
{% endblock body %}
|
||||
104
app/Resources/views/default/pages/cms/iqTravelGuide.html.twig
Normal file
104
app/Resources/views/default/pages/cms/iqTravelGuide.html.twig
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
{% set site_has_h1 = false %}
|
||||
{% if(api is defined) %}
|
||||
{% if api.sites|length > 1 %}
|
||||
<div class="wrapper-nav-tabs">
|
||||
<ul class="nav nav-tabs nav-justified list-nav-tabs">
|
||||
{% for site in api.sites %}
|
||||
<li class="{% if loop.index==1 %} active {% endif %}">
|
||||
<a href="#travel_guide_content_{{ site.id }}" aria-controls="travel_guide_content_{{ site.id }}" role="tab" data-toggle="tab">
|
||||
{% if(site.scope == 0) %}
|
||||
Zusammenfassung <i class="hidden-xs">für eilige Leser</i>
|
||||
{% else %}
|
||||
Ausführliche Darstellung <i class="hidden-xs">für Interessierte</i>
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tab-content">
|
||||
{% for site in api.sites %}
|
||||
<div role="tabpanel" class="tab-pane {% if loop.index==1 %} active {% endif %}" id="travel_guide_content_{{ site.id }}">
|
||||
{% if(site_has_h1) %}
|
||||
<h2 class="h1l">{{ site.name }}</h2>
|
||||
{% else %}
|
||||
<h1>{{ site.name }}</h1>
|
||||
{% set site_has_h1 = true %}
|
||||
{% endif %}
|
||||
{{ site.full_text|raw|keywords|lozad }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div class="wrapper-nav-tabs">
|
||||
<ul class="nav nav-tabs nav-justified list-nav-tabs">
|
||||
{% for site in api.sites %}
|
||||
<li class="{% if loop.index==1 %} active {% endif %}">
|
||||
<a href="#travel_guide_content_{{ site.id }}" aria-controls="travel_guide_content_{{ site.id }}" role="tab" data-toggle="tab">
|
||||
{% if(site.scope == 0) %}
|
||||
Zusammenfassung <i class="hidden-xs">für eilige Leser</i>
|
||||
{% else %}
|
||||
Ausführliche Darstellung <i class="hidden-xs">für Interessierte</i>
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% else %}
|
||||
{% for site in api.sites %}
|
||||
{% if(site_has_h1) %}
|
||||
<h2 class="h1l">{{ site.name }}</h2>
|
||||
{% else %}
|
||||
<h1>{{ site.name }}</h1>
|
||||
{% set site_has_h1 = true %}
|
||||
{% endif %}
|
||||
{{ site.full_text|raw|keywords|lozad }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</section>
|
||||
<hr>
|
||||
{% if(api is defined and api.children is defined and api.children is not empty) %}
|
||||
<section class="clearfix">
|
||||
<div class="row">
|
||||
{% for child_page in api.children %}
|
||||
{% if(child_page.active) %}
|
||||
<div class="col-md-4 col-sm-6">
|
||||
<div class="travel-wrapper get-box-link">
|
||||
<div class="item text-left">
|
||||
{% if(false and child_page.box_image_url is defined and child_page.box_image_url is not empty) %}
|
||||
<div class="item-img" style="height: 220px;">
|
||||
{% if child_page.box_image_url is defined and child_page.box_image_url is not empty %}
|
||||
{% set image_url = child_page.box_image_url %}
|
||||
{% set image_alt = child_page.name %}
|
||||
{% 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.name }}</div>
|
||||
<p>{{ child_page.description }}</p>
|
||||
</div>
|
||||
<a class="item-button is-box-link dobble_line" href="{{ child_page.url }}" title="{{ child_page.name }}">
|
||||
<span>{{ child_page.name }}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
|
@ -0,0 +1 @@
|
|||
{% include 'overview.html.twig' %}
|
||||
90
app/Resources/views/default/pages/cms/nilecruise.html.twig
Normal file
90
app/Resources/views/default/pages/cms/nilecruise.html.twig
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
<h1>{{ page.pagetitle|default(page.title) }}</h1>
|
||||
|
||||
<section class="clearfix">
|
||||
{#{% for i in 0..page.children|length//3 %}#}
|
||||
<div class="row">
|
||||
|
||||
{% for child_page in page.children if child_page.slug == "nilschiff-ss-sudan" %}
|
||||
<div class="col-md-12 col-sm-12">
|
||||
<div class="travel-wrapper get-box-link">
|
||||
<div class="item text-left">
|
||||
<div class="item-img" style="height: 220px;">
|
||||
<div class="lb">
|
||||
{% if child_page.boxStar is not empty %}
|
||||
<div class="cstar_left">{{ child_page.boxStar|raw }}</div>
|
||||
{% endif %}
|
||||
{% if child_page.travelProgram is not empty and child_page.travelProgram.lowestPrice > 0 %}
|
||||
<div class="cprice">ab {{ child_page.travelProgram.lowestPrice|number_format }} € p.P.</div>
|
||||
{% endif %}
|
||||
{% if child_page.boxDiscount is not empty %}
|
||||
<div class="cdiscount">{{ child_page.boxDiscount|raw }}</div>
|
||||
{% endif %}
|
||||
{% if child_page.model == 'feedback'%}
|
||||
<div class="cdiscount">{{ child_page.date|date }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% 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>
|
||||
<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>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="clearfix content-pane">
|
||||
<h2 class="h3 h3l">Unsere beliebtesten Kulturreisen</h2>
|
||||
{#{% 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 class="h3 h3l">
|
||||
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>
|
||||
|
||||
<section class="clearfix">
|
||||
<hr class="primary">
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
16
app/Resources/views/default/pages/cms/offers.html.twig
Normal file
16
app/Resources/views/default/pages/cms/offers.html.twig
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{# @var page \AppBundle\Entity\Page #}
|
||||
{% extends get_base_template() %}
|
||||
|
||||
{% block offers_sidebar_widget %}{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
</section>
|
||||
|
||||
<section class="clearfix hide-in-modal">
|
||||
<h3>Unsere beliebtesten Kulturreisen</h3>
|
||||
|
||||
{{ render(controller('AppBundle:Component:offersCarousel', {country: page.effectiveCountry})) }}
|
||||
</section>
|
||||
{% endblock %}
|
||||
42
app/Resources/views/default/pages/cms/overview.html.twig
Normal file
42
app/Resources/views/default/pages/cms/overview.html.twig
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{#
|
||||
{% block nav_sidebar_widget %}
|
||||
{% include 'default/components/sidebar/navSidebarWidget.html.twig' %}
|
||||
{% endblock %}
|
||||
#}
|
||||
{% block body %}
|
||||
<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>
|
||||
|
||||
<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 %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</section>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
<h1>{{ page.pagetitle|default(page.title) }}</h1>
|
||||
|
||||
{% form_theme search_form 'default/form/theme.html.twig' %}
|
||||
<div class="widget clearfix">
|
||||
<div class="widget-title">
|
||||
<!-- <a class="collapse-widget" href="#search-widget" data-toggle="collapse">Zeitraum</a> -->
|
||||
</div><!-- end title -->
|
||||
<div class="searchwidget collapse in" id="search-widget">
|
||||
<form action="/ferienwohnungen/ferienwohnungen-kalender" method="post" class="searchform row st-search-form">
|
||||
|
||||
<div class="form-group col-md-6">
|
||||
<div class="required">
|
||||
{{ form_field_pho(search_form.from, 'Anreise', {required: true}) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-6">
|
||||
<div class="required">
|
||||
{{ form_field_pho(search_form.to, 'Abreise', {required: true}) }}
|
||||
</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-sm btn-primary btn-block">freie Ferienwohnungen suchen</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div><!-- end boxwidget -->
|
||||
</div>
|
||||
|
||||
|
||||
{#{% 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>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="clearfix">
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
||||
167
app/Resources/views/default/pages/cms/ssSudan.html.twig
Normal file
167
app/Resources/views/default/pages/cms/ssSudan.html.twig
Normal file
|
|
@ -0,0 +1,167 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
|
||||
<section class="clearfix">
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
</section>
|
||||
|
||||
<section class="clearfix content-pane">
|
||||
<h2 class="h3 h3l" style="padding-top:0px;margin-top:0;">Programm Nilkreuzfahrt SS Sudan</h2>
|
||||
<div class="row">
|
||||
{% for child_page in box_childs if child_page.status == 1 and child_page.travelProgram is not empty %}
|
||||
|
||||
{# @var child_page \AppBundle\Entity\Page #}
|
||||
<div class="col-md-6 col-sm-6">
|
||||
<div class="travel-wrapper get-box-link">
|
||||
<div class="item text-left">
|
||||
<div class="item-img">
|
||||
<div class="lb">
|
||||
{% if child_page.boxStar is not empty %}
|
||||
<div class="cstar_left">{{ child_page.boxStar|raw }}</div>
|
||||
{% endif %}
|
||||
{% if child_page.travelProgram is not empty and child_page.travelProgram.lowestPrice > 0 %}
|
||||
<div class="cprice">ab {{ child_page.travelProgram.lowestPrice|number_format }}
|
||||
€ p.P.
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if child_page.boxDiscount is not empty %}
|
||||
<div class="cdiscount">{{ child_page.boxDiscount|raw }}</div>
|
||||
{% endif %}
|
||||
{% if child_page.model == 'feedback' %}
|
||||
<div class="cdiscount">{{ child_page.date|date }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% include 'default/components/pageBoxImage.html.twig' with {page: child_page} %}
|
||||
</div>
|
||||
<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>
|
||||
|
||||
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
{% include 'default/pages/cms/components/ssSudan.html.twig' %}
|
||||
|
||||
|
||||
<div class="content-pane">
|
||||
<h1>Die SS Sudan</h1>
|
||||
<p class="ft">
|
||||
Der sehr elegante Restaurantsaal besteht ebenfalls aus Mobiliar des 19. Jahrhunderts und ist mit
|
||||
Originalparkettboden ausgestattet. Lassen Sie sich im Restaurant von einer sehr abwechslungsreichen und
|
||||
raffinierten Kochkunst verwöhnen. Einen Panoramablick bietet Ihnen die Lounge/Bar. Eine große Terrasse auf
|
||||
dem Oberdeck, mit Liegestühlen und Sesseln bietet Ihnen die Möglichkeit, während die wunderbare Landschaft
|
||||
an Ihnen vorbeizieht, den Tag Tag sein zu lassen und sich ausgiebig zu erholen.
|
||||
</p>
|
||||
|
||||
<p class="ft"><strong>Hier finden Sie Links zu Informationen zum Preis der SS Sudan, zum Reiseveranstalter STERN
|
||||
TOURS und zu den letzten Kundenfeedbacks mit der Fahrt auf der SS Sudan:</strong></p>
|
||||
<ul class="">
|
||||
<li>Zu <a href="/aegypten_reisen_catalog/ss-sudan-3-naechte-preise.html"
|
||||
title="Preise 3 Nächte Schiff Sudan">Preise 3 Nächte SS Sudan</a></li>
|
||||
<li>Zu <a href="/aegypten_reisen_catalog/ss-sudan-4-naechte-preise.html"
|
||||
title="Preise Nilschiff Sudan 4 Nächte">Preise 4 Nächte SS Sudan</a><br/></li>
|
||||
<li>Zum <a href="/aegypten_reisen_catalog/ss-sudan-programm-3-nights.html"
|
||||
title="Besichtigunsprogramm 3 Nächte SS Sudan">Besichtigunsprogramm 3 Nächte SS
|
||||
Sudan</a><br/></li>
|
||||
<li>Zum <a href="/aegypten_reisen_catalog/ss-sudan-programm-4-nights.html"
|
||||
title="Besichtigungsprogramm 4 Nächte Sudan">Besichtigunsprogramm 4 Nächte SS Sudan</a>
|
||||
<br/></li>
|
||||
<li>Zum <a href="/aegypten_reisen_catalog/ss-sudan-nilkreuzfahrt.html" title="Nilkreuzfahrt SS Sudan">14 tägigen
|
||||
Beispielprogramm SS Sudan - Nilkreuzfahrt mit Kairo und Baden</a><br/></li>
|
||||
<li>Zum <a href="/docs/169/aegypten-reise-felbinger.html" title="Kundenfeedbakcs">Kundenfeedback - SS Sudan
|
||||
- Familie Felbinger</a><br/></li>
|
||||
<li>Zum <a href="/docs/169/aegypten-ss-sudan-old-mena-house.html" title="Kundenfeedbakcs">Kundenfeedback -
|
||||
SS Sudan - Familie Kreuser</a> <br/></li>
|
||||
<li>Informationen zu <a href="/aegypten_reisen_catalog/info-aegypten-spezialist.html"
|
||||
title="Kontakt Ägyptenreisen">STERN TOURS</a><br/></li>
|
||||
<li>Zu unseren <a href="/aegypten_reisen_catalog/offene-worte.html" title="offenen Worten">Offenen
|
||||
Worten</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>Das Dampfschiff Sudan & Verantwortungsvoller Tourismus</h2>
|
||||
|
||||
<p class="ft">
|
||||
Das Dampfschiff Sudan wurde in Bezug auf die Umwelt und den Tourismus deutlich verändert. Zunächst wurde der
|
||||
Verbrauch von Energie gesenkt. Durch die Verbesserung der Triebwerke, durch minimierte Belastung des
|
||||
Schiffes und durch die Installation von Solarenergie für Wärme, Sanitärwasser, und die Schaufelräder ist es
|
||||
gelungen, den Kraftstoffverbrauch um 30% zu verringern und damit auch Treibhausgasemissionen. Der Konsum von
|
||||
CO2 wurde auf eine halbe Tonne pro Passagier pro Fahrt reduziert, was der hohen Achtsamkeit anzurechnen ist.
|
||||
</p>
|
||||
|
||||
<p class="ft">
|
||||
Das Wasser, welches für die Duschen verwendet wird, stammt vom Nil und wird durch mehrere Filter geführt,
|
||||
die jeden Monat streng kontrolliert werden. Der erste Filter entfernt den Sand, der zweite Filter bereitet
|
||||
das Wasser durch eine Kohlenzusammensetzung auf und der Letzte filtert Bakterien durch ultraviolettes Licht
|
||||
aus.
|
||||
</p>
|
||||
|
||||
<p class="ft">
|
||||
Tägliche strikte Maßnahmen stellen eine umweltverträgliche und nachhaltige Entwicklung sicher. Das Schiff
|
||||
nutzt ausschließlich Energiesparlampen und biologisch abbaubares, ökofreundliches Waschmittel (made in
|
||||
Egypt). Es werden so viele biologische Produkte wie möglich genutzt (mit Ausnahme der antibakteriellen Bade
|
||||
Waschprodukte, die auf Bleichmittel basieren) und das Papier wird wiederverwendet.
|
||||
</p>
|
||||
|
||||
<p class="ft">
|
||||
Die Kosmetikprodukte in den Badezimmern sind alle natürlich und basieren auf Olivenöl, welches aus Ägypten
|
||||
kommt. Um den Verbrauch von Verpackungen zu beschränken, sind alle Produkte in Behälter gefüllt.
|
||||
</p>
|
||||
|
||||
<p class="ft">
|
||||
Die gesamte Ausstattung auf dem Dampfschiff Sudan ist von ägyptischen Tischlern und Schreinern angefertigt
|
||||
worden.
|
||||
</p>
|
||||
|
||||
<p class="ft">
|
||||
Mineralwasser an Bord ist frei.
|
||||
</p>
|
||||
|
||||
<p class="ft">
|
||||
Seit dem Altertum bezaubert Ägypten jeden, der mit diesem Land in Berührung kommt. Dem Mythos und dieser
|
||||
Magie der vergangenen Zivilisation dieses atemberaubenden Landes ist bisher jeder erlegen. Die Reise nach
|
||||
Ägypten wurde mit der Zeit, sei es in kulturellen oder in Kunstkreisen, zu einem absoluten Muss. Mit dem 20.
|
||||
Jahrhundert wurde Ägypten unausweichlich zu einem Ziel der modernen Reisekultur. Der Nil, der sowohl weite
|
||||
Teile des Landes bewässert und nährt, als auch als Handels- und Verbindungsroute zwischen Europa und Afrika
|
||||
dient, ist ohne Zweifel die Lebensader Ägyptens. Den Nil zu bereisen, bedeutet die Geschichte und die
|
||||
Entwicklung Ägyptens zu verstehen. So trifft man auf den Gewässern des Nils, nebst den traditionellen
|
||||
Feluken (Küstenfahrzeugen), auch zahlreiche Boote voller interessierter Besucher.
|
||||
</p>
|
||||
|
||||
<p class="ft">
|
||||
Eine Kreuzfahrt auf dem Nil ist auf den unterschiedlichsten Schiffen zu erkunden. Jedoch haben wir uns
|
||||
speziell für die SS Sudan entschieden. Die Nillandschaft, auf einem unverwechselbarem antiken
|
||||
Kreuzfahrtschiff, erbaut 1885, wie zu Zeiten der Könige, zu erkunden, ist und bleibt einzigartig. Es ist die
|
||||
SS Sudan, auf der Agatha Christie ihre bekannte Romanfigur „Hercule Poirot“ weiterentwickelt hat. Es ist
|
||||
ebenfalls die SS Sudan, auf der Agatha Christies berühmter Kriminalroman „Tod auf dem Nil“ gedreht wurde.
|
||||
</p>
|
||||
|
||||
<h2>Video zum Rundgang auf dem Nilschiff SS Sudan</h2>
|
||||
|
||||
<div class="video-wrap">
|
||||
<div class="g-absolute-centered">
|
||||
<a data-type="youtube" data-src="https://www.youtube-nocookie.com/embed/hnjHNzdPJmc"
|
||||
href="javascript:;">
|
||||
<div class="u-icon-v3"> Video ansehen <i class="fa fa-play"></i></div>
|
||||
</a>
|
||||
</div>
|
||||
<img src="/images/placeholder-image.png" data-src="https://img.youtube.com/vi/hnjHNzdPJmc/sddefault.jpg"
|
||||
class="img-responsive lozad" alt="">
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
13
app/Resources/views/default/pages/cms/ssSudanTour.html.twig
Normal file
13
app/Resources/views/default/pages/cms/ssSudanTour.html.twig
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
{% include 'default/pages/cms/components/ssSudan.html.twig' %}
|
||||
|
||||
<div class="content-pane">
|
||||
<section class="clearfix">
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
</section>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
49
app/Resources/views/default/pages/cms/sunstar.html.twig
Normal file
49
app/Resources/views/default/pages/cms/sunstar.html.twig
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
<h1>{{ page.pagetitle|default(page.title) }}</h1>
|
||||
|
||||
{#{% for i in 0..page.children|length//3 %}#}
|
||||
<div class="row">
|
||||
{% for tp in sunstar_travel_programs %}
|
||||
|
||||
<div class="col-md-4 col-sm-4">
|
||||
<div class="travel-wrapper get-box-link">
|
||||
<div class="item text-left">
|
||||
<div class="item-img">
|
||||
<div class="lb">
|
||||
{% if tp.minimumPrice is not empty %}
|
||||
<div class="cprice">ab {{ tp.minimumPrice }} € p.P.</div>
|
||||
{% endif %}
|
||||
{% if tp.minimumAge is not empty and tp.maximumAge is not empty %}
|
||||
<div class="cdiscount">
|
||||
{{ tp.minimumAge }} - {{ tp.maximumAge }} Jahre
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="img-background" style="background-image: url('{{ tp.imageUrl }}');"></div>
|
||||
|
||||
</div>
|
||||
<div class="box_mid">
|
||||
<div class="hl5">{{ tp.title }}</div>
|
||||
<p>{{ tp.description }}</p>
|
||||
</div>
|
||||
<a class="item-button is-box-link dobble_line" href="{{ tp.url }}" title="{{ tp.title }}"
|
||||
rel="nofollow" target="_blank"
|
||||
>
|
||||
<span>{{ tp.title }}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="clearfix">
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
</section>
|
||||
{% endblock %}
|
||||
88
app/Resources/views/default/pages/cms/travelGuide.html.twig
Normal file
88
app/Resources/views/default/pages/cms/travelGuide.html.twig
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
{% if(page.travelGuideContentId) %}
|
||||
<div class="wrapper-nav-tabs">
|
||||
<ul class="nav nav-tabs nav-justified list-nav-tabs">
|
||||
<li class="active">
|
||||
<a href="#travel_guide_long_content" aria-controls="travel_guide_long_content" role="tab" data-toggle="tab">
|
||||
Ausführliche Darstellung <i class="hidden-xs">für Interessierte</i>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#travel_guide_short_content" aria-controls="travel_guide_short_content" role="tab" data-toggle="tab">
|
||||
Zusammenfassung <i class="hidden-xs">für eilige Leser</i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tab-content">
|
||||
<div role="tabpanel" class="tab-pane active" id="travel_guide_short_content">
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
</div>
|
||||
<div role="tabpanel" class="tab-pane" id="travel_guide_long_content">
|
||||
{{ travel_guide_content.fullText|raw|keywords|lozad }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wrapper-nav-tabs">
|
||||
<ul class="nav nav-tabs nav-justified list-nav-tabs">
|
||||
<li class="active">
|
||||
<a href="#travel_guide_long_content" aria-controls="travel_guide_long_content" role="tab" data-toggle="tab">
|
||||
Ausführliche Darstellung <i class="hidden-xs">für Interessierte</i>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#travel_guide_short_content" aria-controls="travel_guide_short_content" role="tab" data-toggle="tab">
|
||||
Zusammenfassung <i class="hidden-xs">für eilige Leser</i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{% else %}
|
||||
{{ page.content|raw|keywords|lozad }}
|
||||
{% endif %}
|
||||
</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 %}
|
||||
442
app/Resources/views/default/pages/cms/travelProgram.html.twig
Normal file
442
app/Resources/views/default/pages/cms/travelProgram.html.twig
Normal file
|
|
@ -0,0 +1,442 @@
|
|||
{# @var travel_program \AppBundle\Entity\TravelProgram #}
|
||||
{% extends get_base_template() %}
|
||||
|
||||
{% block javascripts %}
|
||||
{{ parent() }}
|
||||
{% javascripts '@AppBundle/Resources/public/js/travelProgram.js' %}
|
||||
<script src="{{ asset_url }}"></script>
|
||||
{% endjavascripts %}
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
<section class="clearfix">
|
||||
<div class="content-copy">
|
||||
<h1>{{ travel_program.title|default(page.pagetitle)|default(page.title) }}</h1>
|
||||
|
||||
|
||||
<section class="section fullscreen background padding-0 margin-bottom-20">
|
||||
<div class="in-section-holder">
|
||||
{% if travel_program.lowestPrice > 0 %}
|
||||
<div class="price-over-slider">
|
||||
<div class="cprice">ab {{ travel_program.lowestPrice|number_format }} € p.P.</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if travel_program.sliderInfo is not empty %}
|
||||
<div class="price-over-slider next-over">
|
||||
<div class="cprice">{{ travel_program.sliderInfo|raw }}</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if travel_program.travelDates is not empty %}
|
||||
<div class="pull-right btn-over-slider">
|
||||
<button type="button"
|
||||
class="btn btn-primary btn-lg border-radius st-slider-booking-btn" id="st-slider-booking-events-scroll">
|
||||
Termine <i class="fa fa-star faa-burst animated" style="margin-top: -5px"></i> Preise
|
||||
</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="pull-right btn-over-slider btn-over-slider-bottom">
|
||||
<a href="{{ page.slug }}/pdf" title="Reisebeschreibung als PDF herunterladen"
|
||||
class="btn btn-primary btn-sm border-radius st-slider-booking-btn st-slider-booking-btn-bottom">
|
||||
<i class="fa fa-print" style="margin-top: -3px;"></i> Katalogseite zum Drucken
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="myCarousel" class="carousel slide">
|
||||
<!-- Indicators -->
|
||||
<ol class="carousel-indicators">
|
||||
{% for travel_program_image in travel_program.images %}
|
||||
<li data-target="#myCarousel" data-slide-to="{{ loop.index-1 }}" {% if loop.first %}class="active"{% endif %}></li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
<!-- Wrapper for Slides -->
|
||||
<div class="carousel-inner">
|
||||
{% for travel_program_image in travel_program.images %}
|
||||
{# @var image \AppBundle\Entity\TravelProgramImage #}
|
||||
<div class="item{% if loop.first %} active{% endif %}">
|
||||
<!-- Set the first background image using inline CSS below. -->
|
||||
{% set image_url = asset('uploads/travel_program/' ~ travel_program_image.fileNameWithExtension) %}
|
||||
<div class="fill lozad"
|
||||
data-background-image="{{ image(image_url|trim('/')).cropResize(848).guess(75) }}"
|
||||
style="background-image:url({{ asset('images/placeholder-image.png') }});background-position: center {{ travel_program_image.position }}"></div>
|
||||
<noscript>
|
||||
<div class="fill"
|
||||
style="background-image:url({{ image(image_url|trim('/')).cropResize(848).guess(75) }}); background-position: center {{ travel_program_image.position }};"></div>
|
||||
</noscript>
|
||||
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<!-- Controls -->
|
||||
<a class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
|
||||
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
|
||||
<span class="sr-only">Previous</span>
|
||||
</a>
|
||||
<a class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
|
||||
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
|
||||
<span class="sr-only">Next</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</section><!-- end section -->
|
||||
|
||||
{#
|
||||
********* TAB BAR *********
|
||||
#}
|
||||
|
||||
{% block travel_program_tab_bar %}
|
||||
<div class="wrapper-nav-tabs">
|
||||
<ul class="nav nav-tabs nav-justified list-nav-tabs">
|
||||
<li class="active">
|
||||
<a href="#travel-description-content-tab" aria-controls="travel-description-content-tab"
|
||||
role="tab" data-toggle="tab" class="child-first">
|
||||
<span>1</span> Reiseablauf
|
||||
</a>
|
||||
</li>
|
||||
{% if travel_program.included is not empty or
|
||||
travel_program.excluded is not empty or
|
||||
travel_program.classDescription is not empty %}
|
||||
<li>
|
||||
<a href="#travel-service-content-tab" aria-controls="travel-service-content-tab"
|
||||
role="tab" data-toggle="tab" class="child-sec">
|
||||
<span>2</span> Leistungen
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{% endif %}
|
||||
{% if travel_program.travelDates is not empty %}
|
||||
<li>
|
||||
<a href="#travel-dates-content-tab" aria-controls="travel-dates-content-tab" role="tab"
|
||||
data-toggle="tab" class="child-sec">
|
||||
<span>3</span> Termine <i class="fa fa-star faa-burst animated"></i> Preise
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if travel_program.hasMap %}
|
||||
<li>
|
||||
<a href="#travel-map-content-tab" aria-controls="travel-map-content-tab" role="tab"
|
||||
data-toggle="tab">
|
||||
Karte
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li>
|
||||
<a href="#travel-info-content-tab" aria-controls="travel-info-content-tab" role="tab"
|
||||
data-toggle="tab">
|
||||
Landinfos
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{% endblock travel_program_tab_bar %}
|
||||
|
||||
|
||||
<div class="tab-content">
|
||||
<div id="position-scroll-tab"></div>
|
||||
|
||||
{#
|
||||
********* REISEABLAUF *********
|
||||
#}
|
||||
|
||||
<div role="tabpanel" class="tab-pane active" id="travel-description-content-tab">
|
||||
|
||||
{{ travel_program.htmlDescription|raw|keywords|lozad }}
|
||||
<br clear="all">
|
||||
|
||||
{% if (travel_program.advices is not empty) or (travel_program.generalnote is not empty) %}
|
||||
<h3>Hinweise</h3>
|
||||
<ul>
|
||||
{% if travel_program.generalnote is not empty %}
|
||||
{% for notes in travel_program.generalnote.text|trim|split('\n') %}
|
||||
{% if notes is not empty %}
|
||||
<li>{{ notes|raw }}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% for travel_program_advice in travel_program.advices|trim|split('\n') %}
|
||||
{% if travel_program_advice is not empty %}
|
||||
<li>{{ travel_program_advice|raw }}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
</div> <!-- END tabpanel -->
|
||||
|
||||
{#
|
||||
********* LEISTUNGEN *********
|
||||
#}
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="travel-service-content-tab">
|
||||
|
||||
<h2>Eingeschlossene Leistungen</h2>
|
||||
<ul>
|
||||
{% for travel_program_service in travel_program.included|replace({'*': '<img src="/bundles/app/images/star-mini.png" >'})|split('\n') %}
|
||||
<li>{{ travel_program_service|raw }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
{% if travel_program.classDescription is not empty %}
|
||||
{{ travel_program.classDescription|replace({'*': '<img src="/bundles/app/images/star-mini.png" >'})|raw }}
|
||||
{% endif %}
|
||||
|
||||
{% if travel_program.excluded is not empty %}
|
||||
<h2>Nicht eingeschlossene / zubuchbare Leistungen</h2>
|
||||
<ul>
|
||||
{% for travel_program_service in travel_program.excluded|replace({'*': '<img src="/bundles/app/images/star-mini.png" >'})|split('\n') %}
|
||||
<li>{{ travel_program_service|raw }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
</div> <!-- END tabpanel -->
|
||||
|
||||
{#
|
||||
********* TERMINE UND PREISE *********
|
||||
#}
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="travel-dates-content-tab">
|
||||
|
||||
<h2>{{ travel_program.subtitle }}</h2>
|
||||
|
||||
<div class="table-responsive" id="no-more-tables">
|
||||
|
||||
{% if travel_program.travelDates is not empty %}
|
||||
{% set has_three_bed_room = (travel_program.travelDates|first).prices[5] is defined %}
|
||||
{% set has_double_bed_room = (travel_program.travelDates|first).prices[3] is defined %}
|
||||
{% set has_singel_bed_room = (travel_program.travelDates|first).prices[1] is defined %}
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Nr.</th>
|
||||
<th>Beginn <span class="small-table-show">- Ende</span></th>
|
||||
<th class="small-table-hidden">Ende</th>
|
||||
{% if has_three_bed_room %}
|
||||
<th>Preis p.P im Dreibettzimmer</th>{% endif %}
|
||||
{% if has_double_bed_room %}
|
||||
<th>Preis p.P im Doppelzimmer</th>{% endif %}
|
||||
{% if has_singel_bed_room %}
|
||||
<th>Preis p.P im Einzelzimmer</th>{% endif %}
|
||||
<th>Abflugorte / Zuschläge</th>
|
||||
<th>Verfügbarkeit</th>
|
||||
<th>Buchungsformular</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
{% set last_name = "" %}
|
||||
{% for travel_date in travel_program.travelDates if travel_date.status >= 0 %}
|
||||
|
||||
{% if last_name != travel_date.name %}
|
||||
{% set last_name = travel_date.name %}
|
||||
|
||||
{# @var travel_date \AppBundle\Entity\TravelDate #}
|
||||
<tr>
|
||||
<td data-title="Nr."><strong class="small">{{ travel_date.name }}</strong>
|
||||
</td>
|
||||
<td data-title="Beginn">{{ travel_date.start|date }} <span class="small-table-show">{{ travel_date.end|date }}</span></td>
|
||||
<td data-title="Ende" class="small-table-hidden">{{ travel_date.end|date }}</td>
|
||||
{% if has_three_bed_room %}
|
||||
<td data-title="Preis p.P. im Dreibettzimmer" class="price">
|
||||
{% if travel_date.prices[5] is defined %}
|
||||
{% if travel_date.prices[5].available == "1" %}
|
||||
{% if travel_date.prices[5] is defined %}
|
||||
|
||||
<span class="block">
|
||||
<span class="{% if travel_date.prices[5].effectiveDiscountPrice %}old_price{% endif %}">
|
||||
{% if travel_date.prices[5].effectiveDiscountPrice %}
|
||||
<i class="icons-percent"></i>
|
||||
{% endif %}
|
||||
ab {{ travel_date.prices[5].effectivePrice|number_format }} €
|
||||
</span>
|
||||
{% if travel_date.prices[5].effectiveDiscountPrice %}
|
||||
<span class="new_price">
|
||||
ab {{ travel_date.prices[5].effectiveDiscountPrice|number_format }}
|
||||
€
|
||||
</span>
|
||||
{% endif %}
|
||||
</span>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
nicht verfügbar
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endif %}
|
||||
{% if has_double_bed_room %}
|
||||
<td data-title="Preis p.P im Doppelzimmer" class="price">
|
||||
{% if travel_date.prices[3] is defined %}
|
||||
{% if travel_date.prices[3].available == "1" %}
|
||||
<span class="block">
|
||||
<span class="{% if travel_date.prices[3].effectiveDiscountPrice %}old_price{% endif %}">
|
||||
{% if travel_date.prices[3].effectiveDiscountPrice %}
|
||||
<i class="icons-percent"></i>
|
||||
{% endif %}
|
||||
ab {{ travel_date.prices[3].effectivePrice|number_format }} €
|
||||
</span>
|
||||
{% if travel_date.prices[3].effectiveDiscountPrice %}
|
||||
<span class="new_price">
|
||||
ab {{ travel_date.prices[3].effectiveDiscountPrice|number_format }}
|
||||
€
|
||||
</span>
|
||||
{% endif %}
|
||||
</span>
|
||||
{% else %}
|
||||
nicht verfügbar
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endif %}
|
||||
|
||||
{% if has_singel_bed_room %}
|
||||
<td data-title="Preis p.P im Einzelzimmer" class="price">
|
||||
{% if travel_date.prices[1] is defined %}
|
||||
{% if travel_date.prices[1].available == "1" %}
|
||||
<span class="block">
|
||||
<span class="{% if travel_date.prices[1].effectiveDiscountPrice %}old_price{% endif %}">
|
||||
{% if travel_date.prices[1].effectiveDiscountPrice %}
|
||||
<i class="icons-percent"></i>
|
||||
{% endif %}
|
||||
ab {{ travel_date.prices[1].effectivePrice|number_format }}
|
||||
€
|
||||
</span>
|
||||
{% if travel_date.prices[1].effectiveDiscountPrice %}
|
||||
<span class="new_price">
|
||||
ab {{ travel_date.prices[1].effectiveDiscountPrice|number_format }}
|
||||
€
|
||||
</span>
|
||||
{% endif %}
|
||||
</span>
|
||||
{% else %}
|
||||
nicht verfügbar
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endif %}
|
||||
<td data-title="Abflugorte / Zuschläge">
|
||||
<a href="#" class="btn btn-primary btn-sm border-radius st-slider-booking-btn" data-toggle="modal"
|
||||
data-target="#st-departures-modal-{{ loop.index0 }}">
|
||||
Flughäfen
|
||||
</a>
|
||||
|
||||
{% include 'default/components/departuresModal.html.twig' with {
|
||||
'departures': travel_date.departures,
|
||||
'id': loop.index0,
|
||||
'startWeekday': travel_date.startWeekday,
|
||||
'travelName': travel_date.name
|
||||
} %}
|
||||
</td>
|
||||
|
||||
{% if travel_date.effectiveStatus == 0 %}
|
||||
<td data-title="Verfügbarkeit" colspan="2">
|
||||
<div style="">
|
||||
<img src="/images/icons/available-{{ travel_date.effectiveStatus }}.png"
|
||||
style="height: 24px; width: 24px;vertical-align:middle"
|
||||
alt="">
|
||||
AUSGEBUCHT
|
||||
</div>
|
||||
|
||||
</td>
|
||||
{% else %}
|
||||
<td data-title="Verfügbarkeit">
|
||||
<div style="font-size: 0.95em">
|
||||
<img src="/images/icons/available-{{ travel_date.effectiveStatus }}.png"
|
||||
style="height: 24px; width: 24px;vertical-align:middle"
|
||||
alt="">
|
||||
{% if travel_date.effectiveStatus == 1 %}
|
||||
BUCHBAR
|
||||
{% endif %}
|
||||
{% if travel_date.effectiveStatus == 2 %}
|
||||
BUCHBAR
|
||||
{% endif %}
|
||||
{% if travel_date.effectiveStatus == 3 %}
|
||||
GARANTIERT
|
||||
{% endif %}
|
||||
{% if travel_date.effectiveStatus == 4 %}
|
||||
WENIGE PLÄTZE
|
||||
{% endif %}
|
||||
{% if travel_date.effectiveStatus == 5 %}
|
||||
NUR NOCH <span style="white-space: nowrap">1 PLATZ</span>
|
||||
{% endif %}
|
||||
{% if travel_date.effectiveStatus == 6 %}
|
||||
NUR NOCH <span style="white-space: nowrap">2 PLÄTZE</span>
|
||||
{% endif %}
|
||||
{% if travel_date.effectiveStatus == 7 %}
|
||||
NUR NOCH <span style="white-space: nowrap">3 PLÄTZE</span>
|
||||
{% endif %}
|
||||
{% if travel_date.effectiveStatus == 8 %}
|
||||
NUR NOCH <span style="white-space: nowrap">4 PLÄTZE</span>
|
||||
{% endif %}
|
||||
{% if travel_date.effectiveStatus == 9 %}
|
||||
NUR NOCH <span style="white-space: nowrap">5 PLÄTZE</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</td>
|
||||
<td data-title="">
|
||||
<a href="{{ page.urlPath ~ '/buchen?nr=' ~ travel_date.name }}"
|
||||
class="btn btn-primary btn-md border-radius btn-booking-form"
|
||||
rel="nofollow"
|
||||
>
|
||||
<i class="fa fa-angle-double-right"></i> Buchungs-<br class="hidden"><span class="hidden" style="margin-left: 5px;"> </span>Formular
|
||||
</a>
|
||||
</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
Momentan sind für dieses Programm keine Termine verfügbar.
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</div> <!-- END tabpanel -->
|
||||
|
||||
{#
|
||||
********* LANDKARTE *********
|
||||
#}
|
||||
|
||||
{% if travel_program.hasMap %}
|
||||
<div role="tabpanel" class="tab-pane" id="travel-map-content-tab">
|
||||
|
||||
{% if travel_program.mapHtml is not empty %}
|
||||
{{ travel_program.mapHtml|raw|stripslashes }}
|
||||
{% else %}
|
||||
<img src="{{ asset('/images/dummy.png') }}"
|
||||
data-src="/uploads/maps/{{ travel_program.mapImage ~ travel_program.mapImageExt }}"
|
||||
alt="Karte zum Reiseablauf" class="img-responsive lozad">
|
||||
<br clear="all">
|
||||
{% endif %}
|
||||
|
||||
</div> <!-- END tabpanel -->
|
||||
{% endif %}
|
||||
|
||||
{#
|
||||
********* LANDINFOS *********
|
||||
#}
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="travel-info-content-tab">
|
||||
|
||||
{% for country in travel_program.countries %}
|
||||
|
||||
<h2>{{ country.name }}</h2>
|
||||
{{ country.htmlInformation|raw|lozad }}
|
||||
{% endfor %}
|
||||
|
||||
</div> <!-- END tabpanel -->
|
||||
|
||||
</div>
|
||||
|
||||
{{ block('travel_program_tab_bar') }}
|
||||
</div>
|
||||
</section><!-- end section -->
|
||||
{% endblock body %}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
<div id="section_order">
|
||||
<h1>{{ page.pagetitle|default(page.title) }}</h1>
|
||||
|
||||
<section class="clearfix" id="section_order_second">
|
||||
{{ page.content|keywords|raw|lozad }}
|
||||
</section>
|
||||
<section class="clearfix" id="section_order_first">
|
||||
{#{% for i in 0..page.children|length//3 %}#}
|
||||
<div class="row">
|
||||
{% for child_page in child_pages if child_page.status == 1 and child_page.travelProgram is not empty %}
|
||||
|
||||
{% 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>
|
||||
|
||||
<div class="row">
|
||||
{% for child_page in mediated_child_pages %}
|
||||
|
||||
{% include 'default/components/pageBox.html.twig' %}
|
||||
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</section>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
<h1>{{ travel_program.title|default(page.pagetitle)|default(page.title) }}</h1>
|
||||
<h2 style="color: #666">{{ travel_program.subtitle }}</h2>
|
||||
|
||||
{{ travel_program.htmlDescription|raw|keywords }}
|
||||
|
||||
<h2>Eingeschlossene Leistungen</h2>
|
||||
<ul>
|
||||
{% for travel_program_service in travel_program.included|split('\n') %}
|
||||
<li>{{ travel_program_service|raw }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
{% if travel_program.classDescription is not empty %}
|
||||
{{ travel_program.classDescription|raw }}
|
||||
{% endif %}
|
||||
|
||||
{% if travel_program.excluded is not empty %}
|
||||
<h2>Nicht eingeschlossene / zubuchbare Leistungen</h2>
|
||||
<ul>
|
||||
{% for travel_program_service in travel_program.excluded|split('\n') %}
|
||||
<li>{{ travel_program_service|raw }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
{% if (travel_program.advices is not empty) or (travel_program.generalnote is not empty) %}
|
||||
<h3>Hinweise</h3>
|
||||
<ul>
|
||||
{% if travel_program.generalnote is not empty %}
|
||||
{% for notes in travel_program.generalnote.text|trim|split('\n') %}
|
||||
{% if notes is not empty %}
|
||||
<li>{{ notes|raw }}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% for travel_program_advice in travel_program.advices|trim|split('\n') %}
|
||||
{% if travel_program_advice is not empty %}
|
||||
<li>{{ travel_program_advice|raw }}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
|
@ -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|lozad }}
|
||||
</section>
|
||||
{% endblock %}
|
||||
141
app/Resources/views/default/pages/contact.html.twig
Normal file
141
app/Resources/views/default/pages/contact.html.twig
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
{% extends get_base_template() %}
|
||||
{% form_theme contact_form 'default/form/theme.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
|
||||
<h1>Individuelle Reiseplanung</h1>
|
||||
|
||||
<p>
|
||||
Sie haben noch nicht die richtige Reise gefunden? Oder planen Sie einen ganz besonderen Urlaub, den Sie im
|
||||
Katalog nicht finden? Dann teilen Sie uns doch alle relevanten Informationen für Ihre Wunsch-Reise mit. Wir
|
||||
werden uns dann umgehend bei Ihnen melden. Ihre Daten (Name, Telefonnummer etc.) werden ausschließlich zur
|
||||
Bearbeitung Ihrer Anfrage verwendet und nicht an Dritte weitergegeben.
|
||||
</p>
|
||||
<script src='https://www.google.com/recaptcha/api.js'></script>
|
||||
<div id="contact_form" class="contact_form">
|
||||
|
||||
<form id="contactform" action="/kontakt" name="contactform" method="post" data-toggle="validator">
|
||||
|
||||
{% if re_error != "" %}
|
||||
<div class="alert alert-danger" style="margin-bottom: 0px;padding: 10px 15px;">
|
||||
{{ re_error }}
|
||||
</div>
|
||||
<br>
|
||||
{% endif %}
|
||||
|
||||
<div class="form-box">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h2>Reisedaten</h2>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h3>Abflughafen</h3>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">{{ form_field_pho(contact_form.departure0, 'Abflughafen 1. Wahl') }}</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">{{ form_field_pho(contact_form.departure1, 'Abflughafen 2. Wahl') }}</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">{{ form_field_pho(contact_form.departure2, 'Abflughafen 3. Wahl') }}</div>
|
||||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h3>Reisetermin</h3>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-6 col-sm-6 col-xs-12">{{ form_field_pho(contact_form.start, 'Anreise') }}</div>
|
||||
<div class="form-group col-md-6 col-sm-6 col-xs-12">{{ form_field_pho(contact_form.end, 'Abreise') }}</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">{{ form_field_pho(contact_form.duration, 'Reisedauer in Tagen') }}</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
<div class="form-box">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h2>Persönliche Daten</h2>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
||||
{{ form_field_pho(contact_form.salutation) }}
|
||||
</div>
|
||||
<div class="form-group col-md-6 col-sm-6 col-xs-12">
|
||||
<div class="">
|
||||
{{ form_field_pho(contact_form.firstName, 'Vorname') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
<div class="form-group col-md-6 col-sm-6 col-xs-12">
|
||||
<div class="required">
|
||||
{{ form_field_pho(contact_form.lastName, 'Nachname') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">{{ form_field_pho(contact_form.streetAddress, 'Straße, Hausnummer') }}</div>
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">{{ form_field_pho(contact_form.zipCode, 'Postleitzahl') }}</div>
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">{{ form_field_pho(contact_form.city, 'Ort') }}</div>
|
||||
<div class="form-group col-md-12 col-sm-12 col-xs-12">{{ form_field_pho(contact_form.nation) }}</div>
|
||||
<div class="form-group col-md-6 col-sm-6 col-xs-12">
|
||||
{{ form_field_pho(contact_form.phone, 'Telefon tagsüber') }}
|
||||
</div>
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">{{ form_field_pho(contact_form.mobilePhone, 'Telefon mobil') }}</div>
|
||||
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
||||
{{ form_field_pho(contact_form.email, 'E-Mail-Adresse') }}
|
||||
</div>
|
||||
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
||||
{{ form_field_pho(contact_form.travelerCount) }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
{{ form_field_pho(contact_form.notes, 'Bitte Reiseland und Programmwunsch angeben', {attr: {rows: 8}}) }}
|
||||
</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
{{ form_widget(contact_form.acceptPrivacy) }}
|
||||
<label for="{{ contact_form.acceptPrivacy.vars.id }}">
|
||||
Hiermit willige ich in die im Rahmen der
|
||||
<a href="/datenschutz" target="_blank">
|
||||
Datenschutzerklärung
|
||||
</a> genannte Datenverarbeitung ein.
|
||||
</label>
|
||||
{{ form_errors(contact_form.acceptPrivacy) }}
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
{{ form_widget(contact_form.acceptProcessing) }}
|
||||
<label for="{{ contact_form.acceptProcessing.vars.id }}" style="line-height: 1.2em;">Einverständniserklärung: Hiermit willige ich in die Verarbeitung der von mir freiwillig
|
||||
angegebenen personenbezogenen Daten ein.
|
||||
Ich wurde darüber informiert, dass ich diese Einwilligung jederzeit ohne Nachteile per Mail an
|
||||
stern@sterntours.de widerrufen kann.
|
||||
|
||||
</label>
|
||||
{{ form_errors(contact_form.acceptProcessing) }}
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
|
||||
{% if re_error != "" %}
|
||||
<div class="alert alert-danger" style="margin-bottom: 0px;padding: 10px 15px;">
|
||||
{{ re_error }}
|
||||
</div>
|
||||
<br>
|
||||
{% endif %}
|
||||
|
||||
<div class="g-recaptcha" data-sitekey="6LfjBm8UAAAAAIN68ozw90OctADqjXSv7O-E_epJ"></div>
|
||||
|
||||
<br clear="all">
|
||||
</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">Anfrage absenden</button>
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
{{ form_rest(contact_form) }}
|
||||
</form>
|
||||
|
||||
</div><!-- end contact-form -->
|
||||
|
||||
|
||||
</section>
|
||||
{% endblock body %}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block canonical_tag %}{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Vielen Dank, wir haben Ihre Anfrage erhalten!</h1>
|
||||
|
||||
<p>
|
||||
<a href="/">Zurück zur Startseite</a>
|
||||
</p>
|
||||
{% endblock %}
|
||||
287
app/Resources/views/default/pages/fewoBooking.html.twig
Normal file
287
app/Resources/views/default/pages/fewoBooking.html.twig
Normal file
|
|
@ -0,0 +1,287 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
{% form_theme form 'default/form/theme.html.twig' %}
|
||||
|
||||
{% block stylesheets %}
|
||||
<style>.box-slider .slide:not(.active) {display: none;}</style>{# TODO Move to custom.css #}
|
||||
<link rel="stylesheet" href="{{ asset('css/my-fewo.css?v') }}{{ get_file_last_time('css/my-fewo.css') }}">
|
||||
{% endblock stylesheets %}
|
||||
|
||||
{% block javascripts %}
|
||||
{{ parent() }}
|
||||
<script src="{{ asset('js/fewoBooking-min.js?v') }}{{ get_file_last_time('js/fewoBooking-min.js') }}"></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
|
||||
<div class="content-copy">
|
||||
|
||||
<h1>Buchungsformular FeWo</h1>
|
||||
|
||||
|
||||
<div class="pull-right">
|
||||
<a href="{{ page.urlPath }}" class="btn btn-primary btn-sm"><< zurück zu Termine und Preise</a>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
||||
|
||||
<h2 style="margin-top:10px">{{ lodging.name }}</h2>
|
||||
|
||||
|
||||
<div id="booking_form" class="booking_form" style="">
|
||||
|
||||
<form class="st-booking-form" method="post" data-toggle="validator">
|
||||
|
||||
{{ form_errors(form) }}
|
||||
{{ form_errors(form.email) }}
|
||||
|
||||
<input type="hidden" name="hidden_toDate" id="hidden_toDate" value="{{ lastSeason.toDate|date('d-m-y') }}">
|
||||
<input type="hidden" name="hidden_reservationDays" id="hidden_reservationDays" value='{{ reservationDays|json_encode|raw }}'>
|
||||
<input type="hidden" name="hidden_customDays" id="hidden_customDays" value='{{ classByDays|json_encode|raw }}'>
|
||||
|
||||
|
||||
<div id="message"></div>
|
||||
|
||||
<div class="form-box">
|
||||
<div class="table-responsive" id="no-more-tables_first">
|
||||
<table class="table first-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Ferienwohnung</td>
|
||||
<td>
|
||||
{{ lodging.name }}
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr>
|
||||
<td>Saison</td>
|
||||
<td>
|
||||
{{ fewo_price.season.name }}
|
||||
</td>
|
||||
</tr>
|
||||
-->
|
||||
<tr>
|
||||
<td><label class="st-required control-label required">Datum</label></td>
|
||||
<td>
|
||||
<div class="form-group" style="margin-bottom:0;">
|
||||
<div class="input-daterange input-group" id="date-range">
|
||||
{{ form_widget(form.fromDate) }}
|
||||
<span class="input-group-addon bg-info b-0 text-white">bis</span>
|
||||
{{ form_widget(form.toDate) }}
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr>
|
||||
<td>Mindestbelegung</td>
|
||||
<td>
|
||||
{{ fewo_price.season.minimumStay }} {{ fewo_price.season.minimumStay < 2 ? 'Nacht' : 'Nächte' }}
|
||||
</td>
|
||||
</tr> -->
|
||||
<tr>
|
||||
<td>{{ form_label(form.travelerCountAdult, 'Reiseteilnehmer Erwachsene') }}</td>
|
||||
<td>
|
||||
<div style="max-width: 180px;">
|
||||
{{ form_widget(form.travelerCountAdult) }}
|
||||
{{ form_errors(form.travelerCountAdult) }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ form_label(form.travelerCountChild, 'Reiseteilnehmer Kinder') }}</td>
|
||||
<td>
|
||||
<div style="max-width: 180px;">
|
||||
{{ form_widget(form.travelerCountChild) }}
|
||||
{{ form_errors(form.travelerCountChild) }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- <tr>
|
||||
<td>{{ form_label(form.travelerCount, 'Reiseteilnehmer') }}</td>
|
||||
<td>
|
||||
<div style="max-width: 180px;">
|
||||
{{ form_widget(form.travelerCount) }}
|
||||
{{ form_errors(form.travelerCount) }}
|
||||
</div>
|
||||
</td>
|
||||
</tr>-->
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12">
|
||||
<div class="panel">
|
||||
<div class="panel-body">
|
||||
<h3>Ihr gewähltes Angebot</h3>
|
||||
<div class="st-booking-summary">
|
||||
{% include 'default/components/booking/fewoSummary.html.twig' with {
|
||||
'fewo_booking_request' : fewo_booking_request,
|
||||
'fewo_lodging' : fewo_lodging,
|
||||
'fewo_price' : fewo_price,
|
||||
'total_price' : total_price,
|
||||
'total_price_per_night' : total_price_per_night,
|
||||
} %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Reiseanmelder</h5>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
||||
{{ form_field_pho(form.salutation, 'Anrede', {'label_attr': {class: 'sr-only'}}) }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.firstName, 'Vorname') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.lastName, 'Nachname') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.streetAddress, 'Straße, Hausnummer') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.zipCode, 'PLZ') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.city, 'Ort') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-12 col-sm-12 col-xs-12">
|
||||
{{ form_field_pho(form.nation, 'Land') }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.phone, 'Telefon tagsüber') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
||||
{{ form_field_pho(form.mobile, 'Handynummer (Bitte angeben)') }}
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<div class="form-group">
|
||||
<div class="required">
|
||||
{{ form_field_pho(form.email, 'E-Mail-Adresse') }}
|
||||
</div>
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Unverbindliche Anmerkungen</h5>
|
||||
</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
{{ form_field(form.notes, 'Mitteilungen / Sonstiges (optional)', {
|
||||
'label_attr': {'class': 'sr-only'},
|
||||
'attr': {'rows': '6'}
|
||||
}) }}
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
|
||||
<div class="form-box">
|
||||
<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) }}
|
||||
<label for="{{ form.acceptPrivacy.vars.id }}">
|
||||
Hiermit willige ich in die im Rahmen der
|
||||
<a href="/datenschutz" target="_blank">
|
||||
Datenschutzerklärung
|
||||
</a> genannte Datenverarbeitung ein.
|
||||
</label>
|
||||
<span class="checkbox_marker"></span>
|
||||
{{ 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"
|
||||
>
|
||||
<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>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
|
||||
{{ form_rest(form) }}
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div><!-- end contact-form -->
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
{% endblock body %}
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block canonical_tag %}{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
<section class="clearfix">
|
||||
|
||||
<div class="content-copy">
|
||||
|
||||
<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>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
|
||||
<h2 style="margin-top:10px">{{ page.fewoLodging.name }} {{ fewo_price.season.name }}</h2>
|
||||
|
||||
|
||||
<div id="booking_form" class="booking_form">
|
||||
|
||||
<form class="st-booking-form" method="post">
|
||||
|
||||
|
||||
<div id="message"></div>
|
||||
|
||||
<div class="form-box">
|
||||
<div class="table-responsive" id="no-more-tables_first">
|
||||
<table class="table first-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Ferienwohnung</td>
|
||||
<td>
|
||||
{{ page.fewoLodging.name }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Reisezeitraum</td>
|
||||
<td>{{ fewo_booking_request.fromDate|date }} - {{ fewo_booking_request.toDate|date }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{#TODO#}
|
||||
<div class="col-xs-12">
|
||||
<div class="panel">
|
||||
<div class="panel-body">
|
||||
<h3>Ihr gewähltes Angebot</h3>
|
||||
<div class="st-booking-summary">
|
||||
{% include 'default/components/booking/fewoSummary.html.twig' with {
|
||||
'fewo_booking_request' : fewo_booking_request,
|
||||
'fewo_lodging' : fewo_lodging,
|
||||
'fewo_price' : fewo_price,
|
||||
'total_price' : total_price,
|
||||
'total_price_per_night' : total_price_per_night,
|
||||
} %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Reiseanmelder</h5>
|
||||
</div>
|
||||
|
||||
<div class="table-responsive" id="no-more-tables_first">
|
||||
<table class="table first-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Anrede</td>
|
||||
<td>
|
||||
{% if fewo_booking_request.salutation == 1 %}
|
||||
Herr
|
||||
{% elseif fewo_booking_request.salutation == 2 %}
|
||||
Frau
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Vorname</td>
|
||||
<td>{{ fewo_booking_request.firstName }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Nachname</td>
|
||||
<td>{{ fewo_booking_request.lastName }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Straße, Hausnummer</td>
|
||||
<td>{{ fewo_booking_request.streetAddress }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PLZ</td>
|
||||
<td>{{ fewo_booking_request.zipCode }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ort</td>
|
||||
<td>{{ fewo_booking_request.city }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Telefon tagsüber</td>
|
||||
<td>{{ fewo_booking_request.phone }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Handynummer (Bitte angeben)</td>
|
||||
<td>{{ fewo_booking_request.mobile }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>E-Mail-Adresse</td>
|
||||
<td>{{ fewo_booking_request.email }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Anzahl Reiseteilnehmer
|
||||
</td>
|
||||
<td>
|
||||
Erwachsene: {{ fewo_booking_request.travelerCountAdult }}<br>
|
||||
Kinder: {{ fewo_booking_request.travelerCountChild }}<br>
|
||||
Gesamt: {{ fewo_booking_request.travelerCount }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
<div class="form-box">
|
||||
<div class="">
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<h5>Unverbindliche Anmerkungen</h5>
|
||||
</div>
|
||||
<div class="col-md-12 col-sm-12 col-xs-12">
|
||||
<p>{{ fewo_booking_request.notes }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end form-box -->
|
||||
|
||||
|
||||
</div><!-- end contact-form -->
|
||||
|
||||
<div class="pull-right">
|
||||
<a href="/" class="btn btn-primary btn-sm"><< Zurück zur Startseite</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
||||
60
app/Resources/views/default/pages/home.html.twig
Normal file
60
app/Resources/views/default/pages/home.html.twig
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block meta_description %}
|
||||
<meta name="description" content="STERN TOURS ist Spezialist und Reiseveranstalter auf Ägypten Urlaub, Israel Reisen, Türkei, Jordanien, Marokko, Berlin Städtereisen und Jugendreisen. Last Minute Urlaub und Pauschalreisen gehören auch zu unserem Schwerpunkt.">
|
||||
{% endblock %}
|
||||
{% block meta_keywords %}
|
||||
<meta name="keywords" content="STERN TOURS, Spezialist, Reiseveranstalter, Ägypten Urlaub, Israel Reisen, Türkei, Jordanien, Marokko, Berlin Städtereisen, Jugendreisen, Last Minute Urlaub, Pauschalreisen">
|
||||
{% endblock %}
|
||||
|
||||
{% block header2 %}
|
||||
{% include 'default/components/home/slider.html.twig' %}
|
||||
{% endblock %}
|
||||
{% block breadcrumb %}{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
<div id="section_orders">
|
||||
<h1>Unsere beliebtesten Kulturreisen</h1>
|
||||
|
||||
<section id="">
|
||||
<div class="clearfix ">
|
||||
{{ render(controller('AppBundle:Component:offersCarousel')) }}
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<h2 class="h3 h3l">Alle Reisekategorien auf einem Blick</h2>
|
||||
</div>
|
||||
|
||||
{% include 'default/components/multiPageBoxCarousel.html.twig' with {pages: country_pages} %}
|
||||
</section><!-- end section -->
|
||||
|
||||
|
||||
<section class="clearfix" 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>
|
||||
|
||||
|
||||
{% endblock body %}
|
||||
104
app/Resources/views/default/pages/iq/travelGuide.html.twig
Normal file
104
app/Resources/views/default/pages/iq/travelGuide.html.twig
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
{% set site_has_h1 = false %}
|
||||
{% if(api is defined) %}
|
||||
{% if api.sites|length > 1 %}
|
||||
<div class="wrapper-nav-tabs">
|
||||
<ul class="nav nav-tabs nav-justified list-nav-tabs">
|
||||
{% for site in api.sites %}
|
||||
<li class="{% if loop.index==1 %} active {% endif %}">
|
||||
<a href="#travel_guide_content_{{ site.id }}" aria-controls="travel_guide_content_{{ site.id }}" role="tab" data-toggle="tab">
|
||||
{% if(site.scope == 0) %}
|
||||
Zusammenfassung <i class="hidden-xs">für eilige Leser</i>
|
||||
{% else %}
|
||||
Ausführliche Darstellung <i class="hidden-xs">für Interessierte</i>
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tab-content">
|
||||
{% for site in api.sites %}
|
||||
<div role="tabpanel" class="tab-pane {% if loop.index==1 %} active {% endif %}" id="travel_guide_content_{{ site.id }}">
|
||||
{% if(site_has_h1) %}
|
||||
<h2 class="h1l">{{ site.name }}</h2>
|
||||
{% else %}
|
||||
<h1>{{ site.name }}</h1>
|
||||
{% set site_has_h1 = true %}
|
||||
{% endif %}
|
||||
{{ site.full_text|raw|keywords|lozad }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div class="wrapper-nav-tabs">
|
||||
<ul class="nav nav-tabs nav-justified list-nav-tabs">
|
||||
{% for site in api.sites %}
|
||||
<li class="{% if loop.index==1 %} active {% endif %}">
|
||||
<a href="#travel_guide_content_{{ site.id }}" aria-controls="travel_guide_content_{{ site.id }}" role="tab" data-toggle="tab">
|
||||
{% if(site.scope == 0) %}
|
||||
Zusammenfassung <i class="hidden-xs">für eilige Leser</i>
|
||||
{% else %}
|
||||
Ausführliche Darstellung <i class="hidden-xs">für Interessierte</i>
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% else %}
|
||||
{% for site in api.sites %}
|
||||
{% if(site_has_h1) %}
|
||||
<h2 class="h1l">{{ site.name }}</h2>
|
||||
{% else %}
|
||||
<h1>{{ site.name }}</h1>
|
||||
{% set site_has_h1 = true %}
|
||||
{% endif %}
|
||||
{{ site.full_text|raw|keywords|lozad }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</section>
|
||||
<hr>
|
||||
{% if(api is defined and api.children is defined and api.children is not empty) %}
|
||||
<section class="clearfix">
|
||||
<div class="row">
|
||||
{% for child_page in api.children %}
|
||||
{% if(child_page.active) %}
|
||||
<div class="col-md-4 col-sm-6">
|
||||
<div class="travel-wrapper get-box-link">
|
||||
<div class="item text-left">
|
||||
{% if(false and child_page.box_image_url is defined and child_page.box_image_url is not empty) %}
|
||||
<div class="item-img" style="height: 220px;">
|
||||
{% if child_page.box_image_url is defined and child_page.box_image_url is not empty %}
|
||||
{% set image_url = child_page.box_image_url %}
|
||||
{% set image_alt = child_page.name %}
|
||||
{% 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.name }}</div>
|
||||
<p>{{ child_page.description }}</p>
|
||||
</div>
|
||||
<a class="item-button is-box-link dobble_line" href="{{ child_page.url }}" title="{{ child_page.name }}">
|
||||
<span>{{ child_page.name }}</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
115
app/Resources/views/default/pages/search.html.twig
Normal file
115
app/Resources/views/default/pages/search.html.twig
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
<div class="content-copy">
|
||||
|
||||
<h1>
|
||||
{% if travel_programs is empty %}
|
||||
Für Ihre Auswahl wurden keine Reisetermine gefunden.
|
||||
{% else %}
|
||||
Reisen mit passendem Termin gefunden: {{ travel_programs|length }}
|
||||
Reiseprogramm{% if travel_programs|length > 1 %}e{% endif %}
|
||||
{% endif %}
|
||||
</h1>
|
||||
|
||||
<div class="result-wrapper">
|
||||
|
||||
{% for travel_program in travel_programs if travel_program.travelDates is not empty %}
|
||||
<div class="result">
|
||||
<div class="row">
|
||||
<div class="image col-md-3">
|
||||
<img src="{{ travel_program.images.empty
|
||||
? '/images/icons/no-picture.png'
|
||||
: ('https://v2.sterntours.de/uploads/travel_program/' ~ travel_program.images.first.fileNameWithExtension)
|
||||
}}" class="img-responsive"
|
||||
>
|
||||
</div>
|
||||
<div class="description col-md-9">
|
||||
<span class="pull-right">
|
||||
<a href="{{ travel_program.page.urlPath }}/pdf" class="btn btn-default btn-sm border-radius">
|
||||
<i class="fa fa-file-pdf-o"></i> Druckversion
|
||||
</a>
|
||||
</span>
|
||||
<div class="title clearfix">{{ travel_program.title }}</div>
|
||||
|
||||
<div class="subtitle">{{ travel_program.subtitle }}</div>
|
||||
<div class="dates-count">
|
||||
{{ travel_program.travelDates|length }} passende{% if travel_program.travelDates|length > 1 %} Termine{% else %}r Termin{% endif %}
|
||||
</div>
|
||||
<div class="price pull-left"><span class="small">p.P.</span> ab {{ travel_program.lowestPrice|number_format }} €</div>
|
||||
|
||||
<div class="pull-right">
|
||||
<a href="{{ travel_program.page.urlPath }}"
|
||||
class="btn btn-primary btn-sm border-radius"
|
||||
target="_blank"
|
||||
>
|
||||
Angebot aufrufen
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="table-responsive no-more-tables" id="">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Termin-Nr.</th>
|
||||
<th>Beginn</th>
|
||||
<th>Ende</th>
|
||||
<th>Preis p.P im Doppelzimmer</th>
|
||||
<th>Preis p.P im Einzelzimmer</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% set travel_program_loop = loop %}
|
||||
{% for travel_date in travel_program.travelDates if travel_date.status > 0 %}
|
||||
{# @var travel_date \AppBundle\Entity\TravelDate #}
|
||||
<tr>
|
||||
<td data-title="Termin-Nr."><strong>{{ travel_date.name }}</strong></td>
|
||||
<td data-title="Beginn">{{ travel_date.start|date }}</td>
|
||||
<td data-title="Ende">{{ travel_date.end|date }}</td>
|
||||
<td data-title="Preis p.P im Doppelzimmer">ab {{ travel_date.prices[3].effectivePrice|number_format }} €</td>
|
||||
<td data-title="Preis p.P im Einzelzimmer">ab {{ travel_date.prices[1].effectivePrice|number_format }} €</td>
|
||||
|
||||
<td data-title="Abflugorte / Zuschläge">
|
||||
<a href="#" class="color-brand" data-toggle="modal"
|
||||
data-target="#st-departures-modal-{{ travel_program_loop.index0 }}-{{ loop.index0 }}"
|
||||
>
|
||||
Flughäfen
|
||||
</a>
|
||||
|
||||
{% include 'default/components/departuresModal.html.twig' with {
|
||||
'departures': travel_date.departures,
|
||||
'id': travel_program_loop.index0 ~ '-' ~ loop.index0
|
||||
} %}
|
||||
</td>
|
||||
|
||||
<td data-title="Verfügbarkeit">
|
||||
<img src="/images/icons/available-{{ travel_date.effectiveStatus }}.png" alt="Verfügbarkeit" style="width: 30px;">
|
||||
</td>
|
||||
|
||||
<td data-title="">
|
||||
{# #TODO Bad performance #}
|
||||
<a href="{{ travel_program.page.urlPath }}#travel-dates-content-tab" class="btn btn-primary">Details</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
{% endblock body %}
|
||||
5
app/Resources/views/default/pages/sitemap.html.twig
Normal file
5
app/Resources/views/default/pages/sitemap.html.twig
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block body %}
|
||||
{% include 'default/components/sitemap/sitemapNode.html.twig' %}
|
||||
{% endblock body %}
|
||||
18
app/Resources/views/default/pages/ttSearch.html.twig
Normal file
18
app/Resources/views/default/pages/ttSearch.html.twig
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{% extends get_base_template() %}
|
||||
|
||||
{% block meta_robots %}
|
||||
<meta name="robots" content="noindex,nofollow" />
|
||||
{% if app.debug %}<!-- meta-robots wurde durch das Twig-Seitentemplate festgelegt -->{% endif %}
|
||||
{% endblock %}
|
||||
{% block canonical_tag %}{% if app.debug %}<!-- Die canonical URL wird für diese Seite bewusst nicht definiert, da sie vom Suchindex ausgeschlossen wurde (Siehe meta robots) -->{% endif %}{% endblock %}
|
||||
|
||||
|
||||
{% block body %}
|
||||
{% if tt_url is defined %}
|
||||
<iframe src="{{ tt_url|raw }}" scrolling="auto" width="100%" height="5500"
|
||||
onload="window.parent.parent.scrollTo(0,0);"
|
||||
></iframe>
|
||||
{% else %}
|
||||
<p>Es konnten leider keine Ergebnisse gefunden werden.</p>
|
||||
{% endif %}
|
||||
{% endblock body %}
|
||||
Loading…
Add table
Add a link
Reference in a new issue