* Sidebar-Suchmaske
* Letzter Breadcrum-Eintrag ist kein Link * Sonstige Links im Layout (Impressum, etc.) * Vorschaubox-Anpassungen: page.box_body wurde nicht berücksichtigt; page.box_image_url wird jetzt gegenüber travelProgram.previewImage bevorzugt; Standard-Vorschaubild geändert * page.pagetitle gegenüber page.title als Seitenüberschrift bevorzugen * Fertigstellung Reiseprogrammseite; zu Tab-Inhalt scrollen; Bei Klick auf Buchen-Knopf zu Termintabelle scrollen (auch von der Suchseite aus) * Aufteilung der Vorschau-Boxen in vermittelte und nicht-vermittelte Reisen, falls es beide gibt * Falls page.real_path_url gesetzt wird => Eine Seite kann nicht mehr über den slug-Pfad (<eltern-seite>/<seite>) aufgerufen werden (Sonst gäbe es mehrere URLs für die gleiche Seite) git-svn-id: http://78.47.251.156/svn/dev/sterntours-3@3295 f459cee4-fb09-11de-96c3-f9c5f16c3c76
This commit is contained in:
parent
4c2fb2fd08
commit
20beca7c4d
25 changed files with 564 additions and 112 deletions
|
|
@ -20,10 +20,6 @@
|
|||
{% endjavascripts %}
|
||||
{% endblock %}
|
||||
|
||||
{% block breadcrumb %}
|
||||
{{ include('default/components/breadcrumb.html.twig') }}
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
<div class="hl2">{{ page.pagetitle ?? page.title }}</div>
|
||||
<div class="hl2">{{ page.pagetitle|default(page.title) }}</div>
|
||||
|
||||
{#{% for i in 0..page.children|length//3 %}#}
|
||||
<div class="row">
|
||||
|
|
|
|||
|
|
@ -15,11 +15,11 @@
|
|||
|
||||
<div class="result-wrapper">
|
||||
|
||||
{% for travel_program in travel_programs %}
|
||||
{% 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="https://www.sterntours.de/{{ travel_program.images.empty
|
||||
<img src="/{{ travel_program.images.empty
|
||||
? 'images/icons/no-picture.png'
|
||||
: ('uploads/travel_program/' ~ travel_program.images.first.fileNameWithExtension)
|
||||
}}" class="img-responsive"
|
||||
|
|
@ -40,8 +40,7 @@
|
|||
<div class="price pull-left"><span class="small">p.P.</span> ab {{ travel_program.lowestPrice|number_format }} €</div>
|
||||
|
||||
<div class="pull-right">
|
||||
{# #TODO #}
|
||||
<a href=""
|
||||
<a href="{{ travel_program.page.urlPath }}"
|
||||
class="btn btn-primary btn-sm border-radius"
|
||||
target="_blank"
|
||||
>
|
||||
|
|
@ -99,7 +98,7 @@
|
|||
|
||||
<td data-title="">
|
||||
{# #TODO Bad performance #}
|
||||
<a href="{{ travel_program.page.urlPath }}" class="btn btn-primary">Details</a>
|
||||
<a href="{{ travel_program.page.urlPath }}#travel-dates-content-tab" class="btn btn-primary">Details</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,31 @@
|
|||
{# @var travel_program \AppBundle\Entity\TravelProgram #}
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% 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 }}</h1>
|
||||
<h1>{{ travel_program.title|default(page.pagetitle)|default(page.title) }}</h1>
|
||||
|
||||
{#
|
||||
********* SLIDER *********
|
||||
#}
|
||||
|
||||
<div class="pull-right btn-over-slider">
|
||||
<button type="submit" class="btn btn-primary btn-lg border-radius">Jetzt Buchen</button>
|
||||
<button type="button"
|
||||
class="btn btn-primary btn-lg border-radius st-slider-booking-btn"
|
||||
onclick=
|
||||
>
|
||||
Jetzt Buchen
|
||||
</button>
|
||||
</div>
|
||||
<section class="section fullscreen background padding-0 margin-bottom-20">
|
||||
<div id="myCarousel" class="carousel slide">
|
||||
|
|
@ -43,52 +60,105 @@
|
|||
</div>
|
||||
</section><!-- end section -->
|
||||
|
||||
<div class="">
|
||||
{#
|
||||
********* TAB BAR *********
|
||||
#}
|
||||
|
||||
{% block travel_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="active"><a href="#content_tab_01" aria-controls="content_tab_01" role="tab" data-toggle="tab">Reiseablauf</a></li>
|
||||
<li><a href="#content_tab_02" aria-controls="content_tab_02" role="tab" data-toggle="tab">Leistungen</a></li>
|
||||
<li><a href="#content_tab_03" aria-controls="content_tab_03" role="tab" data-toggle="tab">Termine <i class="fa fa-star"></i> Preise</a></li>
|
||||
<li><a href="#content_tab_04" aria-controls="content_tab_04" role="tab" data-toggle="tab">Karte</a></li>
|
||||
<li><a href="#content_tab_05" aria-controls="content_tab_05" role="tab" data-toggle="tab">Landinfos</a></li>
|
||||
<li><a href="#content_tab_07" aria-controls="content_tab_07" role="tab" data-toggle="tab">Team vor Ort</a></li>
|
||||
<li class="active">
|
||||
<a href="#travel-description-content-tab" aria-controls="travel-description-content-tab" role="tab" data-toggle="tab">
|
||||
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">
|
||||
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">
|
||||
Termine <i class="fa fa-star"></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>
|
||||
{#<li><a href="#content_tab_07" aria-controls="content_tab_07" role="tab" data-toggle="tab">Team vor Ort</a></li>#}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock travel_program_tab_bar %}
|
||||
|
||||
<div class="tab-content">
|
||||
|
||||
<div role="tabpanel" class="tab-pane active" id="content_tab_01">
|
||||
{#
|
||||
********* REISEABLAUF *********
|
||||
#}
|
||||
|
||||
<div role="tabpanel" class="tab-pane active" id="travel-description-content-tab">
|
||||
|
||||
{{ travel_program.htmlDescription|raw }}
|
||||
|
||||
{% if travel_program.advices is not empty %}
|
||||
<h3>Hinweise</h3>
|
||||
<ul>
|
||||
{% for travel_program_advice in travel_program.advices|trim|split('\n') %}
|
||||
<li>{{ travel_program_advice|raw }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
</div> <!-- END tabpanel -->
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="content_tab_02">
|
||||
{#
|
||||
********* 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>
|
||||
{#
|
||||
<h1>Unser Video</h1>
|
||||
<div itemprop="video" itemscope itemtype="http://schema.org/VideoObject">
|
||||
<h2 itemprop="name">Video Headline</h2>
|
||||
<div class="embed-responsive embed-responsive-16by9">
|
||||
<meta itemprop="embedURL" content="http://www.youtube.com/watch?v=XzgjEBOlC8I">
|
||||
<meta itemprop="thumbnailUrl" content="http://exampel.com/Party_Thumbnail.png">
|
||||
<meta itemprop="description" content="Lorem ipsum dolor sit amet, consectetuer adipiscing elit.">
|
||||
<meta itemprop="uploadDate" content="2013-10-01T08:00:00+08:00">
|
||||
<meta itemprop="duration" content="T3M35S">
|
||||
<iframe class="embed-responsive-item" width="560" height="315" src="https://www.youtube.com/embed/XzgjEBOlC8I" frameborder="0" allowfullscreen></iframe>
|
||||
</div>
|
||||
</div>
|
||||
#}
|
||||
|
||||
{% if travel_program.excluded is not empty or travel_program.classDescription is not empty %}
|
||||
<h2>Nicht eingeschlossene Leistungen</h2>
|
||||
{{ travel_program.classDescription|replace({'*': '<img src="/bundles/app/images/star-mini.png" >'})|raw }}
|
||||
<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 -->
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="content_tab_03">
|
||||
{#
|
||||
********* TERMINE UND PREISE *********
|
||||
#}
|
||||
|
||||
<div role="tabpanel" class="tab-pane" id="travel-dates-content-tab">
|
||||
|
||||
<h2>{{ travel_program.subtitle }}</h2>
|
||||
|
||||
|
|
@ -194,21 +264,47 @@
|
|||
</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 %}
|
||||
<a href="/uploads/maps/{{ travel_program.mapImage ~ travel_program.mapImageExt }}"
|
||||
target="_blank" rel="galerie" title="Karte zum Reiseablauf"
|
||||
>
|
||||
<img src="{{ travel_program.mapImage ~ travel_program.mapImageExt }}" width="100%"
|
||||
alt="Karte zum Reiseablauf"
|
||||
>
|
||||
</a>
|
||||
{% 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 }}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
</div> <!-- END tabpanel -->
|
||||
|
||||
</div>
|
||||
|
||||
<div class="">
|
||||
<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="active"><a href="#content_tab_01" aria-controls="content_tab_01" role="tab" data-toggle="tab">Reiseablauf</a></li>
|
||||
<li><a href="#content_tab_02" aria-controls="content_tab_02" role="tab" data-toggle="tab">Leistungen</a></li>
|
||||
<li><a href="#content_tab_03" aria-controls="content_tab_03" role="tab" data-toggle="tab">Termine <i class="fa fa-star"></i> Preise</a></li>
|
||||
<li><a href="#content_tab_04" aria-controls="content_tab_04" role="tab" data-toggle="tab">Karte</a></li>
|
||||
<li><a href="#content_tab_05" aria-controls="content_tab_05" role="tab" data-toggle="tab">Landinfos</a></li>
|
||||
<li><a href="#content_tab_07" aria-controls="content_tab_07" role="tab" data-toggle="tab">Team vor Ort</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{{ block('travel_program_tab_bar') }}
|
||||
</div>
|
||||
</section><!-- end section -->
|
||||
{% endblock body %}
|
||||
|
|
@ -2,16 +2,33 @@
|
|||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
<div class="hl2">{{ page.pagetitle ?? page.title }}</div>
|
||||
<div class="hl2">{{ page.pagetitle|default(page.title) }}</div>
|
||||
|
||||
{#{% 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 defined %}
|
||||
{% 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>
|
||||
|
||||
<section class="clearfix">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue