getparam

Como utilizar a tag getparam.

Em alguns casos de renderização de tela é preciso saber se existe algum parâmetro na URL e quais são seus valores. Para isso, utilize a tag {% getparam %}.

Os parâmetros são informações disponíveis na URL da página e que são muito úteis para criar alguns recursos nas lojas. Sua principal aplicação são nos filtros da página de listagem de produtos. Os parâmetros também podem ser usados para exibir produtos na página de resultados de busca.

https://brubins2.vnda.dev/mais-vendidos?ordenacao%5B%5D=highest_price&price%5B%5D=1-10

Podemos separar os parâmetros da URL em:

  • Protocolo e domínio: https://brubins2.vnda.dev/
  • Subpasta: mais-vendidos
  • Separador: ?
  • Primeiro parâmetro de URL: ordenacao%5B%5D=highest_price&
  • Separador de parâmetros: &
  • Segundo parâmetro de URL: price%5B%5D=1-10

Os parâmetros são pares de chave e valor (semelhante a um objeto javascript). A chave vem antes do sinal de atribuição (=), e o valor vem logo após.

  • Chave: ordenacao
  • Valor: highest_price (maior preço)
  • Chave: price (preço)
  • Valor: 1-10 (de R$ 1 a R$ 10)

Após o nome da chave você vai perceber um %5B%5D, que são os códigos de colchetes ([ ]) na tabela ASCII.

  • [: %5B
  • ]: %5D

Esses colchetes estão presentes no atributo name do input do formulário HTML, e são convertidos conforme a tabela ASCII quando são enviados para a URL.
Isso significa que essa URL busca, dentro da loja Brubins, os produtos com a tag mais-vendidos, que tenham seu preço entre R$ 1 e R$ 10, e ordena do mais caro ao mais barato.

Como utilizar a tag {% getparam %}

Para demonstrar o uso da tag utilizaremos o exemplo de URL antetior. Nesse caso, se queremos saber o valor da chave price no parâmetro, utilizamos o comando:

{% getparam 'price' as params_price %}

Após getparam precisamos informar três coisas:

  • A chave do parâmetro em formato de string.
  • A palavra reservada as.
  • Nome da variável que irá receber o valor da chave referenciada.

Nesse caso nomeamos a variável de {{ params_price }} e ela receberá o valor 1-10. É importante que antes de utilizá-la em outra parte do código, você teste se a variável não é vazia ou possui valor nulo:

{% getparam 'price' as params_price %}
​
{% if params_price != blank %}
  O valor de price no parâmetro é {{ params_price }}
{% else %}
  Não existe o parâmetro price
{% endif %}