Twig is a PHP-based compiled templating language. When your web page renders, the Twig engine takes the template and converts it into a 'compiled' PHP template which is stored in a protected directory in sites/default/files/php/twig. The compilation is done once, template files are cached for reuse and are recompiled on clearing the Twig cache.
Preprocessing for Template Files :
The main role of the preprocessors is to set up variables to be placed within the template (.tpl.php) or twig files.
Every layer in Drupal from core, modules, engines and themes can have numerous preprocessors
Mainly There are two main functions to override the code .. preprocess and preprocess_HOOKS respectly,
first is template,module,engine,theme, Most used is theme preprocess and process
THEME_preprocess(&$variables,$hook) Where hooks are like menu,page,html, etc
THEME_preprocess_HOOK(&$variables)
Loops in Twig :
{% endfor %} Preprocessing for Template Files :
The main role of the preprocessors is to set up variables to be placed within the template (.tpl.php) or twig files.
Every layer in Drupal from core, modules, engines and themes can have numerous preprocessors
Mainly There are two main functions to override the code .. preprocess and preprocess_HOOKS respectly,
first is template,module,engine,theme, Most used is theme preprocess and process
THEME_preprocess(&$variables,$hook) Where hooks are like menu,page,html, etc
THEME_preprocess_HOOK(&$variables)
Features of Twig :
Twig Block in Drupal 8 : It is performed by tempelate inheritance,Template inheritance allows you to build a base "skeleton" template that contains all the common elements of your site and defines blocks that child templates can override.
Setting Variables :
{% set foo = 'foo' %}
Filters are separated from the variable by a pipe symbol (|
). Multiple filters can be chained{{ name|striptags|title }}
Loops in Twig :
{% for user in users if user.active %} {{ user.username|e }}
{% endfor %}{% for key, user in users %} {{ key }}: {{ user.username|e }}
Twig allows you to do math in templates;
%
: Calculates the remainder of an integer division. {{ 11 % 7 }}
is 4
.//
: Divides two numbers and returns the floored integer result. {{ 20 // 7 }}
is 2
**
: Raises the left operand to the power of the right operand. {{ 2 ** 3 }}
would return 8
.
and
: Returns true if the left and the right operands are both true.or
: Returns true if the left or the right operand is true.not
: Negates a statement.(expr)
: Groups an expression.
You can also check if a string
starts with
or ends with
another string:{% if 'Fabien' starts with 'F' %} {% endif %} {% if 'Fabien' ends with 'n' %} {% endif %}
Containment Operator¶
The
in
operator performs containment test. It returns true
if the left operand is contained in the right:1 2 3 4 5 | {# returns true #}
{{ 1 in [1, 2, 3] }}
{{ 'cd' in 'abcde' }}
Test Operator¶
The
is operator performs tests. Tests can be used to test a variable against a common expression. The right operand is name of the test:{# find out if a variable is odd #}
{{ name is odd }}
Other Operators :| : Applies a filter... : Creates a sequence based on the operand before and after the operator (this is syntactic sugar for the range function):{{ 1..5 }}
{# equivalent to #}
{{ range(1, 5) }}
~ : Converts all operands into strings and concatenates them. {{ "Hello " ~ name ~ "!" }} would return (assuming name is 'John' ) Hello John! .. , [] : Gets an attribute of a variable.?: : The ternary operator:{{ foo ?: 'no' }} is the same as {{ foo ? foo : 'no' }} ?? : The null-coalescing operator:
|
Comments
Post a Comment