Introduction
Twig is a powerful template engine for php. Drupal uses it heavily.
Lets look at some of the most useful methods and their syntax.
Setting some value to a variable
{% raw %}
{% set product_title = "Some value" %}
{% endraw %}Setting some Object value to a variable
If you want to assign value to a variable from some object.
{% raw %}
{% set product_title = "#{paragraph.getTitle()}" %}
{% endraw %}Strip html tags from rendered string
Say, I have a rendered string and I want to strip html tags from it. And, finally trim it. In this example, you will also see array usage.
{% raw %}
{% set my_code = content.field1[0] | striptags | trim %}
{% endraw %}Dyanamic assigning value to a variable based on condition
{% raw %}
{% if content.field_usa_code[0] %}
{% set usa_code = content.field_usa_code[0] | striptags|trim %}
{% endif %}
{% endraw %}Concatenation of string with variables
{% raw %}
{% set link_india = "https://www.xyz.com/#{india_code}/?param1=#{india_code}" %}
{% endraw %}Here, I’m using variables inside a string. Take a look at its alternative below.
Concatenation of string with variables
{% raw %}
{% set link_india = "https://www.xyz.com/" ~ (india_code) ~ "/?param1=" ~ (india_code)" %}
{% endraw %}Complex example using string concatenation with variable with functions
{% raw %}
{% set amazon_link_usa = "https://www.xyz.com/?param1=" ~ (product_title | slice(0,50) | url_encode) ~ "¶m2=#{usa_code}" %}
{% endraw %}Here, I’m trimming the big string to 50 character max. Even if string is small, this code works. And its using another function url_encode to url encode a parameter to http query.













