Twig Templating - Most useful functions and operations syntax

May 07, 2020

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) ~ "&param2=#{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.


Similar Posts

Latest Posts