introdução ao drupal 7

90
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 – [email protected]

Upload: gedvan-dias

Post on 05-Dec-2014

4.384 views

Category:

Documents


0 download

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

Page 1: Introdução ao Drupal 7

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]

Page 2: Introdução ao Drupal 7

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

Page 3: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

O que é o Drupal?

Page 4: Introdução ao Drupal 7

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

Page 5: Introdução ao Drupal 7

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

Page 6: Introdução ao Drupal 7

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

Page 7: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Por que Drupal?

Page 8: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Principais Características

Page 9: Introdução ao Drupal 7

Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB

Centenas de módulos para as mais diversas necessidades

Riqueza de funcionalidades

Page 10: Introdução ao Drupal 7

Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB

RobustezArquitetura sólida e código amplamente testado

Page 11: Introdução ao Drupal 7

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

Page 12: Introdução ao Drupal 7

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

Page 13: Introdução ao Drupal 7

Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB

Software LivreLicença GNU/GPL

Page 14: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Algumas Desvantagens

Page 15: Introdução ao Drupal 7

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

Page 16: Introdução ao Drupal 7

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

Page 17: Introdução ao Drupal 7

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?)

Page 18: Introdução ao Drupal 7

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

Page 19: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

O que pode ser feitocom o Drupal?

Page 20: Introdução ao Drupal 7

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● …

Page 21: Introdução ao Drupal 7

Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB

Vejamos alguns exemplos...

Page 22: Introdução ao Drupal 7
Page 23: Introdução ao Drupal 7
Page 24: Introdução ao Drupal 7
Page 25: Introdução ao Drupal 7
Page 26: Introdução ao Drupal 7
Page 27: Introdução ao Drupal 7
Page 28: Introdução ao Drupal 7
Page 29: Introdução ao Drupal 7
Page 30: Introdução ao Drupal 7
Page 31: Introdução ao Drupal 7
Page 32: Introdução ao Drupal 7
Page 33: Introdução ao Drupal 7
Page 34: Introdução ao Drupal 7
Page 35: Introdução ao Drupal 7
Page 36: Introdução ao Drupal 7
Page 37: Introdução ao Drupal 7
Page 38: Introdução ao Drupal 7

Acabou a brincadeira

Page 39: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Arquitetura

Page 40: Introdução ao Drupal 7

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

Page 41: Introdução ao Drupal 7

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● …

Page 42: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Node SystemConteúdo

Page 43: Introdução ao Drupal 7

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)

Page 44: Introdução ao Drupal 7

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

Page 45: Introdução ao Drupal 7

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

Page 46: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Tipos de Conteúdo

Page 47: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Fields SystemCampos

Page 48: Introdução ao Drupal 7

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.

Page 49: Introdução ao Drupal 7

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)

Page 50: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Taxonomia

Page 51: Introdução ao Drupal 7

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

Page 52: Introdução ao Drupal 7

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

Page 53: Introdução ao Drupal 7

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

Page 54: Introdução ao Drupal 7

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● …

Page 55: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Usuários

Page 56: Introdução ao Drupal 7

Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB

Gerenciamento de usuáriosCadastro, login, logout, auto-registro, “esqueci a senha”, …

Page 57: Introdução ao Drupal 7

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

Page 58: Introdução ao Drupal 7
Page 59: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Theme SystemTemas

Page 60: Introdução ao Drupal 7

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

Page 61: Introdução ao Drupal 7

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

Page 62: Introdução ao Drupal 7

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)

Page 63: Introdução ao Drupal 7

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), …

Page 64: Introdução ao Drupal 7

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...

Page 65: Introdução ao Drupal 7

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) { … }

Page 66: Introdução ao Drupal 7

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

Page 67: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Blocos

Page 68: Introdução ao Drupal 7

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

Page 69: Introdução ao Drupal 7
Page 70: Introdução ao Drupal 7

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.

Page 71: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Módulos Contribuídos

Page 72: Introdução ao Drupal 7

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

Page 73: Introdução ao Drupal 7

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

Page 74: Introdução ao Drupal 7

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.

Page 75: Introdução ao Drupal 7

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, …

Page 76: Introdução ao Drupal 7

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

Page 77: Introdução ao Drupal 7

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.

Page 78: Introdução ao Drupal 7
Page 79: Introdução ao Drupal 7

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.

Page 80: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Page 81: Introdução ao Drupal 7

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.

Page 82: Introdução ao Drupal 7
Page 83: Introdução ao Drupal 7

Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB

OutrosDrupal Commons, OpenPublish, OpenChurch, OpenPublic, …

drupaldistrowatch.com

Page 84: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

DemonstraçãoSistema de anúncio de veículos

Page 85: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Concluindo...Por que usar o Drupal?

Page 86: Introdução ao Drupal 7

Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB

TempoSegurança

FlexibilidadeColaboração

Page 87: Introdução ao Drupal 7

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

Page 88: Introdução ao Drupal 7

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

Page 89: Introdução ao Drupal 7

FLISOL 2012 – IV PHP-PBIntrodução ao Drupal 7 – Gedvan Dias

Dúvidas?

Page 90: Introdução ao Drupal 7

Introdução ao Drupal 7 – Gedvan Dias FLISOL 2012 – IV PHP-PB

Obrigado!@gedvan

Avalie esta palestra:http://abda.la/flisol/pubilc