Um método no Twig é uma função com parâmetros criados a partir do PHP para que ele possa ser chamado no front end usando apenas uma linha de código.
Por exemplo, usamos métodos para gerar URLs de CSS, mas, neste caso, combinamos isso com filtros (tudo o que usa "|" é um filtro):
{{ 'css/style-colors.scss.tpl' | static_url | css_tag }}
Neste exemplo estamos usando um método para obter o arquivo style-colors.scss.tpl, então com o filtro “static_url” estamos esclarecendo que a localização do arquivo está na pasta “static”, e por último, com o filtro “css_tag”, formatamos tudo para ser mostrado com um link de HTML para o CSS:
<link rel="stylesheet" type="text/css" href="//d26lpennugtm8s.cloudfront.net/stores/941/793/themes/new_linkedman/style-colors-09f5cca100005e346657439693d422ac.css?1239532575" media="all">
Um último exemplo de um método é como incorporamos o Google Fonts.
@import url('{{ [settings.font_headings, settings.font_rest] | google_fonts_url('300, 400, 700') | raw }}');
Podemos ver que primeiro chamamos as fontes armazenadas na seção “Personalizar seu layout atual”, depois as convertemos em uma URL do Google Fonts (com os pesos tipográficos necessários) e por fim usamos o filtro “raw”.
Filtros comuns usados em um layout
raw
Este filtro faz com que o código "bruto" seja exibido sem que o Twig o processe. Por exemplo, pode acontecer que o nome de um produto contenha a tag HTML "strong":
Camisa <strong>preta</strong>
Se não usarmos o Twig bruto, ele processará esse texto como uma string com o HTML exibindo literalmente a tag de HTML como parte do nome do produto. Usando o raw irá "escapar" o Twig, mostrando-o como:
Camisa preta
Exemplo:
{{ settings.css_code | raw }}
css_tag
Converte em um link de HTML com rel=”stylesheet” e type=”text/css”.
{{ 'css/style-colors.scss.tpl' | static_url | css_tag }}
Mostrando em HTML assim:
<link rel="stylesheet" type="text/css" href="//d26lpennugtm8s.cloudfront.net/stores/941/793/themes/base/style-colors-165fc00e9f9b1735e7c765a5c486ffca.css?361907666" media="all">
static_url
Converte uma URL para estática, por exemplo, se precisarmos chamar um arquivo dentro da pasta "static".
Exemplo:
{{ 'css/style-colors.scss.tpl' | static_url | css_tag }}
script_tag
Converte para uma tag HTML "script" com type=”text/javascript”. Se adicionarmos entre parênteses a palavra "true", esse script será async.
Exemplo:
{{ '//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js' | script_tag(true) }}
translate
Traduz todo o texto considerando o arquivo translations.txt
Exemplo:
<p>{{ “Hola” | translate }}</p>
money
Converte um número na moeda definida pelo administrador da loja. Inclui decimais e formato monetário.
Exemplo:
{{ product.price | money }}
has_custom_image
Verifique se na seção “Personalizar seu layout atual”, a funcionalidade tem uma imagem carregada.
Exemplo:
{% if "seal_img.jpg" | has_custom_image %}
product_image_url
É a URL da imagem do produto. Você pode adicionar os tamanhos entre parênteses para obter mais informações sobre os tamanhos. Consulte este artigo.
Exemplo:
{{ image | product_image_url('huge') }}
settings_image_url
É a URL de uma imagem carregada na seção “Personalizar seu layout atual”. Você também pode usar tamanhos diferentes entre parênteses. Para obter mais informações sobre tamanhos, consulte este artigo.
Exemplo:
{{ slide.image | static_url | settings_image_url('1080p') }}
is_external
Verifica se um link em um menu configurado no Administrador Nuvem tem um “target=”_blank”
Exemplo:
{% if item.url | is_external %}
a_tag
Converte em um elemento "a" do HTML . Nós passamos como parâmetros a URL do link e uma classe.
Exemplo:
{{ "Mi cuenta" | translate | a_tag(store.customer_home_url, '', 'nav-accounts-link') }}
img_tag
Converte o elemento img do HTML. Podemos adicionar como parâmetros um "alt" e uma classe.
Exemplos:
Sem parâmetros:
{{'placeholder-product.png' | static_url | img_tag}}
Com parâmetros:
{{ store.logo('medium') | img_tag(store.name, {class: 'logo-img transition-soft-slow'}) | a_tag(store.url) }}
take
Simplesmente pega uma certa quantidade de algo (por exemplo, produtos) e a exibe. Entre parênteses, passamos a quantidade que queremos.
Exemplo:
{% set search_suggestions = products | take(6) %}
shuffle
Mistura uma quantidade de elementos.
Exemplo:
{% set related_products = sections.primary.products | take(4) | shuffle %}
highlight
Adiciona a tag HTML "strong" a uma string
Exemplo:
{{ product.name | highlight(query) }}
Para mais informações sobre os filtros Twig recomendamos o seu site oficial