2016-03-29 30 views
1

Haftanın günü ve ayının günlüklerini yazmam gereken birkaç şablonum var. Ben küçük bir dal dosyası oluşturuldu:Ana şablonda ayar ayarı değişkeni

{% set numDay = target.dateStop | date ("w", user_timezone) %} 
{% set daysOfWeek = {0: 'Sunday', 1: 'Monday', 2: 'Tuesday', 3: 'Wednesday', 4: 'Thursday', 5: 'Friday', 6: 'Saturday'} %} 
{% set weekDay = daysOfWeek[numDay] %} 

{% set numMonth = target.dateStop | date ("n", user_timezone) %} 
{% set months = {1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June', 7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December'} %} 
{% set month = months[numMonth] % 

Ben ilk "yardımcı" şablonu

{% include '@.../Email/HTML/en_US/localized_day_and_month.twig' with [user_timezone] %} 
dahil bu değerleri gerek şablonunda

Sonra sadece değişken

... {{ weekDay }} ... 

I kullanmak yine de şu hatayı al:

failed: Variable "weekDay" does not exist in ".../HTML/it_IT:do_deadline_new.html.twig" at line 9

benim "lokalize tarih sorunu" için daha iyi bir çözüm muhtemelen olduğunu biliyorum ama bu burada

ben her şablonda devralan temel sınıf içindeki ilk pasajı taşındı

DÜZENLEME ama bu değişkenlerin benim açımdan değil hala göz ardı görünmektedir:

{% block dateTimeVariables %} 
    {% set numDay = target.dateStop | date ("w", user_timezone) %} 
    {% set daysOfWeek = {0: 'Domenica', 1: 'Lunedì', 2: 'Martedì', 3: 'Mercoledì', 4: 'Giovedì', 5: 'Venerdì', 6: 'Sabato'} %} 
    {% set weekDay = daysOfWeek[numDay] %} 

    {% set numMonth = target.dateStop | date ("n", user_timezone) %} 
    {% set months = {1: 'gennaio', 2: 'febbraio', 3: 'marzo', 4: 'aprile', 5: 'maggio', 6: 'giugno', 7: 'luglio', 8: 'agosto', 9: 'settembre', 10: 'ottobre', 11: 'novembre', 12: 'dicembre'} %} 
    {% set month = months[numMonth] %} 
{% endblock %} 

Ve çocuk şablonunda

base.html.twig:

{% extends '@.../Email/HTML/it_IT/base.html.twig' %} 

Ve yine:

[{{ group.name }}] Today at {{ target.created | date("H:i", user_timezone) }} {{ agent.name }} {{ agent.surname }} has created a file due on {{ weekDay | lower }} {{ target.dateStop | date ("d", user_timezone) }} {{ month }} at {{ target.dateStop | date ("H:i", user_timezone) }}. 
+0

child.twig? –

+0

Bu 1.24.0 – gioaudino

+0

@ gioaudino olmalıdır. Sorunuz, bu soruda özetlediğim çözümle benzer şekilde çözülebilir: http://stackoverflow.com/a/32642249/2970321 – alexw

cevap

0

dahil dosyanın AFAIK

The include statement includes a template and returns the rendered content of that file into the current namespace.

sadece işlenecek twig doc : itibaren, herhangi bir değişken:

failed: Variable "weekDay" does not exist in ".../HTML/it_IT:do_deadline_new.html.twig" at line 6

hat 6 şudur inc olarak belirlenmişti luded dosyası üst isim alanına eklenmeyecek.

Bunun yerine uzantıları kullanmayı deneyin. Böyle bir şey:

parent.twig

{% set numDay = target.dateStop | date ("w", user_timezone) %} 
    {% set daysOfWeek = {0: 'Sunday', 1: 'Monday', 2: 'Tuesday', 3: 'Wednesday', 4: 'Thursday', 5: 'Friday', 6: 'Saturday'} %} 
    {% set weekDay = daysOfWeek[numDay] %} 

    {% set numMonth = target.dateStop | date ("n", user_timezone) %} 
    {% set months = {1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June', 7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December'} %} 
    {% set month = months[numMonth] %} 

kullandığınız dal sürümü

{% extends 'parent.twig'%} 
+0

Aslında, localized_day_and_month öğesini eklediğim şablon zaten genişliyor başka bir şablon ve çoklu kalıtım izin verilmez. Sanırım en iyi seçim, bu değişken setleyicileri üst şablona taşımak ve sadece içerdiği ifadeleri kaldırarak genişletmektir. – gioaudino

+0

Yardımlarınız için mutluyuz. Bu cevap veya başka bir sorununuzu çözdüyseniz, lütfen kabul edilmiş olarak kabul edin –

+0

Hala bu hatayı alıyorum. – gioaudino