introdução ao drupal 7
DESCRIPTION
Palestra de introdução ao Drupal (versão 7) apresentada no IV Encontro PHP-PB, dentro do FLISOL - Patos/PB, em 28 de abril de 2012.TRANSCRIPT
Introdução ao
FLISOL 2012 – Festival Latinoamericano de Instalação de Software LivreIV PHP-PB – Encontro do Grupo de Usuários PHP da Paraíba
Gedvan P. Dias – [email protected]
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
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
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
O que é o Drupal?
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
CMSContent 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
CMFContent 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
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
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Por que Drupal?
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Principais Características
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
Centenas de módulos para as mais diversas necessidades
Riqueza de funcionalidades
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
RobustezArquitetura sólida e código amplamente testado
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
ModularidadeO 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
FlexibilidadeAlta capacidade de customização e um sistema de temas
totalmente flexível
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
Software LivreLicença GNU/GPL
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Algumas Desvantagens
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
Curva de aprendizadoNo 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
Temas prontosNão há uma grande quantidade de temas prontos
e gratuitos disponíveis
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
Documentação em portuguêsA maior parte da documentação é em inglês
(problema?)
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
Comunidade brasileiraA base de usuários e desenvolvedores Drupal no Brasil ainda é
pequena, comparado a outros CMS's
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
O que pode ser feitocom o Drupal?
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
Bastante coisa...
● Blogs● Sites pessoais● Sites corporativos● Galerias de fotos● Galerias de vídeos● Fóruns● E-commerce● E-learning
● Comunidades● Intranets● WIKIs● Sites internacionais● Portais de notícias● Hotsites● Redes sociais● …
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
Vejamos alguns exemplos...
Acabou a brincadeira
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Arquitetura
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
Principais módulos do core
● System● Node● Fields
● Text, Number, List, File, Image, Options
● User● Theme
● Block● Taxonomy● Comment● Menu● Database logging● Locale
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
Outros módulos do core
● Search● Blog● Book● Forum● Path● Contact● Help
● Poll (enquetes)● RDF● Statistics● Testing● Update manager● Trigger● …
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Node SystemConteúdo
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
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
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
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
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Tipos de Conteúdo
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Fields SystemCampos
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
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
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)
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Taxonomia
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
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
Taxonomia● Suporta:
● Profundidade ilimitada para sub-categorias● Múltiplas categorias● Tags (vocabulário aberto)● Termos relacionados
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
Exemplo
Vocabulário:Categorias de notícias
Termos:● Brasil● Mundo● Política● Esportes
– Futebol– Vôlei– Basquete
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
Exemplo
Vocabulário:Gêneros de filmes
Termos:● Ação● Comédia● Romance● Drama● Suspense● Documentário● …
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Usuários
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
Gerenciamento de usuáriosCadastro, login, logout, auto-registro, “esqueci a senha”, …
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
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
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Theme SystemTemas
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
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
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
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
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
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
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
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
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Blocos
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
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
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.
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Módulos Contribuídos
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
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
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
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
Muitos, muitos outros módulosPanels, Display Suite, WYSIWYG, Webform, Lightbox2, Date, Devel, Fivestar, CAPTCHA, XML Sitemap, Simplenews, Rules,
Organic Groups, Location, Advertisement, …
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
ProfilesDistribuiçõ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
OpenAtriumSistema 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
MartplugSistema de e-commerce pré-configurado, com suporte a
catálogo de produtos, importação, produtos digitais, integração com redes sociais, slideshow, etc.
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
PressflowDistribuiçã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
OutrosDrupal Commons, OpenPublish, OpenChurch, OpenPublic, …
drupaldistrowatch.com
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
DemonstraçãoSistema de anúncio de veículos
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Concluindo...Por que usar o Drupal?
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
TempoSegurança
FlexibilidadeColaboração
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
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
Comunidade brasileira
● www.drupal-br.org● Comunidade brasileira de Drupal
● groups.google.com/group/drupal-br● Lista de discussão no Google Groups
FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias
Dúvidas?
Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB
Obrigado!@gedvan
Avalie esta palestra:http://abda.la/flisol/pubilc