1. Introdução ao
FLISOL 2012 – Festival Latinoamericano de Instalação de Software Livre
IV PHP-PB – Encontro do Grupo de Usuários PHP da Paraíba
Gedvan P. Dias – gedvan@gmail.com
2. Sobre mim
●
Mestrado em Informática pela UFPB
●
Professor no IFPB e na Faculdade IDEZ
●
Trabalho com desenvolvimento web e PHP há mais
de 8 anos
●
Trabalho com Drupal há quase 3 anos
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
3. O que é o Drupal?
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
4. CMS
Content Management System
Para usuários comuns, é uma ferramenta livre para publicar e
organizar conteúdo na web
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
5. CMF
Content Management Framework
Para desenvolvedores, provê uma sólida base para estender e
implementar soluções de gerenciamento de conteúdo em PHP
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
6. Breve Histórico
● Iniciado em 1999 por Dries Buytaert
(Bélgica)
● 2001: v2.0 e v3.0
● 2002: v4.0
● 2005: v4.6
● 2007: v5.0
● 2008: v6.0
● 2011: v7.0
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
9. Riqueza de funcionalidades
Centenas de módulos para as mais diversas necessidades
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
10. Robustez
Arquitetura sólida e código amplamente testado
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
11. Modularidade
O sistema de hooks permite uma integração transparente
(seamless integration) entre os módulos
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
12. Flexibilidade
Alta capacidade de customização e um sistema de temas
totalmente flexível
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
13. Software Livre
Licença GNU/GPL
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
15. Curva de aprendizado
No começo, o aprendizado pode ser um pouco lento,
comparado a outras ferramentas
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
16. Temas prontos
Não há uma grande quantidade de temas prontos
e gratuitos disponíveis
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
17. Documentação em português
A maior parte da documentação é em inglês
(problema?)
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
18. Comunidade brasileira
A base de usuários e desenvolvedores Drupal no Brasil ainda é
pequena, comparado a outros CMS's
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
19. O que pode ser feito
com o Drupal?
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
20. Bastante coisa...
● Blogs ● Comunidades
● Sites pessoais ● Intranets
● Sites corporativos ● WIKIs
● Galerias de fotos ● Sites internacionais
● Galerias de vídeos ● Portais de notícias
● Fóruns ● Hotsites
● E-commerce ● Redes sociais
● E-learning ● …
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
40. Principais módulos do core
●
System ●
Block
●
Node ●
Taxonomy
●
Fields ●
Comment
●
Text, Number, List, File, ●
Menu
Image, Options
●
Database logging
●
User
●
Locale
●
Theme
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
41. Outros módulos do core
●
Search ●
Poll (enquetes)
●
Blog ●
RDF
●
Book ●
Statistics
●
Forum ●
Testing
●
Path ●
Update manager
●
Contact ●
Trigger
●
Help ●
…
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
42. Node System
Conteúdo
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
43. Node System
●
Os conteúdos no Drupal são chamado de nodes
●
Página, artigo, notícia, evento, post de blog, tópico de
fórum, galeria de fotos, etc.
●
Cada um dos itens acima é um tipo de conteúdo
diferente (node type)
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
44. Propriedades Comuns
●
Todos os nodes têm um conjunto de características
e campos básicos
●
Título, corpo, workflow, versionamento, comentários,
configurações de menu e endereço
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
45. Tipos de Conteúdo
● Na instalação padrão, temos os tipos de conteúdo
Artigo e Página
● Módulos podem disponibilizar outros tipos de conteúdo
● Ex: O módulo Fórum cria o tipo de conteúdo Tópico de Fórum,
que possuem as propriedades comuns + propriedades
específicas
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
47. Fields System
Campos
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
48. Fields
●
Antigo CCK (Content Construction Kit)
●
Permite criar novos tipos de conteúdos
●
Permite adicionar campos de diversos tipos aos
conteúdos
●
Textos, imagens, checkboxes, radiogroups, listas,
arquivos, referências a nodes, etc.
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
49. Exemplo
● Portal de veículos
● Tipo de conteúdo: Veículo
● Campos adicionais:
● Fabricante (texto)
● Ano (número)
● Valor (monetário)
● Imagens (3) (arquivos)
● Opcionais (checkboxes)
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
51. Taxonomia
●
O módulo taxonomy permite a categorização do
conteúdo (em vocabulários e termos)
●
Vocabulários são grupos de categorias (termos)
●
Um vocabulário pode ser usado por vários tipos de
conteúdo
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
52. Taxonomia
●
Suporta:
●
Profundidade ilimitada para sub-categorias
●
Múltiplas categorias
●
T (vocabulário aberto)
ags
●
Termos relacionados
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
53. Exemplo
Termos:
●
Brasil
Vocabulário: ●
Mundo
Categorias de
●
Política
notícias
●
Esportes
– Futebol
– Vôlei
– Basquete
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
54. Exemplo
Termos:
●
Ação
Vocabulário: ●
Comédia
Gêneros de filmes
●
Romance
●
Drama
●
Suspense
●
Documentário
● …
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
56. Gerenciamento de usuários
Cadastro, login, logout, auto-registro, “esqueci a senha”, …
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
57. Permissões
●
Papéis (roles)
●
Funções/papéis/grupos de usuários
●
Roles padrão: visitante, usuário registrado, administrador
●
Número ilimitado de novas roles
●
Sistema de permissões
●
Controle refinado de cada permissão para cada role
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
58.
59. Theme System
Temas
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
60. Temas
●
Sistema altamente flexível para criação de temas
●
Um tema pode definir, entre outras coisas:
●
Arquivos CSS e Javascript a serem utilizados
●
Regiões disponíveis para os blocos
●
Arquivos de template utilizados
●
Funções para programação da lógica
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
61. Temas derivados
●
Criação de um tema baseado em outro existente
●
Pode-se manter os arquivos do tema base, adicionando
ou sobrescrevendo apenas os arquivos necessários
●
Herda-se também todas as outras características, como
configurações e funções
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
62. Template engines
●
Por padrão, utiliza-se o PHPTemplate
●
Utiliza o próprio PHP como linguagem
●
Mas pode-se utilizar outras engines (incomum)
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
63. Arquivos de template
●
Os arquivos de template usam a extensão .tpl.php
●
Pode-se sobrescrever a marcação padrão de vários
elementos
●
Ex: Páginas (page.tpl.php), nodes (node.tpl.php), blocos
(block.tpl.php), comentários (comment.tpl.php), …
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
64. Template suggestions
●
Templates para elementos mais específicos:
●
node--type.tpl.php (ex: node--article.tpl.php)
– Template para tipos específicos de nodes
●
node--id.tpl.php (ex: node--5.tpl.php)
– Template para um node específico
●
page--front.tpl.php
– Template para a página inicial
●
Vários outros...
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
65. Template.php
●
No arquivo template.php podem ser criadas
funções para a lógica do tema
●
Evitando código spaghetti nos templates
●
Também podem ser criadas funções de pré-
processamento de nodes, páginas, blocos, etc.
function <theme>_preprocess_page($vars) { … }
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
66. Ainda...
●
Formulários e variáveis de configuração
●
Esquemas de cores
●
Temas diferentes ou o mesmo tema para o
front end e o back end
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
68. Blocos
● “Pedaços” de aplicações
● Últimas notícias
● Lista de categorias
● Lista de usuários
● Menus
● Muitas outras opções
● Permite o posicionamento de blocos em regiões do sites
● As regiões são definidas pelos temas
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
69.
70. Outros Módulos do Core
●
Locale
●
Suporte a qualquer idioma através de UTF-8
●
Gettext com interface web para tradução
●
Importação e exportação
●
Search, Contact, Watchdog, Forum, Blog, Poll,
Comment, Statistics, Trigger, Path, etc.
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
72. Views
●
Método altamente flexível para exibir listas e
tabelas de conteúdo no site
●
Consiste em uma ferramenta para auxiliar na
construção e execução de queries e exibição dos
resultados
●
Permite exibir os conteúdos em blocos, páginas e
feeds, entre outros
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
73. Pathauto
●
Permite a geração de URLs de acordo com padrões
pré-configurados
●
Permite criar URLs dos tipos:
●
meusite.com/noticias/2010/06/50/comeca-o-ensol
●
meusite.com/artigos/software-livre/ensol-e-a-liberdade-
no-extremo
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
74. Drupal Commerce
●
Sistema completo de e-commerce integrado ao
Drupal
●
Carrinho de compras, atributos de produtos,
estoque, envio, endereços, promoções, sistemas de
pagamento, etc.
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
75. Muitos, muitos outros módulos
Panels, Display Suite, WYSIWYG, Webform, Lightbox2, Date,
Devel, Fivestar, CAPTCHA, XML Sitemap, Simplenews, Rules,
Organic Groups, Location, Advertisement, …
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
76. Profiles
Distribuições do Drupal, com módulos e configurações
pré-instalados, para atender necessidades específicas
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
77. OpenAtrium
Sistema de “intranet” para gerenciamento de projetos, com
suporte a case tracker, blog, calendário, wiki, grupos, etc.
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
78.
79. Martplug
Sistema de e-commerce pré-configurado, com suporte a
catálogo de produtos, importação, produtos digitais, integração
com redes sociais, slideshow, etc.
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
81. Pressflow
Distribuição do Drupal com foco em desempenho,
escalabilidade e disponibilidade. Ideal para sites de alto tráfego.
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
82.
83. Outros
Drupal Commons, OpenPublish, OpenChurch, OpenPublic, …
drupaldistrowatch.com
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
84. Demonstração
Sistema de anúncio de veículos
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
85. Concluindo...
Por que usar o Drupal?
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
86. Tempo
Segurança
Flexibilidade
Colaboração
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
87. Links e Referências
●
www.drupal.org
●
Site oficial
●
www.drupalmodules.com
●
Busca, avaliação e resenhas de módulos
●
www.drupalsites.net
●
Diretório de sites feitos com Drupal
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
88. Comunidade brasileira
●
www.drupal-br.org
●
Comunidade brasileira de Drupal
●
groups.google.com/group/drupal-br
●
Lista de discussão no Google Groups
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB