167 lines
3.6 KiB
Twig
167 lines
3.6 KiB
Twig
{% include ['page_detailed.html', 'page.html'] %}
|
|
{# template.html will have access to the variables from the current context and the additional ones provided #}
|
|
{% include 'template.html' with {'foo': 'bar'} %}
|
|
{% include 'template.html' with {'foo': 'bar'} only %}
|
|
|
|
{% set vars = {'foo': 'bar'} %}
|
|
{% include 'template.html' with vars %}
|
|
|
|
{% include 'sidebar.html' ignore missing %}
|
|
{% include 'sidebar.html' ignore missing with {'foo': 'bar'} %}
|
|
{% include 'sidebar.html' ignore missing only %}
|
|
|
|
{{ include('sidebar.html') }}
|
|
|
|
{% import "macros.twig" as macros %}
|
|
|
|
{% from "macros.twig" import hello %}
|
|
|
|
{% verbatim %}
|
|
<ul>
|
|
{% for item in seq %}
|
|
<li>{{ item }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% endverbatim %}
|
|
|
|
<p>{{ _self.input('password', '', 'password') }}</p>
|
|
<p class=x{{ n }}>
|
|
|
|
{% macro input(name, value, type = "text", size = 20) %}
|
|
<input type="{{ type }}" name="{{ name }}" value="{{ value|e }}" size="{{ size }}"/>
|
|
{% endmacro %}
|
|
|
|
{% if macros.hello is defined -%}
|
|
OK
|
|
{% endif %}
|
|
|
|
{% if hello is defined -%}
|
|
OK
|
|
{% endif %}
|
|
|
|
{% set foo = 'foo' %}
|
|
{% set foo = [1, 2] %}
|
|
{% set foo = {'foo': 'bar'} %}
|
|
|
|
{% apply upper %}
|
|
This text becomes uppercase
|
|
{% endapply %}
|
|
|
|
{% apply lower|escape('html') %}
|
|
<strong>SOME TEXT</strong>
|
|
{% endapply %}
|
|
|
|
{{ list|join(', ') }}
|
|
|
|
{{ name|striptags|title }}
|
|
|
|
{% for i in 0..3 %}
|
|
{{ i }},
|
|
{% endfor %}
|
|
|
|
{% for i in range(0, 3) %}
|
|
{{ i }},
|
|
{% endfor %}
|
|
|
|
{% for i in range(low=1, high=10, step=2) %}
|
|
{{ i }},
|
|
{% endfor %}
|
|
|
|
{{ data|convert_encoding('UTF-8', 'iso-2022-jp') }}
|
|
|
|
{# versus #}
|
|
|
|
{{ data|convert_encoding(from='iso-2022-jp', to='UTF-8') }}
|
|
|
|
{{ "now"|date(null, "Europe/Paris") }}
|
|
{{ "now"|date('d/m/Y H:i', timezone="Europe/Paris") }}
|
|
|
|
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
{% block head %}
|
|
<link rel="stylesheet" href="style.css"/>
|
|
<title>{% block title %}{% endblock %} - My Webpage</title>
|
|
{% endblock %}
|
|
</head>
|
|
<body>
|
|
<div id="content">{% block content %}{% endblock %}</div>
|
|
<div id="footer">
|
|
{% block footer %}
|
|
© Copyright 2011 by <a href="http://domain.invalid/">you</a>.
|
|
{% endblock %}
|
|
</div>
|
|
</body>
|
|
</html>
|
|
|
|
|
|
{% extends "base.html" %}
|
|
|
|
{% block title %}Index{% endblock %}
|
|
{% block head %}
|
|
{{ parent() }}
|
|
<style type="text/css">
|
|
.important { color: #336699; }
|
|
</style>
|
|
{% endblock %}
|
|
{% block content %}
|
|
<h1>Index</h1>
|
|
<p class="important">
|
|
Welcome to my awesome homepage.
|
|
</p>
|
|
{% endblock %}
|
|
|
|
{% block sidebar %}
|
|
<h3>Table Of Contents</h3>
|
|
...
|
|
{{ parent() }}
|
|
{% endblock %}
|
|
|
|
{% set greeting = 'Hello ' %}
|
|
{% set name = 'Fabien' %}
|
|
|
|
{{ greeting ~ name|lower }} {# Hello fabien #}
|
|
|
|
{# use parenthesis to change precedence #}
|
|
{{ (greeting ~ name)|lower }} {# hello fabien #}
|
|
|
|
{# keys as string #}
|
|
{{{ 'foo': 'foo', 'bar': 'bar' }}}
|
|
|
|
{# keys as names (equivalent to the previous hash) #}
|
|
{{{ foo: 'foo', bar: 'bar' }}}
|
|
|
|
{# keys as integer #}
|
|
{{{ 2: 'foo', 4: 'bar' }}}
|
|
|
|
{# keys can be omitted if it is the same as the variable name #}
|
|
{{{ foo }}}
|
|
{# is equivalent to the following #}
|
|
{{{ 'foo': foo }}}
|
|
|
|
{# keys as expressions (the expression must be enclosed into parentheses) #}
|
|
{% set foo = 'foo' %}
|
|
{{{ (foo): 'foo', (1 + 1): 'bar', (foo ~ 'b'): 'baz' }}}
|
|
|
|
{% apply spaceless %}
|
|
<div>
|
|
<strong>foo bar</strong>
|
|
</div>
|
|
{% endapply %}
|
|
|
|
{% cache "cache key" ttl(300) %}
|
|
Cached for 300 seconds
|
|
{% endcache %}
|
|
|
|
|
|
{{ sizes|filter(v => v > 38)|join(', ') }}
|
|
|
|
{{ 34243 b-xor 89754321 }}
|
|
|
|
{% set bar = 'bar' %}
|
|
{% with { foo: 42 } only %}
|
|
{# only foo is defined #}
|
|
{# bar is not defined #}
|
|
{% endwith %}
|