Skip to main content

Tipos de conteúdo para o CMS

Essa explicação será mais voltada para desenvolvedores. Falaremos a seguir sobre a aplicação de chamadas de conteúdo diretamente no código.

Atualmente existem quatro tipos de conteúdo, são eles: Texto, Imagem, Catálogo de produtos e Catálogo de categorias.

Como faço para acessar o CMS? É simples! Clique na opção Layout no menu superior do painel, lá você irá notar que o menu lateral possui uma 'aba' chamada CMS, nela você poderá acessar as páginas em que foram inseridas as chamadas de código de conteúdo CMS.

Conteúdo de texto​

Temos dois tipos diferentes de conteúdo de texto, são eles: Texto simples e Múltiplos textos.

Texto Simples​

Texto simples nada mais é do que a edição de um único conteúdo de texto, aplicando os campos título e descrição. Veja o código abaixo:

<article class="texto">
{% set meu_texto = _cms('text', 'meu exemplo de texto') %}

<h2 class="title">
{{ meu_texto.content.title }}
</h2>

<p class="description">
{{ meu_texto.content.description }}
</p>
</article>

Iniciamos um atributo chamado meu_texto que recebe o método _cms(), onde são passados dois parâmetros, o tipo e o nome do conteúdo. O método é responsável por buscar os dados alimentados pelo CMS e também mostra para o CMS que no código existe um conteúdo editável, dessa forma o conteúdo irá aparecer automáticamente na tela do CMS, como mostra na imagem abaixo:

CMS de texto simples

Você vai notar que o conteúdo se encontra vazio, sem nenhuma informação preenchida, vamos então adicionar um conteúdo clicando no botão Adicionar.

Ao clicar em adicionar, você vai notar a abertura de um "popup" lateral, que nos traz alguns campos para preencher, mas vamos falar dos dois principais campos para o conteúdo de texto simples, são eles: Título e Descrição. Esses dois campos são acessados pelos atributos mostrados no código acima: {{ meu_texto.content.title }} e {{ meu_texto.content.description }}, dessa forma você dará liberdade para os gestores de conteúdo do seu projeto editarem ele forma simples e rápida.

Após adicionar os textos, basta clicar em Salvar, como mostra o print abaixo.

Popup de configuração do CMS de texto simples

info

Não é obrigatório usar os dois campos, caso você queira preencher apenas a descrição ou apenas o título, você tem total liberdade para isso. Assim como o uso dos atributos no código.


Múltiplos textos​

Bem similar ao texto simples, o conteúdo de múltiplos textos permite você adicionar quantos textos forem necessários, aplicando os campos de título e descrição ou apenas um dos dois. Vamos então ao código para iniciar nosso conteúdo e reconhecê-lo no CMS.

<main class="textos">
{% set textos = _cms('texts', 'meus textos') %}

{% if textos.content %}
{% for info in textos.content %}
<p class="text">
<strong>{{ info.title }} </strong>
<span>{{ info.description | raw }}</span>
</p>
{% endfor %}
{% endif %}
</main>

A chamada do método _cms() é a mesma, mudando apenas o tipo que é texts (no plural). Dessa forma o CMS vai reconhecer que nesse tipo de placeholder é possível inserir mais de um conteúdo.

Você verá que estamos chamando um {% for.. %} para buscar os conteúdos adicionados no CMS e listar o título e a descrição. No HTML, temos os seguintes atributos: {{ info.title }} e {{ info.description | raw }}.

Como mostra a imagem abaixo, no bloco do placeholder temos um botão Adicionar, que permite você criar uma lista de elementos de texto.

CMS de múltiplos textos


Conteúdo de imagem​

Não muito diferente dos conteúdos de texto, o conteúdo de imagem também possui duas versões: Imagem única e Múltiplas imagens.

Imagem única​

Vamos ao código:

{% set minha_imagem = _cms('image', 'minha imagem') %}
{% if minha_imagem.content %}
<!-- Obrigatório -->
<img src="{{ minha_imagem.content.desktop_url }}" alt="Desktop">

<!-- Opcional -->
<img src="{{ minha_imagem.content.mobile_url }}" alt="Mobile">

<!-- Opcional -->
<h2>{{ minha_imagem.content.title }}<h2>

<!-- Opcional -->
<p>{{ minha_imagem.content.description }}<p>

<!-- Opcional -->
<a {{ _href(minha_imagem.content) }}> Redirecionar </a>
{% endif %}

Na chamada do método _cms() temos o tipo image e o nome minha imagem. Dessa forma o código será reconhecido pelo CMS e apresentado da seguinte forma:

CMS de imagem única

Por padrão o placeholder vem vazio. Basta clicar no botão Adicionar, para abrir o popup lateral.

Popup de configuração do CMS de imagem única

Nas configurações laterais temos quatro campos que podem ser preenchidos: Imagem desktop, Imagem mobile, Nome da imagem, URL da imagem e Descrição da imagem.

A URL da imagem determina o redirecionamento da url ao clicar na imagem. A forma mais simples de chamar o clique é aplicando o método _href(minha_imagem) passando o objeto criado em {% set minha_imagem = _cms(..) %}, onde o _href() já irá reconhecer o link do objeto automaticamente. Obs.: No código acima temos o exemplo do botão de redirecionamento.

O único campo obrigatório é o Imagem desktop, os outros não serão necessários para o funcionamento do conteúdo.

Múltiplas imagens​

O formato é basicamente o mesmo, o que muda é que agora se trata de uma lista de imagens, então temos que acessá-la por um {% for .. %}. Veja o código abaixo:

{% set minhas_imagens = _cms('images', 'minhas imagens') %}

{% if minhas_imagens.content %}
<div class="imagens">
{% for imagem in minhas_imagens.content %}
<img src="{{ imagem.desktop }}" alt="{{ imagem.title }}">
<img src="{{ imagem.mobile }}" alt="{{ imagem.title }}">

<h2>{{ imagem.title }}<h2>
<p>{{ imagem.description }}<p>

<a {{ _href(imagem) }}> Redirecionar </a>
{% endfor %}
</div>
{% endif %}

Um ponto de atenção: dentro do loop for, cada objeto imagem possui atributos específicos que você deve acessar diretamente utilizano imagem.desktop, imagem.mobile, imagem.title e imagem.description.

Conteúdo para produtos e categorias​

Trata-se do retorno de uma lista que pode conter produtos ou categorias, dependendo do tipo especificado no método _cms(). Essas listas são comumente utilizadas em elementos como Menus de categorias, Vitrines de produtos e outros contextos semelhantes. Em geral, elas exibem uma quantidade limitada de itens, que pode ser configurada no painel em Configurações > Catálogo, em Quantidade de produtos nas vitrines.

Não está relacionado com as telas de listagem de produtos. Para listar os produtos nas telas de categorias e busca siga esse exemplo.

Produtos​

Para buscar uma lista de produtos, o processo é o mesmo dos outros modelos de CMS citados acima, vamos ao código:

{% set produtos = _cms('products', 'produtos da vitrine') %}

{% if produtos.content %}
<div class="product-list">
{% for product in produtos.content %}
{% include 'cartao de produto' %}
{% endfor %}
</div>
{% endif %}

O código é bem simples, foi passado no método _cms() o tipo products e o nome produtos da vitrine. Como a lista de produtos retorna todos os campos necessários para a exibição de um produto na tela, basta chamar no {% for .. %} o atributo product que poderá ser utilizado no elemento cartão de produto. Para saber mais sobre o cartão de produto clique aqui.

Vamos então ao CMS. Veja que o placeholder virá vazio, basta clicar no botão Adicionar.

CMS de produtos

No popup lateral, você verá que existem alguns campos a serem preenchidos, ou melhor dizendo você criará uma lista com os critérios desejados para o retorno dos produtos.

Popup de configuração do CMS de produtos

No caso da imagem acima, estamos filtrando os produtos pela categoria que possua o ID igual a 3. Além da categoria, você pode aplicar outras regras e assim montar sua própria lista de produtos. No final, após montar sua lista de critérios, não se esqueça de clicar no botão Salvar. Feito isso, você já terá o retorno dos produtos na sua vitrine.

Categorias​

De modo semelhante aos produtos, temos a listagem de categorias. Vamos ao código:

{% set categorias = _cms('categories', 'minhas categorias') %}

<div class="category-list">
{% for categoria in categorias.content %}
<span> {{ categoria.name }} </span>

{% if categoria.subcategories | length > 0 %}
{% for subcategoria in categoria.subcategories %}
<span> {{ subcategoria.name }} </span>
{% endfor %}
{% endif %}
{% endfor %}
</div>

Você poderá criar uma lista de critérios para filtrar e buscar a sua lista de categorias mas, seguindo um exemplo padrão abaixo, temos um filtro base para que você possa entender melhor o funcionamento.

Lista de critérios do CMS de categorias

Basicamente estão sendo buscadas as categorias que estão marcadas como Visível no menu ou seja in_menu = true e que estão no level = 2. Nesse caso estamos chamando de level porque através desse level virão todas as categorias listadas.

Indo um pouco mais a fundo na explicação, nós temos:

  • Categoria A (Level 1)
    • Categoria B (Level 2)
      • Categoria C (Level 3) | Ativo
      • Categoria D (Level 3) | Inativo
      • Categoria E (Level 3) | Ativo

Ou seja, as categorias retornadas serão C e E.

Para complementar a explicação, temos um exemplo de chamada de categorias no menu de categorias, mostrado na sessão IDE - Elementos - Elementos Importantes - Header.