SlideShare a Scribd company logo
1 of 29
Download to read offline
Drupal 4 Dev
Aprendendo Drupal do ponto de
vista de desenvolvedores
Pedro Rocha / SingleView
Consultor em Tecnologia da Informação e Inteligência de Marketing
pedrorocha@singleview.com.br
@pedrogomesrocha




Rio de Janeiro, 10 de Novembro de 2012
Sobre o que vamos falar

1.   O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor
2.   Estrutura do Drupal
3.   Menu System
4.   PHPTemplate
5.   Form API
6.   Versionamento de código
7.   Principais módulos estruturais
8.   Drupal para projetos Corporativos
9.   Potenciais como aplicativo: Distros
10. Futuro: Drupal 8
Quem sou eu

•   Desde 2001 ligado a desenvolvimento web e novas tecnologias

•   Atuei com webdesign, administração e otimização de servidores, programação
    em Java e PHP, gerenciamento de projetos e atualmente como consultor

•   Atuante na comunidade internacional de Drupal desde 2007

•   Após usar diversas ferramentas como Wordpress, Joomla, Liferay, Moodle,
    CakePHP, Code Igniter, JSF, J2EE, enxerguei um alto potencial no Drupal e o
    defini como foco principal de estudos e projetos

•   Mantenho módulos do Drupal, colaboro com patches, auxilio com dicas no
    meu blog e na lista de discussão da comunidade brasileira de Drupal, além de
    apoiar comunidades open source em seus eventos
1 - O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor


Pode ser chocante para muitos, mas o Drupal não é uma linguagem de
programação, nem um framework de código!


Ou seja, não faz sentido algum querer compará-lo com:
• Symfony, Cake PHP, Code Igniter, etc
• Rails, Ruby
• JSF / Java
• Web2py / Python
e tantas outras linguagens e frameworks por ai...
1 - O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor

Se quisermos comparar o Drupal com algum outro projeto da mesma
“categoria”, talvez devamos olhar para:




Isso porque o Drupal é uma plataforma, também chamado de CMS. O
problema com CMS é ser muito vago, conseguindo a proeza de juntar no
mesmo saco projetos extremamente distintos, como os 4 exemplos
acima.
1 - O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor


• O Drupal não é OO (orientado a objetos)

• Usa PHP 5 ?

• Seu código é ruim

• Não utiliza MVC

• Possui baixa performance e não é escalável
1 - O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor


                    Comunidade
2 - Estrutura do Drupal


• Módulos
• Variáveis de sistema
• Paginas
• Blocos
• Entity & Entity Types (User, Node, Comment, Product, Contacts, etc)
• Fields
• Displays
• Hooks (convenções)
2 - Estrutura do Drupal – Módulos & Variáveis de sistema


Em relação à arquitetura em que o Drupal foi construído, ao longo dos
seus 10 anos de vida, não há como fugir da analogia a peças de Lego ou
de um quebra-cabeça.
No entanto, é mais interessante ainda,
Pois o sistema é completo em si,
não dependendo de outras peças,
mas crescendo enormemente com
cada nova peça que surge.
2 - Estrutura do Drupal – Paginas & Blocos


Cada página que o Drupal retorna é
composta por uma série de blocos
de informação, ou widgets, que
podem vir de diversos módulos
distintos, ou mesmo em combinação,
que pode ser igual para todos os
usuários ou ser contextualizada de
acordo com cada usuário que acessa
a página.
2 - Estrutura do Drupal – Entity & Fields


• API Orientada a Objetos para servir de “Entidade base” de onde as
  demais deverão extender, através dos Entity Types
• Entity Types(User, Node, Comment, Product, Contacts, etc)
• As Entities podem ser customizadas via interface, adicionando e
  removendo atributos a essa Entity, através dos Fields
• Os Fields se baseiam na Field API, que é uma API altamente robusta e
  que, partindo do conceito básico de “campo de formulário”, é
  extendida através de dezenas de módulos, com campos para arquivos
  de Media, Upload de arquivos em massa, entre diversos outros tipos
  de campo.
2 - Estrutura do Drupal – Entity & Fields
2 - Estrutura do Drupal – Displays
2 - Estrutura do Drupal – Displays


Desde o ínício, o Drupal é preparado para que o conteúdo possa adotar
formas diversas de apresentação, ou seja, o mesmo cadastro pode estar em
uma lista, em uma página específica dele, em um bloco, etc, com uma grande
facilidade nessa gestão de diferentes Displays.
Esse conceito evoluiu muito e hoje vemos projetos em que a mesma
instalação do Drupal responde por alimentar o site, um aplicativo mobile(via
JSON, por exemplo), uma interface em Flash, ou mesmo através de XML.
E não esqueçamos que o Drupal 7 foi a primeira plataforma a nativamente
suportar a exportação de seus dados através de RDF, um padrão
fundamental para o próximo passo da internet: a web semântica.
2 - Estrutura do Drupal – Hooks


“Plugável” é o termo que melhor define a arquitetura do Drupal, aonde
cada módulo pode criar “hooks”(ganchos), aonde outros módulos podem
se plugar, interagindo diretamente, através dessa interface.
3 - Menu System


O Drupal se baseia nas URLs para definir como tratar uma requisição,
possuindo um sistema interno chamado “Menu System”, que é altamente
poderoso e flexível, agindo como “Page Controller” e tratando de
questões como segurança e acesso, entre outras.



Ex: “node/456/edit/registration”
• node
• ID do node
• edit
• registration
4 - PHP Template


Uma parte fundamental do Drupal é seu sistema de templates, o PHP
Template, responsável por uma enorme flexibilidade, aonde todo output
gerado pelo sistema é possível de ser interceptado e sobrescrito, aonde
incrementando ou removendo partes, podemos potencializar seus
resultados ou habilitar o sistema a novos casos de uso.

<?php

function theme_pagina_noticias() {...}
pagina-noticias.tpl.php
5 - Form API


Se tem uma coisa fácil e fantástica no Drupal é a forma como trabalha
com formulários, a chamada “Form API”, através da qual podemos criar
formulários com arrays() como:

$form[‘mensagem_ao_usuario'] = array(
  '#type' => 'textarea',
  '#title' => ‘Mensagem que deseja enviar ao usuário',
  '#required' => TRUE,
);


Além de contarmos com mecanismos de validação, integração com AJAX,
entre inúmeras outras ferramentas para o tratamento de dados que são
nativas do Drupal
6 - Versionamento de código


Para trabalhar com versionamento de código, a saída encontrada pela
comunidade Drupal foi criar módulos que ajudam a exportar as
configurações criadas via interface, gerando código que gerencia a
sincronização entre o que está configurado na base de dados e o que está
definido no código do módulo.



Os principais módulos com esse objetivo são:
• Features
• Strongarm
• CTools Exportables
7 – Alguns dos principais módulos estruturais


A arquitetura do Drupal, altamente modular e plugável permite o
surgimento de módulos que potencializam outros módulos, e assim por
diante. Alguns módulos que elevam ainda mais as possibilidades são:
• Views
• Context
• Rules
• Panels
e estou cometendo uma injustiça enorme ao citar somente 4, pois
realmente existem muitos módulos com altíssimo potencial para elevar o
Drupal em determinados casos de uso
7 – Alguns dos principais módulos estruturais - Views
7 – Alguns dos principais módulos estruturais – Panels
8 - Drupal para projetos Corporativos


Já foi a época em que o Drupal vivia somente de interface gráfica e
processos manuais, algo inimaginável em grandes projetos corporativos,
que exigem processos como Integração Contínua, testes automatizados,
entre outros. Para isso, algumas ferramentas se tornaram muito
importantes no contexto de Drupal:


•   Drush
•   Simpletest
•   Jenkins
•   Drush Make
•   etc
8 - Drupal para projetos Corporativos - Drush
8 - Drupal para projetos Corporativos - Simpletest
9 – Potenciais como aplicativo: Distros
10 – Futuro: Drupal 8
Drupal 4 Dev – considerações finais


Mais do que um CMS para criar websites, o Drupal é hoje uma plataforma
     adequada aos mais diversos tipos de projetos, com uma grande
      flexibilidade e capacidade de rápida adaptação a mudanças.

 Com um foco muito forte no reaproveitamento de partes de projetos, a
 colaboração dentro da comunidade gera muitos retornos para todos os
  envolvidos, cada vez com ferramentas mais e mais sofisticadas, todas
                    abertas, ao alcance de um click.

Para melhorar, só faltam mais profissionais investindo nessa plataforma!

             Acesse http://drupal.org e inicie sua jornada!
Drupal 4 Dev




                        Obrigado!




               pedrorocha@singleview.com.br

                   @pedrogomesrocha

More Related Content

What's hot

Informática para Internet - Aula 03
Informática para Internet - Aula 03Informática para Internet - Aula 03
Informática para Internet - Aula 03Anderson Andrade
 
Ai1415 ad-tp1-g5
Ai1415 ad-tp1-g5Ai1415 ad-tp1-g5
Ai1415 ad-tp1-g5silvia_ctdi
 
drupal: ligando os nos da rede
drupal: ligando os nos da rededrupal: ligando os nos da rede
drupal: ligando os nos da redeAndré Avorio
 
Colóquio Drupal na Universidade do Minho
Colóquio Drupal na Universidade do MinhoColóquio Drupal na Universidade do Minho
Colóquio Drupal na Universidade do Minhointrofini
 
Drupal workshop ist 2014
Drupal workshop ist 2014Drupal workshop ist 2014
Drupal workshop ist 2014Ricardo Amaro
 
Drupal workshop fcul_2014
Drupal workshop fcul_2014Drupal workshop fcul_2014
Drupal workshop fcul_2014Ricardo Amaro
 
Desenvolvimento web com (cms) Drupal
Desenvolvimento web com (cms) DrupalDesenvolvimento web com (cms) Drupal
Desenvolvimento web com (cms) DrupalEmerson Barros
 
Overview de Drupal pela Just Digital
Overview de Drupal pela Just DigitalOverview de Drupal pela Just Digital
Overview de Drupal pela Just DigitalJust Digital
 
Drupal e o seu ecossistema
Drupal e o seu ecossistemaDrupal e o seu ecossistema
Drupal e o seu ecossistemaDrupal Portugal
 
Desenvolvendo Web Sites Robustos
Desenvolvendo Web Sites RobustosDesenvolvendo Web Sites Robustos
Desenvolvendo Web Sites RobustosEmerson Barros
 
Palestra sobre CCK Seblod 1.8
Palestra sobre CCK Seblod 1.8Palestra sobre CCK Seblod 1.8
Palestra sobre CCK Seblod 1.8claudio alfonso
 
Principais CaracteríSticas Web 2
Principais CaracteríSticas Web 2Principais CaracteríSticas Web 2
Principais CaracteríSticas Web 2Thiago Fagner
 
Introdução ao Front-end no Desenvolvimento Web
Introdução ao Front-end no Desenvolvimento WebIntrodução ao Front-end no Desenvolvimento Web
Introdução ao Front-end no Desenvolvimento WebAnderson Luís Furlan
 
Apresentacao moodlesalud2013 alessandra
Apresentacao moodlesalud2013 alessandraApresentacao moodlesalud2013 alessandra
Apresentacao moodlesalud2013 alessandraMoodleSalud2013
 
Web design e Programação front-end
Web design e Programação front-endWeb design e Programação front-end
Web design e Programação front-endAnderson Luís Furlan
 

What's hot (20)

Informática para Internet - Aula 03
Informática para Internet - Aula 03Informática para Internet - Aula 03
Informática para Internet - Aula 03
 
Ai1415 ad-tp1-g5
Ai1415 ad-tp1-g5Ai1415 ad-tp1-g5
Ai1415 ad-tp1-g5
 
Drupal - WEG
Drupal - WEGDrupal - WEG
Drupal - WEG
 
drupal: ligando os nos da rede
drupal: ligando os nos da rededrupal: ligando os nos da rede
drupal: ligando os nos da rede
 
Colóquio Drupal na Universidade do Minho
Colóquio Drupal na Universidade do MinhoColóquio Drupal na Universidade do Minho
Colóquio Drupal na Universidade do Minho
 
Drupal workshop ist 2014
Drupal workshop ist 2014Drupal workshop ist 2014
Drupal workshop ist 2014
 
Drupal workshop fcul_2014
Drupal workshop fcul_2014Drupal workshop fcul_2014
Drupal workshop fcul_2014
 
Desenvolvimento web com (cms) Drupal
Desenvolvimento web com (cms) DrupalDesenvolvimento web com (cms) Drupal
Desenvolvimento web com (cms) Drupal
 
Overview de Drupal pela Just Digital
Overview de Drupal pela Just DigitalOverview de Drupal pela Just Digital
Overview de Drupal pela Just Digital
 
Drupal e o seu ecossistema
Drupal e o seu ecossistemaDrupal e o seu ecossistema
Drupal e o seu ecossistema
 
Desenvolvendo Web Sites Robustos
Desenvolvendo Web Sites RobustosDesenvolvendo Web Sites Robustos
Desenvolvendo Web Sites Robustos
 
Ai ar-tp2-g1-a
Ai ar-tp2-g1-aAi ar-tp2-g1-a
Ai ar-tp2-g1-a
 
Cronograma final 13maio
Cronograma final 13maioCronograma final 13maio
Cronograma final 13maio
 
Palestra sobre CCK Seblod 1.8
Palestra sobre CCK Seblod 1.8Palestra sobre CCK Seblod 1.8
Palestra sobre CCK Seblod 1.8
 
Principais CaracteríSticas Web 2
Principais CaracteríSticas Web 2Principais CaracteríSticas Web 2
Principais CaracteríSticas Web 2
 
Programação web e o front-end
Programação web e o front-endProgramação web e o front-end
Programação web e o front-end
 
Monografia Web 2.0
Monografia Web 2.0Monografia Web 2.0
Monografia Web 2.0
 
Introdução ao Front-end no Desenvolvimento Web
Introdução ao Front-end no Desenvolvimento WebIntrodução ao Front-end no Desenvolvimento Web
Introdução ao Front-end no Desenvolvimento Web
 
Apresentacao moodlesalud2013 alessandra
Apresentacao moodlesalud2013 alessandraApresentacao moodlesalud2013 alessandra
Apresentacao moodlesalud2013 alessandra
 
Web design e Programação front-end
Web design e Programação front-endWeb design e Programação front-end
Web design e Programação front-end
 

Similar to Aprendendo Drupal

Overview sobre o CMS Drupal
Overview sobre o CMS DrupalOverview sobre o CMS Drupal
Overview sobre o CMS DrupalRafael Cichini
 
Distribuições Drupal: de e-Gov a e-Learning
Distribuições Drupal: de e-Gov a e-LearningDistribuições Drupal: de e-Gov a e-Learning
Distribuições Drupal: de e-Gov a e-LearningPedro Rocha
 
Drupal Commerce: muito além de uma plataforma de e-commerce
Drupal Commerce: muito além de uma plataforma de e-commerceDrupal Commerce: muito além de uma plataforma de e-commerce
Drupal Commerce: muito além de uma plataforma de e-commercePedro Rocha
 
Tudo que você precisa saber sobre as principais alterações no Drupal 8
Tudo que você precisa saber sobre as principais alterações no Drupal 8 Tudo que você precisa saber sobre as principais alterações no Drupal 8
Tudo que você precisa saber sobre as principais alterações no Drupal 8 Acquia
 
5 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 8
5 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 85 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 8
5 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 8Taller Negócio Digitais
 
Visão Geral Drupal - Natura Drupal Day
Visão Geral Drupal - Natura Drupal DayVisão Geral Drupal - Natura Drupal Day
Visão Geral Drupal - Natura Drupal DayCaio R. N. Pereira
 
Desenvolvimento Web com Drupal 6
Desenvolvimento Web com Drupal 6Desenvolvimento Web com Drupal 6
Desenvolvimento Web com Drupal 6Vinícius de Paula
 
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) Grupo Treinar
 
Drupal a escolha certa para o seus próximos projetos
Drupal   a escolha certa para o seus próximos projetosDrupal   a escolha certa para o seus próximos projetos
Drupal a escolha certa para o seus próximos projetosRenato Vasconcellos Gomes
 
Gestão da informação com apache solr e drupal
Gestão da informação com apache solr e drupalGestão da informação com apache solr e drupal
Gestão da informação com apache solr e drupalPedro Rocha
 
Case Drupal: Todeschini
Case Drupal: TodeschiniCase Drupal: Todeschini
Case Drupal: TodeschiniMMDA
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETMário Meyrelles
 

Similar to Aprendendo Drupal (20)

Overview sobre o CMS Drupal
Overview sobre o CMS DrupalOverview sobre o CMS Drupal
Overview sobre o CMS Drupal
 
Distribuições Drupal: de e-Gov a e-Learning
Distribuições Drupal: de e-Gov a e-LearningDistribuições Drupal: de e-Gov a e-Learning
Distribuições Drupal: de e-Gov a e-Learning
 
Drupal Commerce: muito além de uma plataforma de e-commerce
Drupal Commerce: muito além de uma plataforma de e-commerceDrupal Commerce: muito além de uma plataforma de e-commerce
Drupal Commerce: muito além de uma plataforma de e-commerce
 
Tudo que você precisa saber sobre as principais alterações no Drupal 8
Tudo que você precisa saber sobre as principais alterações no Drupal 8 Tudo que você precisa saber sobre as principais alterações no Drupal 8
Tudo que você precisa saber sobre as principais alterações no Drupal 8
 
5 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 8
5 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 85 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 8
5 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 8
 
Visão Geral Drupal - Natura Drupal Day
Visão Geral Drupal - Natura Drupal DayVisão Geral Drupal - Natura Drupal Day
Visão Geral Drupal - Natura Drupal Day
 
Ai ad-tp3-g3
Ai ad-tp3-g3Ai ad-tp3-g3
Ai ad-tp3-g3
 
Desenvolvimento Web com Drupal 6
Desenvolvimento Web com Drupal 6Desenvolvimento Web com Drupal 6
Desenvolvimento Web com Drupal 6
 
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
 
Drupal a escolha certa para o seus próximos projetos
Drupal   a escolha certa para o seus próximos projetosDrupal   a escolha certa para o seus próximos projetos
Drupal a escolha certa para o seus próximos projetos
 
Gestão da informação com apache solr e drupal
Gestão da informação com apache solr e drupalGestão da informação com apache solr e drupal
Gestão da informação com apache solr e drupal
 
A Linguagem Php
A Linguagem PhpA Linguagem Php
A Linguagem Php
 
marketing digital aula 6
marketing digital aula 6marketing digital aula 6
marketing digital aula 6
 
Integração e APIs com Mulesoft
Integração e APIs com MulesoftIntegração e APIs com Mulesoft
Integração e APIs com Mulesoft
 
Cursos
CursosCursos
Cursos
 
apresentacao e instalacao do Joomla3
apresentacao e instalacao do Joomla3apresentacao e instalacao do Joomla3
apresentacao e instalacao do Joomla3
 
Case Drupal: Todeschini
Case Drupal: TodeschiniCase Drupal: Todeschini
Case Drupal: Todeschini
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 
Drupal Services
Drupal ServicesDrupal Services
Drupal Services
 
Dream 01
Dream 01Dream 01
Dream 01
 

Aprendendo Drupal

  • 1. Drupal 4 Dev Aprendendo Drupal do ponto de vista de desenvolvedores Pedro Rocha / SingleView Consultor em Tecnologia da Informação e Inteligência de Marketing pedrorocha@singleview.com.br @pedrogomesrocha Rio de Janeiro, 10 de Novembro de 2012
  • 2. Sobre o que vamos falar 1. O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor 2. Estrutura do Drupal 3. Menu System 4. PHPTemplate 5. Form API 6. Versionamento de código 7. Principais módulos estruturais 8. Drupal para projetos Corporativos 9. Potenciais como aplicativo: Distros 10. Futuro: Drupal 8
  • 3. Quem sou eu • Desde 2001 ligado a desenvolvimento web e novas tecnologias • Atuei com webdesign, administração e otimização de servidores, programação em Java e PHP, gerenciamento de projetos e atualmente como consultor • Atuante na comunidade internacional de Drupal desde 2007 • Após usar diversas ferramentas como Wordpress, Joomla, Liferay, Moodle, CakePHP, Code Igniter, JSF, J2EE, enxerguei um alto potencial no Drupal e o defini como foco principal de estudos e projetos • Mantenho módulos do Drupal, colaboro com patches, auxilio com dicas no meu blog e na lista de discussão da comunidade brasileira de Drupal, além de apoiar comunidades open source em seus eventos
  • 4. 1 - O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor Pode ser chocante para muitos, mas o Drupal não é uma linguagem de programação, nem um framework de código! Ou seja, não faz sentido algum querer compará-lo com: • Symfony, Cake PHP, Code Igniter, etc • Rails, Ruby • JSF / Java • Web2py / Python e tantas outras linguagens e frameworks por ai...
  • 5. 1 - O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor Se quisermos comparar o Drupal com algum outro projeto da mesma “categoria”, talvez devamos olhar para: Isso porque o Drupal é uma plataforma, também chamado de CMS. O problema com CMS é ser muito vago, conseguindo a proeza de juntar no mesmo saco projetos extremamente distintos, como os 4 exemplos acima.
  • 6. 1 - O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor • O Drupal não é OO (orientado a objetos) • Usa PHP 5 ? • Seu código é ruim • Não utiliza MVC • Possui baixa performance e não é escalável
  • 7. 1 - O que é Drupal? Mitos e verdades sob a ótica de um desenvolvedor Comunidade
  • 8. 2 - Estrutura do Drupal • Módulos • Variáveis de sistema • Paginas • Blocos • Entity & Entity Types (User, Node, Comment, Product, Contacts, etc) • Fields • Displays • Hooks (convenções)
  • 9. 2 - Estrutura do Drupal – Módulos & Variáveis de sistema Em relação à arquitetura em que o Drupal foi construído, ao longo dos seus 10 anos de vida, não há como fugir da analogia a peças de Lego ou de um quebra-cabeça. No entanto, é mais interessante ainda, Pois o sistema é completo em si, não dependendo de outras peças, mas crescendo enormemente com cada nova peça que surge.
  • 10. 2 - Estrutura do Drupal – Paginas & Blocos Cada página que o Drupal retorna é composta por uma série de blocos de informação, ou widgets, que podem vir de diversos módulos distintos, ou mesmo em combinação, que pode ser igual para todos os usuários ou ser contextualizada de acordo com cada usuário que acessa a página.
  • 11. 2 - Estrutura do Drupal – Entity & Fields • API Orientada a Objetos para servir de “Entidade base” de onde as demais deverão extender, através dos Entity Types • Entity Types(User, Node, Comment, Product, Contacts, etc) • As Entities podem ser customizadas via interface, adicionando e removendo atributos a essa Entity, através dos Fields • Os Fields se baseiam na Field API, que é uma API altamente robusta e que, partindo do conceito básico de “campo de formulário”, é extendida através de dezenas de módulos, com campos para arquivos de Media, Upload de arquivos em massa, entre diversos outros tipos de campo.
  • 12. 2 - Estrutura do Drupal – Entity & Fields
  • 13. 2 - Estrutura do Drupal – Displays
  • 14. 2 - Estrutura do Drupal – Displays Desde o ínício, o Drupal é preparado para que o conteúdo possa adotar formas diversas de apresentação, ou seja, o mesmo cadastro pode estar em uma lista, em uma página específica dele, em um bloco, etc, com uma grande facilidade nessa gestão de diferentes Displays. Esse conceito evoluiu muito e hoje vemos projetos em que a mesma instalação do Drupal responde por alimentar o site, um aplicativo mobile(via JSON, por exemplo), uma interface em Flash, ou mesmo através de XML. E não esqueçamos que o Drupal 7 foi a primeira plataforma a nativamente suportar a exportação de seus dados através de RDF, um padrão fundamental para o próximo passo da internet: a web semântica.
  • 15. 2 - Estrutura do Drupal – Hooks “Plugável” é o termo que melhor define a arquitetura do Drupal, aonde cada módulo pode criar “hooks”(ganchos), aonde outros módulos podem se plugar, interagindo diretamente, através dessa interface.
  • 16. 3 - Menu System O Drupal se baseia nas URLs para definir como tratar uma requisição, possuindo um sistema interno chamado “Menu System”, que é altamente poderoso e flexível, agindo como “Page Controller” e tratando de questões como segurança e acesso, entre outras. Ex: “node/456/edit/registration” • node • ID do node • edit • registration
  • 17. 4 - PHP Template Uma parte fundamental do Drupal é seu sistema de templates, o PHP Template, responsável por uma enorme flexibilidade, aonde todo output gerado pelo sistema é possível de ser interceptado e sobrescrito, aonde incrementando ou removendo partes, podemos potencializar seus resultados ou habilitar o sistema a novos casos de uso. <?php function theme_pagina_noticias() {...} pagina-noticias.tpl.php
  • 18. 5 - Form API Se tem uma coisa fácil e fantástica no Drupal é a forma como trabalha com formulários, a chamada “Form API”, através da qual podemos criar formulários com arrays() como: $form[‘mensagem_ao_usuario'] = array( '#type' => 'textarea', '#title' => ‘Mensagem que deseja enviar ao usuário', '#required' => TRUE, ); Além de contarmos com mecanismos de validação, integração com AJAX, entre inúmeras outras ferramentas para o tratamento de dados que são nativas do Drupal
  • 19. 6 - Versionamento de código Para trabalhar com versionamento de código, a saída encontrada pela comunidade Drupal foi criar módulos que ajudam a exportar as configurações criadas via interface, gerando código que gerencia a sincronização entre o que está configurado na base de dados e o que está definido no código do módulo. Os principais módulos com esse objetivo são: • Features • Strongarm • CTools Exportables
  • 20. 7 – Alguns dos principais módulos estruturais A arquitetura do Drupal, altamente modular e plugável permite o surgimento de módulos que potencializam outros módulos, e assim por diante. Alguns módulos que elevam ainda mais as possibilidades são: • Views • Context • Rules • Panels e estou cometendo uma injustiça enorme ao citar somente 4, pois realmente existem muitos módulos com altíssimo potencial para elevar o Drupal em determinados casos de uso
  • 21. 7 – Alguns dos principais módulos estruturais - Views
  • 22. 7 – Alguns dos principais módulos estruturais – Panels
  • 23. 8 - Drupal para projetos Corporativos Já foi a época em que o Drupal vivia somente de interface gráfica e processos manuais, algo inimaginável em grandes projetos corporativos, que exigem processos como Integração Contínua, testes automatizados, entre outros. Para isso, algumas ferramentas se tornaram muito importantes no contexto de Drupal: • Drush • Simpletest • Jenkins • Drush Make • etc
  • 24. 8 - Drupal para projetos Corporativos - Drush
  • 25. 8 - Drupal para projetos Corporativos - Simpletest
  • 26. 9 – Potenciais como aplicativo: Distros
  • 27. 10 – Futuro: Drupal 8
  • 28. Drupal 4 Dev – considerações finais Mais do que um CMS para criar websites, o Drupal é hoje uma plataforma adequada aos mais diversos tipos de projetos, com uma grande flexibilidade e capacidade de rápida adaptação a mudanças. Com um foco muito forte no reaproveitamento de partes de projetos, a colaboração dentro da comunidade gera muitos retornos para todos os envolvidos, cada vez com ferramentas mais e mais sofisticadas, todas abertas, ao alcance de um click. Para melhorar, só faltam mais profissionais investindo nessa plataforma! Acesse http://drupal.org e inicie sua jornada!
  • 29. Drupal 4 Dev Obrigado! pedrorocha@singleview.com.br @pedrogomesrocha