Ícone do site Taller

Drupal: fundamentos básicos

Drupal Capa

Quando comecei a estudar com Drupal, o que mais atrapalhou meu progresso foi a falta de contexto, uma ideia geral de como as coisas funcionavam e como os problemas eram resolvidos nele.

Muitas vezes o material de estudo parte do princípio de que quem está lendo já entende certos conceitos fundamentais. Porém, isso nem sempre é verdade e esses conceitos nem sempre são explicados de forma leiga. Ou o suficiente para fazerem sentido em comparação a outras tecnologias mais comuns.

Então vale enfatizar que este post é para quem já tem alguma experiência com desenvolvimento web, preferencialmente com alguma linguagem orientada a objetos.

A ideia aqui não é ser uma introdução ao Drupal, e sim uma explicação de fundamentos básicos que são essenciais para o consumo de materiais de estudo mais avançados. Então se você já tentou aprender Drupal e desistiu, ou está tentando mas vem tendo problemas, este post é para você!


Entidades, bundles, fields, nodes e tipos de entidade

Primeiramente vamos partir de uma descrição básica do que cada um destes termos representa, depois um exemplo didático e, por fim, uma correlação com uma instalação de Drupal fresca. Esta é a parte mais complexa do post, portanto, recomendo a releitura e pesquisa em outras fontes de estudo para clarificação, caso necessário. Inclusive, no final deste post eu adicionei outros materiais de estudo para auxiliar no processo.

Entity type

É uma abstração para campos, vamos supor que eu decida representar uma pessoa com os campos “Nome” e “Idade”, estes campos juntos representam uma Pessoa, e Pessoa é um Entity Type.

Entity 

Representa uma instância, se Pessoa é um Entity Type, “Carlos” é uma entity.

Bundles 

São variações de um Entity Type, se representamos Pessoa com Nome e Idade, podemos ter um bundle chamado “Brasileiro”, que além do Nome e Idade, pode conter a cidade onde a pessoa vive no Brasil.

Node 

É um Entity Type que representa o conteúdo do nosso site como artigos, páginas, posts e quaisquer outro tipo de conteúdo usado.

Fields 

São campos de informação como “Nome” e “Idade”. Para simplificar estes conceitos, podemos fazer uma correlação com orientação a objetos e tentar modelar uma pessoa chamada “João”.

Nosso modelo é bem simples: a classe base se chama “Animal” e possui características como tamanho e peso. Com essa base, podemos avançar para a classe “Humano”, que herda todas as características de Animal e introduz suas próprias informações, como seu nome, cor dos olhos e região onde nasceu.

Agora que temos a classe Humano modelada, podemos instanciar uma pessoa chamada João e nosso modelo está pronto. Traduzindo isso para a estrutura de entidades, teríamos Animal como um Entity Type e Humano como um Bundle de Animal, como precisamos que nosso Humano tenha um nome, adicionamos o Field Nome ao Bundle Humano. Agora a única coisa que nos resta é criar a instância de João.

Neste momento João é uma Entidade do Drupal.

Saindo da abstração e usando exemplos mais reais, em uma instalação fresca do Drupal você vai encontrar um exemplo de tudo demonstrado aqui, Node é um Entity Type, que por sua vez tem um Bundle chamado Content Type e cada content type pode ter outros bundles com diferentes Fields.

Como por exemplo “artigo” e “notícia”, onde artigo possui um autor com foto, e notícia uma foto da capa. Já uma instância pode ser exemplificada por uma notícia ou artigo específicos cadastrados no sistema.

Um ponto de atenção é que Content Type dentro do Drupal é um Node Type. Escolhi chamar aqui de Bundle para facilitar o entendimento, mas tirando essa diferença de nomenclatura, os dois são a mesma coisa.

 

Blocos e regiões

Quando criamos um tema em Drupal, podemos definir regiões, estas regiões são locais onde você pode colocar blocos de conteúdo como o Menu, Sidebar, Footer, Header, entre outros. Vale pontuar que como as regiões são dispostas na tela, depende, das informações de quem criou o tema e registrou no seu page.html.twig, não são opções pré-definidas.

Já blocos representam um pedaço do layout do seu site que pode ser colocado em uma Region, que é o que o usuário vê, como uma galeria de imagens, um breadcrumb ou um menu. Blocos podem ter Fields associados e como todos os outros itens abordados neste post, são altamente customizáveis.

 

Taxonomia

O sistema de Taxonomia lida com categorização de conteúdos e entidades no Drupal.

Vamos supor que você tem um blog de notícias e nele um post sobre meteorologia, outro sobre esportes e um último sobre política. Se a única coisa que separa esses posts é o conteúdo, ficaria difícil buscar por mais posts de um mesmo assunto.

Idealmente o post teria categorias que servem para descrever o conteúdo, e é aí que entra a Taxonomia. Vamos fazer uma outra suposição: digamos que você tenha o content type Article, e caso você crie um conjunto de itens de Taxonomia e relacione ao conteúdo Article, sempre que um Article for criado, ele poderá ser categorizado de acordo ao conjunto de itens taxonômicos previamente registrados. Um post pode ter a categoria esportes, outro meteorologia, outro sobre política e assim por diante.

Explicando melhor sobre os termos de Taxonomia usados no Drupal, um vocabulário é um conjunto de itens descritivos, como por exemplo categorias de artigo(esporte, política e meteorologia). Enquanto um taxonomy term é um destes itens, como esporte.

 

Views

Uma View é uma listagem de conteúdo do seu site, como os posts feitos por uma pessoa, ou todos produtos em estoque. Falando em termos técnicos, uma view permite que você faça um select nos content types registrados no sistema.

Vamos supor que você tenha um site com uma área paga e uma área grátis, em ambas as áreas um bloco é exibido com uma lista dos usuários online da sua respectiva área. Ao invés de criar um bloco para área grátis e um bloco para área paga, um único bloco genérico pode ser criado, com duas views que exibem as informações diferentes dependendo do contexto.


Como comuniquei no início desse post, a ideia não era ser um introdução ao Drupal, e sim uma breve explicação dos fundamentos básicos, e espero muito ter te ajudado com as informações!

Aqui embaixo coloquei as fontes que me ajudaram na construção desse conteúdo e mais alguns materiais de estudo para que você possa continuar se aperfeiçoando.
Ficou com alguma dúvida ou quer colaborar com o conteúdo? Pode deixar nos comentários que vamos adorar ter você por aqui. Abraços e até a próxima! 🙂

 

Fonte e materiais de estudo:

Além disso, caso tenha mais interesse em Drupal, aqui no nosso blog temos mais posts sobre, vem ver: Arquivos #Drupal – Taller.

Sair da versão mobile