Twig template keine php-template
Stieß ich auf ein problem, das ist für mich nicht ganz klar und schwer zu verstehen. Ich habe versucht, die Kalender-widget, das soll zu sehen sein, die auf jeder Seite auf meiner Website. Also, ich denke, es sollte Durchschnitt Vorlage (keine Argumente, nicht pro Seite). Ich habe versucht, es zu tun, als twig-template. Ich schaffte es zu Rendern Kalender, aber ich hatte ein problem mit dem Erwerb von Datum-Objekt (was notwendig ist, um richtige Argumente, die für rendering-Kalender). Nach einer kurzen Weile, ich habe versucht, eine php-Vorlage, die aufgenommen werden, durch die Haupt-twig-template (layout.html-Code.Zweig). Ist es nicht Erfolg. Ich habe aktiviert php-engine in der config.yml, hilft aber nicht - php-template ist in der Tatsache enthalten, sondern als normale Datei, nicht die php-Datei (nicht analysiert, als php-Skript), (aber die php-engine funktioniert, habe ich versucht zu Rendern, php template aus einem controller, es funktioniert). Ich habe gelesen, auch ist es möglich, ein Ergebnis von einem anderen controller in der Vorlage, aber für mich ist es nicht die richtige Lösung, ich habe nicht versucht, die (php-template passen sollte, um dieses problem).
Was soll ich tun um dieses problem zu lösen?
Main config.yml
imports:
- { resource: parameters.ini }
- { resource: security.yml }
framework:
#esi: ~
translator: { fallback: %locale% }
secret: %secret%
charset: UTF8
router: { resource: "%kernel.root_dir%/config/routing.yml" }
form: true
csrf_protection: true
validation: { enable_annotations: true }
templating: { engines: ['twig', 'php'] }
session:
default_locale: %locale%
auto_start: true
# Twig Configuration
twig:
debug: %kernel.debug%
strict_variables: %kernel.debug%
# Assetic Configuration
assetic:
debug: %kernel.debug%
use_controller: false
# java: /usr/bin/java
filters:
cssrewrite: ~
# closure:
# jar: %kernel.root_dir%/java/compiler.jar
# yui_css:
# jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar
# Doctrine Configuration
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
# Swiftmailer Configuration
#swiftmailer:
# transport: %mailer_transport%
# host: %mailer_host%
# username: %mailer_user%
# password: %mailer_password%
jms_security_extra:
secure_controllers: true
secure_all_services: false
# services:
# TpsaMailer:
# class: Tpsa\TestBundle\Controller\MailerController
layout.html-Code.Zweig
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
{% block stylesheets %}
<link rel="stylesheet" type="text/css"
href="{{ asset('bundles/tpsablog/css/main.css') }}">
{% endblock %}
{% block javascripts %}
<!-- empty javascripts -->
{% endblock %}
<title>
{% block title %}
{% trans %}blog.programisty.duga{% endtrans %}
{% endblock %}
</title>
</head>
<body>
<div id="all">
<div id="top">
{% block top %}
<div style="float: left" class="right">
<img style="float: left;
vertical-align: middle; margin: 8px
8px 8px 0px" src="{{ asset('bundles/tpsablog/images/glider.png') }}">
<h4>{% trans %}blog.programisty.duga{% endtrans %}</h4>
<div style="font-size: 8px">
{% trans %}ciekawosc.wiedza.niewygodne{% endtrans %}
<!-- Ciekawość i wiedza... To, co jest niewygodne dla
władzy -->
</div>
</div>
<div style="float: right">
<a href="{{ path('HomePage') }}">{% trans %}strona.glowna{% endtrans %}</a>
<a href="{{ path('AboutPage') }}">{% trans %}o.mnie{% endtrans %}</a>
<a href="{{ path('TBB_mess_add') }}">{% trans %}napisz.do.mnie{% endtrans %}</a>
{% if is_granted('IS_AUTHENTICATED_FULLY') %}
{{ app.user.username }}
<a href="{{ path('TBB_tag_list_homepage') }}">{% trans %}tagi{% endtrans %}</a>
<a href="{{ path('TBB_mess_list_homepage') }}">{% trans %}wiadomosci{% endtrans %}</a>
<a href="{{ path('logout') }}">{% trans %}wyloguj{% endtrans %}</a>
{% else %}
<a href="{{ path('login') }}">{% trans %}zaloguj{% endtrans %}</a>
{% endif %}
<div style="text-align: center; margin: 10px 0px">
<a href="{{ path('TBB_rss') }}">
<img src="{{ asset('bundles/tpsablog/images/rss.png')
}}" alt="rss channel">
</a>
<a href="http://www.facebook.com/duga.chernobyl"
target="_blank">
<img src="{{ asset('bundles/tpsablog/images/facebook.png') }}"
alt="facebook">
</a>
<a href="http://www.youtube.com/user/DugaEye"
target="_blank">
<img src="{{ asset('bundles/tpsablog/images/youtube.png')
}}" alt="youtube">
</a>
</div>
</div>
<div style="clear:both"></div>
{% endblock %}
</div>
<div id="frame">
<div id="left">
{% block content %}
{% trans %}TODO{% endtrans %}
{% endblock %}
</div>
<div id="right">
{% block panel %}
<div style="text-align: left">
<div style="text-align: center">
<h4>{% trans %}profil.duga.eye{% endtrans %}</h4>
<img style="width: 100px" src="{{
asset('bundles/tpsablog/images/photo.jpg')
}}">
</div>
<div style="font-weight:900; margin-top: 10px">
<ul>
<li>{% trans %}wiek{% endtrans %}: 21</li>
<li>{% trans %}miejsce{% endtrans %}: /dev/null</li>
<li>{% trans %}zainteresowania{% endtrans %}: {% trans %}programowanie.hacking.filozofia{% endtrans %}</li>
<li>{% trans %}email{% endtrans %}: <a
href="mailto:duga(dot)eye(at)gmx(dot)com">Mail</a>
</ul>
</div>
</div>
<h3>{% trans %}reklamy{% endtrans %}</h3>
{% include '::calendar.html.php' %}
{% endblock %}
</div>
</div>
<div id="footer">
{% block footer %}
{% trans %}footer{% endtrans %}
{% endblock %}
</div>
</div>
</body>
</html>
Wie man richtigen Parameter offset, Anzahl, koniec, aktualny von php Date-Objekt? (jetzt ist es hart codiert)
Kalender.html-Code.Zweig
{% include '::calendar.html.php' %}
{% set offset = 1 %}
{% set number = 28 %}
{% set koniec = 7 - ((offset + number) % 7) %}
{% set aktualny = 13 %}
<table border="0" style="text-align: center">
<thead>
<tr>
<td>{% trans %}pn{% endtrans %}</td>
<td>{% trans %}wt{% endtrans %}</td>
<td>{% trans %}sr{% endtrans %}</td>
<td>{% trans %}czw{% endtrans %}</td>
<td>{% trans %}pt{% endtrans %}</td>
<td>{% trans %}sob{% endtrans %}</td>
<td>{% trans %}nie{% endtrans %}</td>
</tr>
<tbody>
{% if offset % 7 != 0 %}
<tr>
{% for i in range(0,offset-1,1) %}<td><br></td>{% endfor %}
{% endif %}
{% for i in 1..number %}
{% if (i+offset)%7 == 1 %}<tr>{% endif %}
<td>
{% if i == aktualny %}
<span style="color: red">{{ i }}</span>
{% else %}
{{ i }}
{% endif %}
</td>
{% if (i+offset)%7 == 0 %}</tr>{% endif %}
{% endfor %}
{% if koniec < 7 %}
{% for i in 1..koniec %}
<td><br></td>
{% endfor %}
</tr>
{% endif %}
</tbody>
</table>
php-Vorlage, die ausgeführt werden sollen, php-Vorlage, indem Sie ihn in twig template , aber es wird nicht geparst und ausgeführt wird als die Vorlage.
calendar.html.php
ppp<?php echo ('ala') ?>ooo
Einfach enthält 'pppooo' in der Quelle, nicht sichtbar, wird behandelt, als html-tag.
deps-Datei, wenn es notwendig ist
[symfony]
git=http://github.com/symfony/symfony.git
version=v2.0.9
[twig]
git=http://github.com/fabpot/Twig.git
version=v1.5.1
[monolog]
git=http://github.com/Seldaek/monolog.git
version=1.0.2
[doctrine-common]
git=http://github.com/doctrine/common.git
version=2.1.4
[doctrine-dbal]
git=http://github.com/doctrine/dbal.git
version=2.1.5
[doctrine]
git=http://github.com/doctrine/doctrine2.git
version=2.1.5
[swiftmailer]
git=http://github.com/swiftmailer/swiftmailer.git
version=v4.1.5
[assetic]
git=http://github.com/kriswallsmith/assetic.git
version=v1.0.2
[twig-extensions]
git=http://github.com/fabpot/Twig-extensions.git
[metadata]
git=http://github.com/schmittjoh/metadata.git
version=1.0.0
[SensioFrameworkExtraBundle]
git=http://github.com/sensio/SensioFrameworkExtraBundle.git
target=/bundles/Sensio/Bundle/FrameworkExtraBundle
version=origin/2.0
[JMSSecurityExtraBundle]
git=http://github.com/schmittjoh/JMSSecurityExtraBundle.git
target=/bundles/JMS/SecurityExtraBundle
version=origin/1.0.x
[SensioDistributionBundle]
git=http://github.com/sensio/SensioDistributionBundle.git
target=/bundles/Sensio/Bundle/DistributionBundle
version=origin/2.0
[SensioGeneratorBundle]
git=http://github.com/sensio/SensioGeneratorBundle.git
target=/bundles/Sensio/Bundle/GeneratorBundle
version=origin/2.0
[AsseticBundle]
git=http://github.com/symfony/AsseticBundle.git
target=/bundles/Symfony/Bundle/AsseticBundle
version=v1.0.1
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie mix-and-match-Zweig und php in einer einzigen Reaktion (zu tun, so wäre die Umgehung Teil des point-of-Zweig, zu verhindern, dass die Designer von der Erstellung zu viel Logik in der view).
Ich denke, die Symfony Dokumentation sollte/könnte klarer sein, über das (im moment ist es im Grunde sagt, "aktivieren Sie beide und tun, was Ihnen gefällt").
Wenn Sie einbetten von einem anderen controller, dann sollten Sie in der Lage sein, zu dienen eine andere Antwort und , dass Reaktionen auf php basiert.
Haben Sie als rendering Ihrem Kalender, php-Vorlage mit
{% render 'ApplicationBundle:Controller:action' %}
und in der Aktion das Rendern der php-template?Sie könnte auch machen Sie Ihren Kalender php in der Aktion, die render-Kalender-Zweig, und übergeben Sie die Ausgabe des php-template als ein einfacher Zweig variable.
Hinweis: um anzuzeigen, wie eine var, vergessen Sie nicht zu tun
{{ var|raw }}
wenn es irgendein html-tag im inneren.Note2: wie von symfony2.2, render-parameter geändert
{% render url('route_name') %}
{{ render(controller('ApplicationBundle:Controller:action')) }}
.HINWEIS: snippets unten sind völlig nicht-getestet.
http://twig.sensiolabs.org/doc/functions/date.html
Die Funktion
date
scheint zu erstellen \DateTime-Objekt.Jedoch, wenn Sie will, gehören die original-php-Datei (z.B. 'calendar.php') im Zweig,
schreiben Sie die Erweiterung, um es zu bekommen Arbeit.
Machen oben arbeiten, sollten Sie "tagged" service im container.
Wörtern, doppelt Unterstrichen ersetzt werden sollte:
Mit dieser, werden Sie schließlich einfach schreiben