* Buchungsseite aus Suchmaschinen-Index entfernen

* ab-Preis in Box nur anzeigen, wenn Termine verfügbar
* Behoben: ab-Preis in Box berücksichtigt Rabatt nicht
* Behoben: Sidebar-Navigation wird auf manchen Seiten nicht angezeigt
* AGB Buchungsformular in Abh. des Reiseveranstalters anzeigen
* Behoben: Server-Fehler bei Zugriff auf Reisetermine, falls Zielflughafen im Reiseprogramm nicht gesetzt

git-svn-id: http://78.47.251.156/svn/dev/sterntours-3@3294 f459cee4-fb09-11de-96c3-f9c5f16c3c76
This commit is contained in:
uli 2017-02-16 06:43:19 +00:00
parent 6bb5c271c6
commit 4c2fb2fd08
12 changed files with 55 additions and 17 deletions

View file

@ -5,9 +5,11 @@
<!--[if (gte IE 9)|!(IE)]><!--><html lang="de"><!--<![endif]--> <!--[if (gte IE 9)|!(IE)]><!--><html lang="de"><!--<![endif]-->
<head> <head>
<meta charset="utf-8"> {% block metatags %}
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
{% endblock %}
<title>STERNTOURS</title> <title>STERNTOURS</title>

View file

@ -112,7 +112,7 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-6 text-left"> <div class="col-md-6 text-left">
<p>STERN TOURS © 2016</p> <p>STERN TOURS © {{ 'now'|date('Y') }}</p>
</div><!-- end col --> </div><!-- end col -->
<div class="col-md-6 text-right"> <div class="col-md-6 text-right">

View file

@ -7,7 +7,7 @@
{% if child_page.boxStar is not empty %} {% if child_page.boxStar is not empty %}
<div class="cstar_left">{{ child_page.boxStar|raw }}</div> <div class="cstar_left">{{ child_page.boxStar|raw }}</div>
{% endif %} {% endif %}
{% if child_page.travelProgram is not empty %} {% 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> <div class="cprice">ab {{ child_page.travelProgram.lowestPrice|number_format }} € p.P.</div>
{% endif %} {% endif %}
{% if child_page.boxDiscount is not empty %} {% if child_page.boxDiscount is not empty %}

View file

@ -1,6 +1,11 @@
{% extends 'base.html.twig' %} {% extends 'base.html.twig' %}
{% form_theme form 'default/form/theme.html.twig' %} {% form_theme form 'default/form/theme.html.twig' %}
{% block metatags %}
{{ parent() }}
<meta name="robots" content="noindex" />
{% endblock %}
{% block stylesheets %} {% block stylesheets %}
{{ parent() }} {{ parent() }}
{% stylesheets 'bundles/app/css/booking.css' filter='cssrewrite' %} {% stylesheets 'bundles/app/css/booking.css' filter='cssrewrite' %}
@ -339,8 +344,15 @@
{{ form_widget(form.acceptTerms) }} {{ form_widget(form.acceptTerms) }}
<label for="{{ form.acceptTerms.vars.id }}"> <label for="{{ form.acceptTerms.vars.id }}">
Ich habe alle Daten und Angaben auf Richtigkeit überprüft. Ich habe die Ich habe alle Daten und Angaben auf Richtigkeit überprüft. Ich habe die
<a href="#">Allgemeinen Geschäftsbedingungen des Reiseveranstalters</a> SKR <a href="/uploads/{{ travel_program.organizer.fileName }}">
sowie die <a href="#">Allgemeinen Geschäftsbedingungen des Reisevermittlers</a> Allgemeinen Geschäftsbedingungen des Reiseveranstalters
</a> {{ travel_program.organizer.name }}
{% if travel_program.isMediated %}
sowie die
<a href="/uploads/{{ mediator_terms_filename }}">
Allgemeinen Geschäftsbedingungen des Reisevermittlers
</a>
{% endif %}
gelesen und akzeptiert. Zugleich erkenne ich diese für alle Reiseteilnehmer an. gelesen und akzeptiert. Zugleich erkenne ich diese für alle Reiseteilnehmer an.
</label> </label>
{{ form_errors(form.acceptTerms) }} {{ form_errors(form.acceptTerms) }}

View file

@ -1,8 +1,10 @@
{% extends 'base.html.twig' %} {% extends 'base.html.twig' %}
{#
{% block nav_sidebar_widget %} {% block nav_sidebar_widget %}
{% include 'default/components/sidebar/navSidebarWidget.html.twig' %} {% include 'default/components/sidebar/navSidebarWidget.html.twig' %}
{% endblock %} {% endblock %}
#}
{% block body %} {% block body %}
<section class="clearfix"> <section class="clearfix">

View file

@ -179,6 +179,7 @@
<td data-title=""> <td data-title="">
<a href="{{ page.urlPath ~ '/buchen?nr=' ~ travel_date.name }}" <a href="{{ page.urlPath ~ '/buchen?nr=' ~ travel_date.name }}"
class="btn btn-primary" class="btn btn-primary"
rel="nofollow"
> >
Buchungsformular Buchungsformular
</a> </a>

View file

@ -146,7 +146,10 @@ class BookingController extends Controller
'price_type_by_id' => $this->priceTypeById, 'price_type_by_id' => $this->priceTypeById,
'breadcrumb_entries' => $breadcrumbEntries, 'breadcrumb_entries' => $breadcrumbEntries,
'summary' => $htmlSummary, 'summary' => $htmlSummary,
'total_price' => $totalPrice 'total_price' => $totalPrice,
'mediator_terms_filename' => $travelProgram->getIsMediated()
? $this->getDoctrine()->getRepository('AppBundle:TravelOrganizer')->find(1)->getFileName()
: null
]); ]);
} }
elseif ($action == '/berechne-gesamtpreis') elseif ($action == '/berechne-gesamtpreis')

View file

@ -61,9 +61,11 @@ class DefaultController extends Controller
// #WORKAROUND Special navigation logic here adapted from the old website: Don't show child entries // #WORKAROUND Special navigation logic here adapted from the old website: Don't show child entries
// #TODO Only applies at level 0 // #TODO Only applies at level 0
/*
'nav_pages' => $page->getChildren(), 'nav_pages' => $page->getChildren(),
'nav_child_pages' => [], 'nav_child_pages' => [],
'nav_open_node' => null 'nav_open_node' => null
*/
]); ]);
} }
@ -160,8 +162,16 @@ class DefaultController extends Controller
if ($page->getHasChildren()) if ($page->getHasChildren())
{ {
$view['nav_pages'] = $pageRepo->getSiblings($page); if ($page->getLvl() == 0)
$view['nav_child_pages'] = $pageRepo->getChildren($page); {
$view['nav_pages'] = $page->getChildren();
$view['nav_child_pages'] = [];
}
else
{
$view['nav_pages'] = $pageRepo->getSiblings($page);
$view['nav_child_pages'] = $page->getChildren();
}
$view['nav_open_node'] = $page; $view['nav_open_node'] = $page;
} }
else else
@ -170,7 +180,14 @@ class DefaultController extends Controller
if ($parent) if ($parent)
{ {
$view['nav_pages'] = $pageRepo->getSiblings($parent); $view['nav_pages'] = $pageRepo->getSiblings($parent);
$view['nav_child_pages'] = $pageRepo->getSiblings($page); if (empty($view['nav_pages']))
{
$view['nav_pages'] = $pageRepo->getSiblings($page);
}
else
{
$view['nav_child_pages'] = $pageRepo->getSiblings($page);
}
$view['nav_open_node'] = $parent; $view['nav_open_node'] = $parent;
} }
else else

View file

@ -51,7 +51,7 @@ class PageRepository extends NestedTreeRepository
$parent = $page->getParent(); $parent = $page->getParent();
if (!$parent) if (!$parent)
{ {
// #TODO Return all root pages // On purpose, we don't treat root pages as if they were siblings
return []; return [];
} }
$siblings = $parent->getChildren(); $siblings = $parent->getChildren();

View file

@ -241,7 +241,7 @@ final class TravelDate
if ($price->getPriceTypeId() == 3) if ($price->getPriceTypeId() == 3)
{ {
// Use double room if available (#1076) // Use double room if available (#1076)
return /*$price->getEffectiveDiscountPrice() ??*/ $price->getEffectivePrice(); return $price->getEffectiveDiscountPrice() ?? $price->getEffectivePrice();
} }
if ($lowest < 0 || $price->getEffectivePrice() < 0) if ($lowest < 0 || $price->getEffectivePrice() < 0)
{ {

View file

@ -290,6 +290,10 @@ class TravelPeriodRepository extends \Doctrine\ORM\EntityRepository
$flightPeriodByKey = null; $flightPeriodByKey = null;
if (!$program->getIsMediated()) if (!$program->getIsMediated())
{ {
if (!$program->getTravelArrivalPoint())
{
return [];
}
if ($flags & self::TD_QUERY_VIRTUAL) if ($flags & self::TD_QUERY_VIRTUAL)
{ {
// If virtual entries are included, we have to fetch all flight periods, because we don't know // If virtual entries are included, we have to fetch all flight periods, because we don't know

View file

@ -21,14 +21,11 @@ class KernelControllerListener
{ {
private $em; private $em;
private $controllerResolver; private $controllerResolver;
private $router;
public function __construct(EntityManager $entityManager, ControllerResolverInterface $controllerResolver, public function __construct(EntityManager $entityManager, ControllerResolverInterface $controllerResolver)
Router $router)
{ {
$this->em = $entityManager; $this->em = $entityManager;
$this->controllerResolver = $controllerResolver; $this->controllerResolver = $controllerResolver;
$this->router = $router;
} }
public function onKernelController(FilterControllerEvent $event) public function onKernelController(FilterControllerEvent $event)