* Update auf Twig 2 (notwendig, da block() bei Twig 1 '' statt null zurückgibt. Somit kann nicht unterschieden werden, ob ein Block nicht definiert wurde oder leer ist; das ist wiederum notwendig, damit Templates die Blöcke in sidebar.html.twig auch mit leerem Inhalt überschreiben können)
* Symfony-Update * Behoben: Reisemagazin/-führer Slider zeigt deaktivierte Seiten an; Begrenzung auf 3 Einträge entfernt * Behoben: Angebote werden nicht überall angezeigt * Land einer Seite von übergeordneten Seiten erben (getEffectiveCountry()) * Seitentemplate "offers": Diese Seiten haben unten im Body ein Angebots-Karusell * Templates ohne Controller action werden jetzt unterstützt. Falls keine Action existiert, wird einfach ein gleichnamiges twig-Template gerendert git-svn-id: http://78.47.251.156/svn/dev/sterntours-3@3303 f459cee4-fb09-11de-96c3-f9c5f16c3c76
This commit is contained in:
parent
bf69f20a50
commit
ce292748fb
14 changed files with 662 additions and 288 deletions
|
|
@ -106,8 +106,11 @@
|
|||
<div class="row">
|
||||
|
||||
{% include 'default/components/sidebar.html.twig' with {
|
||||
nav_sidebar_widget_block: block('nav_sidebar_widget'),
|
||||
search_sidebar_widget_block: block('search_sidebar_widget'),
|
||||
nav_sidebar_widget_block: block('nav_sidebar_widget') ?? null,
|
||||
search_sidebar_widget_block: block('search_sidebar_widget') ?? null,
|
||||
travel_guide_sidebar_widget_block: block('travel_guide_sidebar_widget') ?? null,
|
||||
travel_magazine_sidebar_widget_block: block('travel_magazine_sidebar_widget') ?? null,
|
||||
offers_sidebar_widget_block: block('offers_sidebar_widget') ?? null,
|
||||
} %}
|
||||
|
||||
<div id="content" class="col-md-9 col-sm-8 col-xs-12">
|
||||
|
|
|
|||
|
|
@ -75,11 +75,6 @@
|
|||
Reiseführer
|
||||
</a>
|
||||
</li>
|
||||
<li itemprop="name">
|
||||
<a itemprop="url" href="/docs/urlaubsinfos.html" title="Reiseführer">
|
||||
Reiseführer
|
||||
</a>
|
||||
</li>
|
||||
<li itemprop="name">
|
||||
<a itemprop="url" href="/docs/reisemagazin.html" title="Reisemagazin">
|
||||
Reisemagazin
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
{# @var page \AppBundle\Entity\Page #}
|
||||
<div id="sidebar" class="col-md-3 col-sm-4 col-xs-12 hidden-xs">
|
||||
|
||||
{% if show_search_sidebar_widget ?? true %}
|
||||
{% if search_sidebar_widget_block is empty %}
|
||||
{% if search_sidebar_widget_block is null %}
|
||||
{% if search_form is defined %}
|
||||
{{ include('default/components/sidebar/searchSidebarWidget.html.twig') }}
|
||||
{% elseif page is defined %}
|
||||
|
|
@ -13,7 +14,7 @@
|
|||
{% endif %}
|
||||
|
||||
{% if show_nav_sidebar_widget ?? true and page is defined %}
|
||||
{% if nav_sidebar_widget_block is empty %}
|
||||
{% if nav_sidebar_widget_block is null %}
|
||||
{{ render(controller('AppBundle:Component:navSidebarWidget', {page: page})) }}
|
||||
{% else %}
|
||||
{{ nav_sidebar_widget_block|raw }}
|
||||
|
|
@ -41,22 +42,34 @@
|
|||
<span itemprop="rating" itemscope itemtype="https://data-vocabulary.org/Rating">
|
||||
<span itemprop="average">4.90</span> / <span itemprop="best">5</span>
|
||||
</span>
|
||||
bei <span itemprop="count">66</span> Bewertungen
|
||||
bei <span itemprop="count">78</span> Bewertungen
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- end widget -->
|
||||
|
||||
{% if (show_travel_guide_sidebar_widget ?? true) and page is defined and page.country is not empty %}
|
||||
{{ render(controller('AppBundle:Component:travelGuideSidebarWidget', {country: page.country})) }}
|
||||
{% if (show_travel_guide_sidebar_widget ?? true) and page is defined and page.effectiveCountry is not empty %}
|
||||
{% if travel_guide_sidebar_widget_block is null %}
|
||||
{{ render(controller('AppBundle:Component:travelGuideSidebarWidget', {country: page.effectiveCountry})) }}
|
||||
{% else %}
|
||||
{{ travel_guide_sidebar_widget_block|raw }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if (show_travel_magazine_sidebar_widget ?? true) and page is defined and page.country is not empty %}
|
||||
{{ render(controller('AppBundle:Component:travelMagazineSidebarWidget', {country: page.country})) }}
|
||||
{% if (show_travel_magazine_sidebar_widget ?? true) and page is defined and page.effectiveCountry is not empty %}
|
||||
{% if travel_magazine_sidebar_widget_block is null %}
|
||||
{{ render(controller('AppBundle:Component:travelMagazineSidebarWidget', {country: page.effectiveCountry})) }}
|
||||
{% else %}
|
||||
{{ travel_magazine_sidebar_widget_block|raw }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if (show_offers_sidebar_widget ?? true) and page is defined and page.country is not empty %}
|
||||
{{ render(controller('AppBundle:Component:offersSidebarWidget', {country: page.country})) }}
|
||||
{% if (show_offers_sidebar_widget ?? true) %}
|
||||
{% if offers_sidebar_widget_block is null %}
|
||||
{{ render(controller('AppBundle:Component:offersSidebarWidget', {country: page.effectiveCountry ?? null})) }}
|
||||
{% else %}
|
||||
{{ offers_sidebar_widget_block|raw }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
</div><!-- end col -->
|
||||
14
trunk/app/Resources/views/default/pages/cms/offers.html.twig
Normal file
14
trunk/app/Resources/views/default/pages/cms/offers.html.twig
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{# @var page \AppBundle\Entity\Page #}
|
||||
{% extends get_base_template() %}
|
||||
|
||||
{% block offers_sidebar_widget %}{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<section class="clearfix">
|
||||
{{ page.content|raw|keywords }}
|
||||
</section>
|
||||
|
||||
<section class="clearfix">
|
||||
{{ render(controller('AppBundle:Component:offersCarousel', {country: page.effectiveCountry})) }}
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
|
@ -19,7 +19,7 @@
|
|||
<section class="clearfix">
|
||||
<div class="hl2">Alle Reisekategorien auf einem Blick</div>
|
||||
|
||||
{% include 'default/components/multiPageBoxCarousel.html.twig' with {pages: country_pages} %}
|
||||
{{ render(controller('AppBundle:Component:offersCarousel')) }}
|
||||
</section><!-- end section -->
|
||||
|
||||
<section class="clearfix">
|
||||
|
|
|
|||
|
|
@ -25,7 +25,8 @@
|
|||
"symfony/stopwatch": "^3.1",
|
||||
"symfony/assetic-bundle": "^2.8",
|
||||
"stof/doctrine-extensions-bundle": "^1.2",
|
||||
"doctrine/doctrine-migrations-bundle": "^1.2"
|
||||
"doctrine/doctrine-migrations-bundle": "^1.2",
|
||||
"twig/twig": "^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"sensio/generator-bundle": "^3.0",
|
||||
|
|
@ -49,7 +50,7 @@
|
|||
},
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "5.5.9"
|
||||
"php": "7.0"
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
|
|
|
|||
576
trunk/composer.lock
generated
576
trunk/composer.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -17,6 +17,8 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
|||
* Controller for CMS pages. CMS pages are represented by Page instances (i.e. entries of the page database table).
|
||||
* The template property of a Page object defines the action method below. If a travel program is assigned then the
|
||||
* travelProgramAction is used. If no template is specified, then the defaultAction is used.
|
||||
* If there is no action method, the defaultAction is called and the template name is passed as an argument. A twig
|
||||
* file with this template will be rendered in this case.
|
||||
*
|
||||
* The view templates can be found pages/cms.
|
||||
*
|
||||
|
|
@ -34,9 +36,9 @@ class CmsController extends Controller
|
|||
return $this->getDoctrine()->getManager();
|
||||
}
|
||||
|
||||
public function defaultAction(Page $page)
|
||||
public function defaultAction(Page $page, $template = 'default')
|
||||
{
|
||||
return $this->render('default/pages/cms/default.html.twig', [
|
||||
return $this->render('default/pages/cms/'. $template .'.html.twig', [
|
||||
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||
'page' => $page,
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ class ComponentController extends Controller
|
|||
$rootPage = $repo->find(13);
|
||||
$pages = $repo->getChildrenQueryBuilder($rootPage)
|
||||
->andWhere('IDENTITY(node.country) = '. $country->getId())
|
||||
->setMaxResults(3)
|
||||
->andWhere('node.status > 0')
|
||||
->getQuery()
|
||||
->execute()
|
||||
;
|
||||
|
|
@ -142,7 +142,7 @@ class ComponentController extends Controller
|
|||
$rootPage = $repo->find(2803);
|
||||
$pages = $repo->getChildrenQueryBuilder($rootPage)
|
||||
->andWhere('IDENTITY(node.country) = '. $country->getId())
|
||||
->setMaxResults(3)
|
||||
->andWhere('node.status > 0')
|
||||
->getQuery()
|
||||
->execute()
|
||||
;
|
||||
|
|
@ -152,12 +152,27 @@ class ComponentController extends Controller
|
|||
]);
|
||||
}
|
||||
|
||||
public function offersSidebarWidgetAction(TravelCountry $country)
|
||||
public function offersSidebarWidgetAction(TravelCountry $country = null)
|
||||
{
|
||||
$pages = $this->getEntityManager()->getRepository('AppBundle:Page')->findWithTravelProgramsOfCountry($country);
|
||||
return $this->render('default/components/sidebar/pageSliderSidebarWidget.html.twig', [
|
||||
'slider_title' => 'Angebote',
|
||||
'pages' => $pages
|
||||
'pages' => $this->getOffersByCountry($country),
|
||||
]);
|
||||
}
|
||||
|
||||
public function offersCarouselAction(TravelCountry $country = null)
|
||||
{
|
||||
return $this->render('default/components/multiPageBoxCarousel.html.twig', [
|
||||
'pages' => $this->getOffersByCountry($country),
|
||||
]);
|
||||
}
|
||||
|
||||
private function getOffersByCountry(TravelCountry $country = null)
|
||||
{
|
||||
$repo = $this->getDoctrine()->getRepository('AppBundle:Page');
|
||||
return $country === null
|
||||
? $repo->findOffers()
|
||||
: $repo->findWithTravelProgramsOfCountry($country)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,9 +40,9 @@ class DefaultController extends Controller
|
|||
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||
'canonical_url' => Util::getBaseUrl() .'/',
|
||||
'show_search_sidebar_widget' => false,
|
||||
'show_offers_sidebar_widget' => false,
|
||||
'search_form' => $this->createForm(SearchRequestType::class)->createView(),
|
||||
'tt_search_form' => $this->createForm(TtSearchRequestType::class)->createView(),
|
||||
'offers' => $this->getEntityManager()->getRepository('AppBundle:Page')->findOffers(),
|
||||
'country_pages' => $this->getEntityManager()->getRepository('AppBundle:Page')->findCountryPages(),
|
||||
]);
|
||||
}
|
||||
|
|
@ -202,6 +202,27 @@ class DefaultController extends Controller
|
|||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/sitemap")
|
||||
*/
|
||||
public function sitemapAction()
|
||||
{
|
||||
$repo = $this->getDoctrine()->getRepository('AppBundle:Page');
|
||||
$rootNodes = $repo->getRootNodesQueryBuilder()
|
||||
->andWhere('node.status = 1')
|
||||
->andWhere('node.lvl = 0')
|
||||
->getQuery()
|
||||
->execute()
|
||||
;
|
||||
//$rootNodes[0]->
|
||||
/** @var Page $node */
|
||||
foreach ($rootNodes as $rootNode)
|
||||
{
|
||||
// #TODO
|
||||
$repo->childrenHierarchy($rootNode);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Suche Kindknoten
|
||||
Für jeden Kindknoten
|
||||
|
|
|
|||
|
|
@ -1199,4 +1199,20 @@ class Page
|
|||
{
|
||||
return $this->lft != null && $this->rgt != null && $this->rgt - $this->lft > 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return TravelCountry|null The country. If no country is set, trace the ancestor page nodes for a country.
|
||||
*/
|
||||
public function getEffectiveCountry()
|
||||
{
|
||||
$node = $this;
|
||||
do
|
||||
{
|
||||
if ($node->getCountry())
|
||||
{
|
||||
return $node->getCountry();
|
||||
}
|
||||
} while ($node = $node->getParent());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -135,13 +135,26 @@ class KernelControllerListener
|
|||
{
|
||||
$handler = $node->getTemplate() ? ucfirst($node->getTemplate()) : 'Default';
|
||||
$request->attributes->set('_controller', 'AppBundle:Cms:'. $handler);
|
||||
if ($node->getTemplate())
|
||||
{
|
||||
try
|
||||
{
|
||||
$controller = $this->controllerResolver->getController($request);
|
||||
}
|
||||
catch (\LogicException $e)
|
||||
{
|
||||
// If there is no controller action, call the default action and pass the template name
|
||||
$request->attributes->set('_controller', 'AppBundle:Cms:Default');
|
||||
$request->attributes->set('template', $node->getTemplate());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
$event->setController($this->controllerResolver->getController($request));
|
||||
$event->setController($controller ?? $this->controllerResolver->getController($request));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -780,7 +780,11 @@ class SymfonyRequirements extends RequirementCollection
|
|||
{
|
||||
$size = ini_get('realpath_cache_size');
|
||||
$size = trim($size);
|
||||
$unit = strtolower(substr($size, -1, 1));
|
||||
$unit = '';
|
||||
if (!ctype_digit($size)) {
|
||||
$unit = strtolower(substr($size, -1, 1));
|
||||
$size = (int) substr($size, 0, -1);
|
||||
}
|
||||
switch ($unit) {
|
||||
case 'g':
|
||||
return $size * 1024 * 1024 * 1024;
|
||||
|
|
|
|||
|
|
@ -38,9 +38,216 @@ $hasMinorProblems = (bool) count($minorProblems);
|
|||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="robots" content="noindex,nofollow" />
|
||||
<title>Symfony Configuration Checker</title>
|
||||
<link rel="stylesheet" href="bundles/framework/css/structure.css" media="all" />
|
||||
<link rel="stylesheet" href="bundles/framework/css/body.css" media="all" />
|
||||
<style type="text/css">
|
||||
<style>
|
||||
/* styles copied from symfony framework bundle */
|
||||
html {
|
||||
background: #eee;
|
||||
}
|
||||
body {
|
||||
font: 11px Verdana, Arial, sans-serif;
|
||||
color: #333;
|
||||
}
|
||||
.sf-reset, .sf-reset .block, .sf-reset #message {
|
||||
margin: auto;
|
||||
}
|
||||
img {
|
||||
border: 0;
|
||||
}
|
||||
.clear {
|
||||
clear: both;
|
||||
height: 0;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
.clear-fix:after {
|
||||
content: "\0020";
|
||||
display: block;
|
||||
height: 0;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
}
|
||||
.clear-fix {
|
||||
display: inline-block;
|
||||
}
|
||||
* html .clear-fix {
|
||||
height: 1%;
|
||||
}
|
||||
.clear-fix {
|
||||
display: block;
|
||||
}
|
||||
.header {
|
||||
padding: 30px 30px 20px 30px;
|
||||
}
|
||||
.header-logo {
|
||||
float: left;
|
||||
}
|
||||
.search {
|
||||
float: right;
|
||||
padding-top: 20px;
|
||||
}
|
||||
.search label {
|
||||
line-height: 28px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.search input {
|
||||
width: 195px;
|
||||
font-size: 12px;
|
||||
border: 1px solid #dadada;
|
||||
background: #fff url(data:image/gif;base64,R0lGODlhAQAFAKIAAPX19e/v7/39/fr6+urq6gAAAAAAAAAAACH5BAAAAAAALAAAAAABAAUAAAMESAEjCQA7) repeat-x left top;
|
||||
padding: 5px 6px;
|
||||
color: #565656;
|
||||
}
|
||||
.search input[type="search"] {
|
||||
-webkit-appearance: textfield;
|
||||
}
|
||||
#content {
|
||||
width: 970px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
#content pre {
|
||||
white-space: normal;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
/*
|
||||
Copyright (c) 2010, Yahoo! Inc. All rights reserved.
|
||||
Code licensed under the BSD License:
|
||||
http://developer.yahoo.com/yui/license.html
|
||||
version: 3.1.2
|
||||
build: 56
|
||||
*/
|
||||
.sf-reset div,.sf-reset dl,.sf-reset dt,.sf-reset dd,.sf-reset ul,.sf-reset ol,.sf-reset li,.sf-reset h1,.sf-reset h2,.sf-reset h3,.sf-reset h4,.sf-reset h5,.sf-reset h6,.sf-reset pre,.sf-reset code,.sf-reset form,.sf-reset fieldset,.sf-reset legend,.sf-reset input,.sf-reset textarea,.sf-reset p,.sf-reset blockquote,.sf-reset th,.sf-reset td{margin:0;padding:0;}.sf-reset table{border-collapse:collapse;border-spacing:0;}.sf-reset fieldset,.sf-reset img{border:0;}.sf-reset address,.sf-reset caption,.sf-reset cite,.sf-reset code,.sf-reset dfn,.sf-reset em,.sf-reset strong,.sf-reset th,.sf-reset var{font-style:normal;font-weight:normal;}.sf-reset li{list-style:none;}.sf-reset caption,.sf-reset th{text-align:left;}.sf-reset h1,.sf-reset h2,.sf-reset h3,.sf-reset h4,.sf-reset h5,.sf-reset h6{font-size:100%;font-weight:normal;}.sf-reset q:before,.sf-reset q:after{content:'';}.sf-reset abbr,.sf-reset acronym{border:0;font-variant:normal;}.sf-reset sup{vertical-align:text-top;}.sf-reset sub{vertical-align:text-bottom;}.sf-reset input,.sf-reset textarea,.sf-reset select{font-family:inherit;font-size:inherit;font-weight:inherit;}.sf-reset input,.sf-reset textarea,.sf-reset select{font-size:100%;}.sf-reset legend{color:#000;}
|
||||
.sf-reset abbr {
|
||||
border-bottom: 1px dotted #000;
|
||||
cursor: help;
|
||||
}
|
||||
.sf-reset p {
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.sf-reset strong {
|
||||
color: #313131;
|
||||
font-weight: bold;
|
||||
}
|
||||
.sf-reset a {
|
||||
color: #6c6159;
|
||||
}
|
||||
.sf-reset a img {
|
||||
border: none;
|
||||
}
|
||||
.sf-reset a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.sf-reset em {
|
||||
font-style: italic;
|
||||
}
|
||||
.sf-reset h2,
|
||||
.sf-reset h3 {
|
||||
font-weight: bold;
|
||||
}
|
||||
.sf-reset h1 {
|
||||
font-family: Georgia, "Times New Roman", Times, serif;
|
||||
font-size: 20px;
|
||||
color: #313131;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.sf-reset li {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
.sf-reset .block {
|
||||
-moz-border-radius: 16px;
|
||||
-webkit-border-radius: 16px;
|
||||
border-radius: 16px;
|
||||
margin-bottom: 20px;
|
||||
background-color: #FFFFFF;
|
||||
border: 1px solid #dfdfdf;
|
||||
padding: 40px 50px;
|
||||
word-break: break-all;
|
||||
}
|
||||
.sf-reset h2 {
|
||||
font-size: 16px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
.sf-reset li a {
|
||||
background: none;
|
||||
color: #868686;
|
||||
text-decoration: none;
|
||||
}
|
||||
.sf-reset li a:hover {
|
||||
background: none;
|
||||
color: #313131;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.sf-reset ol {
|
||||
padding: 10px 0;
|
||||
}
|
||||
.sf-reset ol li {
|
||||
list-style: decimal;
|
||||
margin-left: 20px;
|
||||
padding: 2px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.sf-reset ol ol li {
|
||||
list-style-position: inside;
|
||||
margin-left: 0;
|
||||
white-space: nowrap;
|
||||
font-size: 12px;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.sf-reset li .selected {
|
||||
background-color: #ffd;
|
||||
}
|
||||
.sf-button {
|
||||
display: -moz-inline-box;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
border: 0;
|
||||
background: transparent none;
|
||||
text-transform: uppercase;
|
||||
cursor: pointer;
|
||||
font: bold 11px Arial, Helvetica, sans-serif;
|
||||
}
|
||||
.sf-button span {
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
height: 28px;
|
||||
float: left;
|
||||
}
|
||||
.sf-button .border-l {
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
height: 28px;
|
||||
float: left;
|
||||
padding: 0 0 0 7px;
|
||||
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAcCAYAAACtQ6WLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQtJREFUeNpiPHnyJAMakARiByDWYEGT8ADiYGVlZStubm5xlv///4MEQYoKZGRkQkRERLRYWVl5wYJQyXBZWdkwCQkJUxAHKgaWlAHSLqKiosb//v1DsYMFKGCvoqJiDmQzwXTAJYECulxcXNLoumCSoszMzDzoumDGghQwYZUECWIzkrAkSIIGOmlkLI10AiX//P379x8jIyMTNmPf/v79+ysLCwsvuiQoNi5//fr1Kch4dAyS3P/gwYMTQBP+wxwHw0xA4gkQ73v9+vUZdJ2w1Lf82bNn4iCHCQoKasHsZw4ODgbRIL8c+/Lly5M3b978Y2dn5wC6npkFLXnsAOKLjx49AmUHLYAAAwBoQubG016R5wAAAABJRU5ErkJggg==) no-repeat top left;
|
||||
}
|
||||
.sf-button .border-r {
|
||||
padding: 0 7px 0 0;
|
||||
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAcCAYAAACtQ6WLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAR1JREFUeNpiPHnyZCMDA8MNID5gZmb2nAEJMH7//v3N169fX969e/cYkL8WqGAHXPLv37//QYzfv39/fvPmzbUnT56sAXInmJub/2H5/x8sx8DCwsIrISFhDmQyPX78+CmQXs70798/BmQsKipqBNTgdvz4cWkmkE5kDATMioqKZkCFdiwg1eiAi4tLGqhQF24nMmBmZuYEigth1QkEbEBxTlySYPvJkwSJ00AnjYylgU6gxB8g/oFVEphkvgLF32KNMmCCewYUv4qhEyj47+HDhyeBzIMYOoEp8CxQw56wsLAncJ1//vz5/P79+2svX74EJc2V4BT58+fPd8CE/QKYHMGJOiIiAp6oWW7evDkNSF8DZYfIyEiU7AAQYACJ2vxVdJW4eQAAAABJRU5ErkJggg==) right top no-repeat;
|
||||
}
|
||||
.sf-button .btn-bg {
|
||||
padding: 0 14px;
|
||||
color: #636363;
|
||||
line-height: 28px;
|
||||
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAcCAYAAACgXdXMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAClJREFUeNpiPnny5EKGf//+/Wf6//8/A4QAcrGzKCZwGc9sa2urBBBgAIbDUoYVp9lmAAAAAElFTkSuQmCC) repeat-x top left;
|
||||
}
|
||||
.sf-button:hover .border-l,
|
||||
.sf-button-selected .border-l {
|
||||
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAcCAYAAACtQ6WLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAR9JREFUeNpi/P//PwMyOHfunDqQSgNiexZkibNnzxYBqZa3HOs5v7PcYQBLnjlzhg1IbfzIdsTjA/t+ht9Mr8GKwZL//v3r+sB+0OMN+zqIEf8gFMvJkyd1gXTOa9YNDP//otrPAtSV/Jp9HfPff78Z0AEL0LUeXxivMfxD0wXTqfjj/2ugkf+wSrL9/YtpJEyS4S8WI5Ek/+GR/POPFjr//cenE6/kP9q4Fo/kr39/mdj+M/zFkGQCSj5i+ccPjLJ/GBgkuYOHQR1sNDpmAkb2LBmWwL///zKCIxwZM0VHR18G6p4uxeLLAA4tJMwEshiou1iMxXaHLGswA+t/YbhORuQUv2DBAnCifvxzI+enP3dQJUFg/vz5sOzgBBBgAPxX9j0YnH4JAAAAAElFTkSuQmCC) no-repeat top left;
|
||||
}
|
||||
.sf-button:hover .border-r,
|
||||
.sf-button-selected .border-r {
|
||||
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAcCAYAAACtQ6WLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAT5JREFUeNpiPHv27BkGBoaDQDzLyMjoJgMSYHrM3WX8hn1d0f///88DFRYhSzIuv2X5H8Rg/SfKIPDTkYH/l80OINffxMTkF9O/f/8ZQPgnwyuGl+wrGd6x7vf49+9fO9jYf3+Bkkj4NesmBqAV+SdPntQC6vzHgIz//gOawbqOGchOxtAJwp8Zr4F0e7D8/fuPAR38/P8eZIo0yz8skv8YvoIk+YE6/zNgAyD7sRqLkPzzjxY6/+HS+R+fTkZ8djLh08lCUCcuSWawJGbwMTGwg7zyBatX2Bj5QZKPsBrLzaICktzN8g/NWEYGZgYZjoC/wMiei5FMpFh8QPSU6Ojoy3Cd7EwiDBJsDgxiLNY7gLrKQGIsHAxSDHxAO2TZ/b8D+TVxcXF9MCtYtLiKLgDpfUDVsxITE1GyA0CAAQA2E/N8VuHyAAAAAABJRU5ErkJggg==) right top no-repeat;
|
||||
}
|
||||
.sf-button:hover .btn-bg,
|
||||
.sf-button-selected .btn-bg {
|
||||
color: #FFFFFF;
|
||||
text-shadow:0 1px 1px #6b9311;
|
||||
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAcCAIAAAAvP0KbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEFJREFUeNpiPnv2LNMdvlymf///M/37B8R/QfQ/MP33L4j+B6Qh7L9//sHpf2h8MA1V+w/KRjYLaDaLCU8vQIABAFO3TxZriO4yAAAAAElFTkSuQmCC) repeat-x top left;
|
||||
}
|
||||
|
||||
/* styles copied from bundles/sensiodistribution/webconfigurator/css/install.css */
|
||||
body {
|
||||
font-size: 14px;
|
||||
|
|
@ -63,7 +270,7 @@ $hasMinorProblems = (bool) count($minorProblems);
|
|||
}
|
||||
.sf-reset ul a,
|
||||
.sf-reset ul a:hover {
|
||||
background: url(../images/blue-arrow.png) no-repeat right 6px;
|
||||
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAYAAAAx8TU7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFdJREFUeNpiYACBjjOhDEiACSggCKTLgXQ5TJARqhIkcReIKxgqTGYxwvV0nDEGkmeAOIwJySiQ4HsgvseIpGo3ELsCtZ9lRDIvDCiwhwHJPEFkJwEEGACq6hdnax8y1AAAAABJRU5ErkJggg==) no-repeat right 7px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
.sf-reset ul, ol {
|
||||
|
|
@ -126,7 +333,7 @@ $hasMinorProblems = (bool) count($minorProblems);
|
|||
<div id="content">
|
||||
<div class="header clear-fix">
|
||||
<div class="header-logo">
|
||||
<img src="bundles/framework/images/logo_symfony.png" alt="Symfony" />
|
||||
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALYAAAA+CAMAAACxzRGDAAAAUVBMVEX////Ly8yko6WLioxkYmVXVVkwLjLl5eWxsLJKSEzy8vJxcHLY2Ni+vb89Oz9XVVh+fH+Yl5n///+xsbLY2Nlxb3KkpKWXlph+fX+LiYy+vr/IZP61AAAAAXRSTlMAQObYZgAABRBJREFUeNrVmtuWoyAQRS1FEEQSzQU7//+hYxUiXsKQZLJWM+chsUloN+WhCuguYoKyYqzmvGasKqH4HyRKxndipcgcumH8qViTM7TkUclcwaHmf5XM0eWq4km1KjdqXfMXJHVe1J3hL8lk5fCGv6wmT+o0d87U+XNrk0Y9nfv+7LM6ZJH5ZBL6LAbSxQ3Q5FDr22Skr8PQSy4n7isnsQxSX4r6pobhjCHHeDNOKrO3yGmCvZOjV9jmt8ulTdXFKdbKLNh+kOMvBzuVRa4Y7MUsdEUSWQe7xxCfZmcwjHU83LqzFvSbJQOXQvptbPnEFoyZtUUGwTeKuLuTHyT1kaP0P6cR01OKvv448gtl61dqZfmJezQmU/t+1R2fJLtBwXV6uWGwB9SZPrn0fKO2WAvQN1PUhHjTom3xgXYTkvlSKHs19OhslETq6X3HrXbjt8XbGj9b4Gi+lUAnL6XxQj8Pyk9N4Bt1xUrsLVN/3isYMug8rODMdbgOvoHs8uAb2fcANIAzkKCLYy+AXRpSU8sr1r4P67xhLgPp7vM32zlqt7Bhq2fI1Hwp+VgANxok59SsGV3oqdUL0YVDMRY7Yg8QLbVUU4NZNoOq5hJHuxEM28Sh/IyUZ8D3reR+yc58EGvOy2U0HQL6G9V+kWyEWHmzaMx6t4o9RhOm/riUiYrzqij4Ptqkn7AaCXqc+F47m04ahfde7YIz8RHEBN6BdVwdIGRVdNbKqYu1Hc0x0wBY4wqC8+XUgBGnj81SZsQB+0yAS1x/BlI/6ebHHk0lauQLuPDpu6EwAVJ7T0rl2uXa23jcqNyOZekhqYHRz3JOANrF4wCCmEs1f9D1lUe0n4NAATed80Y5e0Q7CO2TezM/BR6wKdgQzKbCF4uOQC3Bk0fKAzbFlyRWg3gksA/gmm7eOjrpaKX7fHlEW2xLbE6GZsPiCiShVzN7RG2xTz2G+OJtEqzdJ7APxy3MrSsV0VukXbKMp9lhs5BN6dr3CN+sySUaoxGwfRUM3I/gdPYONgVU+PLX4vUWm32AvUySarbONvcpV2RQEPKKjEBHFk01kQDGRblnn8ZuE9g+JUl8OWAPbkFK2K6JxhJVvF47FzYYnAN22ttwxKYCoH36rheEB7KG/HF/YUaa2G5JF+55tpyrl7B1WHM39HuP2N2EXPl1UBu8vbj4OjvD+NoTE4ssF+ScARgaJY1N7+u8bY/Y9BSM5PKwJbvMVab32YP5FB5TtcYVrGoASolVLTzI7kVsYVxRtAb5n2JXq1vCdtd47XtYItynrN0835PasLg0y13aOPbmPI+on2Lr9e5tjSHvgkAvclUjL3Fsdaw03IzgTR62yYClk7QMah4IQ0qSsoYYbOix6zJR1ZGDNMOY3Bb6W5S6jiyovep3t7bUPyoq7OkjYumrfESp8zSBc/OLosVf+nTnnKjsqR16++WDwpI8FxJWRFTlI6NKnqYJaL96TqjAbo9Toi5QiWBDcmfdFV+T8dkvFe5bItgstbM2X6QG2mVun+cazfRwOS0eiaeRRJKgLfc3BQAqfnhJyz8lfR6580SF/FXVu83Nz1xrrnFqqXL6Qxl47DNSm4RFflvN5sABDD8peouqLLKQXVdGbnqf+qIpOxON4ZyYdJEJ6sy4zS2c5eRPTT4Jyp46qDE5/ptAWqJOQ9e6yE82FXBbZCk1/tXVoshVoopE3CB0zmraI3nbqCJ/gW3ZMgtbC5nh/QHlOoOZBxQCRgAAAABJRU5ErkJggg==" alt="Symfony" />
|
||||
</div>
|
||||
|
||||
<div class="search">
|
||||
|
|
@ -134,7 +341,7 @@ $hasMinorProblems = (bool) count($minorProblems);
|
|||
<div class="form-row">
|
||||
|
||||
<label for="search-id">
|
||||
<img src="bundles/framework/images/grey_magnifier.png" alt="Search on Symfony website" />
|
||||
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAABUElEQVQoz2NgAIJ29iBdD0d7X2cPb+tY2f9MDMjgP2O2hKu7vS8CBlisZUNSMJ3fxRMkXO61wm2ue6I3iB1q8Z8ZriDZFCS03fm/wX+1/xp/TBo8QPxeqf+MUAW+QIFKj/+q/wX/c/3n/i/6Qd/bx943z/Q/K1SBI1D9fKv/AhCn/Wf5L5EHdFGKw39OqAIXoPpOMziX4T9/DFBBnuN/HqhAEtCKCNf/XDA/rZRyAmrpsvrPDVUw3wrkqCiLaewg6TohX1d7X0ffs5r/OaAKfinmgt3t4ulr4+Xg4ANip3j+l/zPArNT4LNOD0pAgWCSOUIBy3+h/+pXbBa5tni0eMx23+/mB1YSYnENroT5Pw/QSOX/mkCo+l/jgo0v2KJA643s8PgAmsMBDCbu/5xALHPB2husxN9uCzsDOgAq5kAoaZVnYMCh5Ky1r88Eh/+iABM8jUk7ClYIAAAAAElFTkSuQmCC" alt="Search on Symfony website" />
|
||||
</label>
|
||||
|
||||
<input name="q" id="search-id" type="search" placeholder="Search on Symfony website" />
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue