Escolar Documentos
Profissional Documentos
Cultura Documentos
do
Primeiro Sinal
Autor
Rafael Bruno Costa dos Reis
Belo Horizonte, 2 de Abril de 2010
@orafaelreis
1. Acessos
1.1 Portal
Administrador do Site
Filezilla
Programa para transferência de arquivos do computador local para o computador servidor (cliente
FTP). O Filezilla suporta os protocolos FTP, FTP sobre SSL/TLS (FTPS) e SSH (SFTP), armazena as
configurações das contas sendo tambem intuitivo e fácil de usar.
Portável
http://portableapps.com/apps/internet/filezilla_portable
Normal
http://www.baixaki.com.br/download/filezilla.htm
Notepad++
Editor de códigos simples com suporte a múltiplas linguagens. Possui sistema de abas, customização
de extensão de arquivos e complementação de código.
Portável
http://portableapps.com/apps/development/notepadpp_portable
Normal
http://www.baixaki.com.br/download/notepad-.htm
Permite através de sua IDE criar e visualizar as tabelas de um banco de dados de um modo amigável.
Pode-se também executar comandos SQL diretamente pelo software.
Normal
http://dev.mysql.com/downloads/gui-tools/5.0.html
2 Administrando o Portal
O Drupal é um framework para desenvolvimento de páginas web e tem como objetivo a criação e
atualização do conteúdo do site por pessoas que não possui conhecimentos em programação. Se por
um lado o Drupal se configura como um Sistema Gerenciador de Conteúdo (CMS), por outro, se
estabelece também como uma ferramenta provida de uma API, através de comandos próprios, que
aceleram a produção de uma página web.
Figura 1: http://www.primeirosinal.com.br/admin
Organizar conteúdo
Conteúdo para o Drupal é todo item postado para o site. Exemplos de conteúdos são “Cursos e
Oficinas”, “Dicas do Internauta” e “Opinião” que são encontrados em
http://www.primeirosinal.com.br/node/add. Formulários de cadastros não são considerados
conteúdos.
Construção do site
Permite gerenciar pela IDE do Drupal itens relativos à estrutura do site como o tema padrão,
módulos instalados, tradução e urls alternativas.
3. Organizar conteúdo
3.1 Content
Em “Content” é mostrado todos os conteúdos do site e opções para publicar, promover à página
inicial ou apagar o coteúdo.
Figura 2: http://www.primeirosinal.com.br/node/edit
Um Tipo de Conteúdo é uma extensão de um Node, ou seja, é um Node contendo além de um title e
um body outros campos mais específicos.Todos os formulário da seção Agenda, por exemplo, foram
construídos com essa ferramenta.
Esta opção permite que alteremos informações gerais sobre o Tipo. Exige atenção nessa página o
campo “type” que é um identificador do Tipo para o Drupal, essa informação será usada em urls e
principalmente na seção “Views” (veja a 4.7) para filtrar os conteúdos exibidos de acordo com seu
Tipo; os campos “rótulo do campo título” e “rótulo do campo corpo” já define os dois campos padrões
de um Tipo (o “title” e o “body”).
Outro item importante é configurar o status padrão do conteúdo. O editor ao inserir um novo
conteúdo encontrará essas opções já preenchidas, embora possa modificá-las. “Dicas do Internauta”,
por exemplo, não é “publicado” por padrão, o que faz o conteúdo ser lido pelo Editor antes de ser
publicado.
Gerenciar os campos de um Tipo de Conteúdo
Esta opção permite o gerenciamento dos campos do formulário. As configurações de “title” e “body”
não podem ser modificadas, apenas a ordem que eles aparecem na tela. Na figura abaixo vemos três
campos do formulário “Cursos e Oficinas” e a opção de “Configurar” ou “Remover” cada campo.
Logo abaixo temos a opção de criar novo campos, figura 5. É necessário definir qual tipo de dado será
armazenado, os tipos mais utilizados são “Text”, “Link” e “File”. Nota-se que é possível também
inserir elementos já criados em outros Tipos de Conteúdo. Isso aumenta a produtividade, uma vez
que mudamos apenas o rótulo para o novo formulário.
Após definir isso é preciso escolher qual elemento de formulário melhor representa os dados
inseridos. As opções existentes são mostradas na figura a seguir:
Essa opção está na aba “Display fields” da página “Manage fields”. Basicamente o que se define aqui é
se o rótulo de cada campo criado é mostrado na “mesma linha” ou “acima” da entrada daquele campo
e se as entradas são escondidas(<Hidden>), ou seus valores são de textos simples (Plain text) ou
elegante(Trimmed). Essa última opção exige que o campo criado utilize algum filtro de texto.
A figura abaixo mostra as opções explicadas. “Teaser” é a página que mostra o resumo do conteúdo e
“Full node” a página padrão onde se vê todos os campos preenchidos.
Na imagem abaixo é possível ver as regiões existentes no site. Para criar uma nova região leia a seção
4.7
4.2 Menus
No tema “Cênicas” não se está utilizando a ferramenta de Menu fornecido pelo Drupal. O Menu que
se vê no site foi criado manualmente e portanto não existe uma área para sua configuração. Assim,
qualquer alteração deve-se recorrer ao código presente no arquivo template.tpl.php na pasta do tema
(“public_html/sites/all/themes/cenicas/”).
Os menus criados no Drupal são configurados na IDE. O menu que exige maior atenção é o menu de
Navegação (figura 5). Esse menu é o padrão do Drupal para a navegação no site. Em um menu é
possível criar um novo link, ativá-lo e inseri-lo em uma hierarquia de link.
Para tornar um menu visível deve-se configurar em Blocos qual região do site este aparecerá.
4.3 Módulos
Módulos são plugins para aumentar as funcionalidades da ferramenta. Muitos módulos já estão
prontos para instalar, configurar e usar (para saber mais veja a seção 8.1). Todo módulo tem uma
pasta com seu nome no diretório “public_html/sites/all/modules/”. Os módulos de sistema, padrão
da instalação, estão apenas no diretório “public_html/modules/” e não devem ter seus códigos
alterados.
A figura abaixo refere-se a umas das categorias de módulos do Drupal. Esses módulos foram
implementados durante o projeto e são específicos para os propósitos do site.
4.4 Temas
Um tema é um conjunto de especificações em código acerca da apresentação do site. Assim como os
módulos, os temas também podem ser baixados e instalados. Para isso, basta descompactar sua pasta
no diretório dos temas. Por exemplo, “Cênicas” é o tema atual e sua pasta encontra-se no diretório
“public_html/sites/all/themes”. Para modificações do código de um tema veja a seção 6.
Na página dos temas é possível definir qual tema será o padrão a ser utilizado no site. As
configurações possíveis pela IDE são: ativar a visibilidade de certos elementos (logo, caixa de busca e
outros), configurar o cominho da logo e do ícone para o site. Veja a figura 7.
Figura 13: /admin/build/themes/settings/cenicas
4.5 Traduzir a interface
O idioma padrão do Drupal é o inglês. Portanto muitos módulos instalados exigirão a tradução de
itens que são de interface com o usuário. Portanto, nessa página é possível buscar essas expressões e
traduzi-las para o português.
4.7 Views
Esse módulo permite construir novas visualizações para o Portal, assim é possível para um Tipo de
Conteúdo inserir, re-escrever ou excluir campos que foram cadastrados pelo formulário. Todas as
páginas da seção “Agenda” mais a seção “Dicas do Internauta” e seus respectivos blocos na página
inicial foram criados usando essa ferramenta.
A primeira página em Views lista todas as visualizações construídas para o portal, veja a figura
abaixo. Ao lado de cada “view” encontra-se as operações “editar”, “exportar”, “clonar” e “apagar”.
Display
O “Display” define o formato da visualização (as opções mais usadas no portal são “Página” e
“Block”). Ao escolher “Página”, por exemplo, é necessário preencher a url da página que será criada.
Figura 17: Aréa onde define-se os formatos que a View poderão ser exibidos.
Configurações Básicas
Grid – Uma matriz . Interessante para uma galeria de imagens, por exemplo;
HTML List – Usa listas de HTML;
Tabela – Usará o estilo de tabela padrão do site;
Sem formatação – Aparecerá um conteúdo abaixo do outro;
Row style: Diz se o conteúdo é incluído campo a campo (opção “Fields”) ou se é para usar a
visualização padrão de um Node. A primeira escolha exige que seja inserido ao menos um campo na
visualização, para adicionar clique no ícone “+” do bloco Fields.
Use pager: Para uma quantidade grande de conteúdos é interessante mostrar um paginador.
Items to display: Diz quantos itens mostrar por página. Essa e a opção anterior são muito usadas
nas páginas da seção Agenda.
Empty text: Mostra um texto caso o conteúdo seja vazio. Isso pode ser usado como uma mensagem
de retorno para o internauta, informando-o de que “o conteúdo não foi encontrado”.
Theme Information: Exibe os diversos arquivos que podem ser criados para sobrescrever o
template utilizado pela View atual (figura 18). O código do template utilizado encontra-se no link à
esquerda (não é aconselhável escrever esse código do zero). O arquivo contendo o novo template
deve estar na pasta do tema (“public_html/sites/all/themes/”). A última tarefa é clicar em “Rescan
Template Files” para que o Drupal encontre o novo template e o associe a visualição que está sendo
criada.
Figura 18: Informações dos temas usados pela View em um dado momento
Argumentos
Os argumentos usados no portal é um Node:nid mas também poderia ser um Node:title, por exemplo.
Fields
Aqui é permitido incluir campos para a saída do conteúdo. Esses campos podem vir de informações
obtidas pelo Drupal sobre o próprio conteúdo (autor, nid, titulo, corpo do texto, data de criação, etc.),
estatísticas daquele view (n° de usuários que visualizaram o conteúdo) ou outros campos do conteúdo
que foram definidos com a ferramenta “Tipos de Conteúdo”.
Nota-se que as ferramentas “Tipos de Conteúdo” e “Views” juntas tornam muito mais fácil a
construção de um site.
Constrói a lógica de ordenação dos conteúdos. O que se fez na maioria das visualizações do portal foi
definir um ordenação por data de modificação do conteúdo ( Node: Update Date).
Filtros
O filtro deveria ser o primeiro item a ser configurado. O filtro, como o próprio nome sugere, seleciona
qual conteúdo será mostrado de acordo com seu Tipo, seu NID, o usuário que o criou, etc. Como
anteriormente se alguns campos do conteúdo foram criados em “Tipos de Conteúdos” pode-se
também filtrar usando informações desses campos. Outra utilidade dos filtros é quando o marcamos
como exposto (botão “Expose”). Isso fará com que o próprio internauta na página de visualização do
conteúdo possa escolher qual conteúdo será mostrado. Nas páginas “Cursos e Oficinas”, “Festivais e
Eventos”, “Guias de Espetáculos” e “Dicas” isso foi utilizado.
Essa página possibilita ativar ou desativar o cache de páginas para os usuários do site (que não
possuem conta. Ativar a cache torna as páginas mais rápidas, uma vez que todo o processo de
construção da página é desnecessário pois o resultado final está armazenado no Banco de Dados. É
possível também estabelecer que todo os arquivos CSS e Javascript serão mesclados, isso diminui o
número de conexões com o servidor e contribui para a renderização rápida da página. Outro item
bastante utilizado no desenvolvimento é a opção de “limpar o cache” (veja a figura 10) . Algumas
vezes modificamos os códigos de algumas páginas anteriormente desenvolvidas e observamos que
essas não se atualizam. Uma possível causa para esse problema é a falta de atualização da cache.
Nome do Site;
Endereço de e-mail para contato;
Slogan e Missão do Site;
Nome para definir usuários que não possuem conta no site;
Texto do Rodapé do Site;
Endereço da página utilizada como página inicial.
6. Gerenciamento de usuários
6.1 Roles
Um papel é basicamente uma categoria na qual um ou mais usuários são classificados. Assim é
possível definir níveis diferentes de acessos ou responsabilidades de cada grupo de usuário, que é a
próxima opção. Os papéis “usuário anônimo” e “usuário autenticado” são padrão da ferramenta. Os
papéis do site são mostrados na figura abaixo.
6.2 Permissões
Determina quais elementos da interface podem ser visualizados pelos papéis de usuário existentes.
Na página de permissões (figura 12) encontra-se uma tabela com as atividades (linhas) e os papéis
(colunas) do site.
7.1 Temas
Para o Drupal um tema consiste em uma pasta com o nome do tema localizada no diretório
“public_html/sites/all/themes/” e composto dos seguintes arquivos:
nomedomodulo.info
style.css
screenshot.png
page.tpl.php
favicon.ico (opcional)
template.php (opcional)
O arquivo “screenshot.png” é uma imagem miniatura do site quando aplicado o tema. Essa imagem e
as informações sobre o tema no arquivo “nomedomodulo.info” apareceram na página dos temas. O
arquivo style.css deverá conter os estilos principais do site. O arquivo “favicon.ico” é um arquivo de
imagem (geralmente 32x32) que apresenta um ícone que assimila a imagem do site para o usuário,
veja o exemplo abaixo.
Como criar um tema do “zero” é complicado, o que se faz é adaptar um tema pronto. Esses podem ser
encontrados no site oficial do Drupal, especificamente no endereço
http://drupal.org/project/Themes.
Criando uma nova região
As regiões são utilizadas pelos blocos (veja a seção 4.1) e são criadas a partir do arquivo
“nomedomodulo.info”. Utilizando como exemplo o tema “cênicas” é mostrado abaixo o arquivo
“cenicas.info” contendo as informações pertinentes ao tema como o nome do tema e as 6 regiões
atuais.
O código para controlar a saída dos blocos está no arquivo “page.tpl.php”. A região “cabeçalho2”, por
exemplo, é controlada pelo seguinte trecho de código:
O arquivo “page.tpl.php”
Esse é um arquivo muito importante na criação de um tema. As alterações nesse arquivo resultam em
alterações em todas as páginas do site. Assim, alguns scripts e estilos que servirão para todo o site
são inseridos diretamente nesse arquivo. Observa-se também que elementos comuns são as
marcações dos códigos das regiões usadas pelos blocos, como mostrado anteriormente. Pelo fato
desse arquivo juntar código PHP e HTML deve-se manter esse arquivo com o mínimo de informações
possível. Assim, devemos avaliar se códigos PHP inseridos diretamente aqui podem ser transferidos
para um novo bloco criado pela IDE do Drupal.
7.2 Sobrescrevendo visualizações
Em muitas ocasiões desejamos modificar o modo que o Drupal constrói a visualização de alguns
elementos da página. Essas modificações são feitas através de arquivos de templates, como o
“page.tpl.php”.
Criando novos arquivos de template é possível fazer modificações específicas na apresentação de uma
página, de um bloco ou de um node. Algumas modificações possíveis são:
O resultado como teste é mostrado abaixo. Nota-se que foram removidos outros trechos de códigos de
algumas regiões2 e arquivos css.
2
Atenção: Após retirar o código de uma região de um arquivo template vá para a página de administração dos blocos e configure-o
para não ser construído para a tal página. Isso tornará a criação da página mais rápida.
8. Programando com a API
8.1 Módulos
Módulos são funcionalidades extras para o site. Existem vários módulos desenvolvidos pela
comunidade que estão prontos para serem instalados. Esses módulos podem ser obtidos em
http://drupal.org/project/Modules. É sempre bom instalar módulos recomendados para a versão
corrente do Drupal (no caso a versão 6.x)
Crie uma pasta com o nome do módulo. Utilizarei como exemplo o módulo “Opiniao”.
Crie o arquivo “nomedomodulo.module”. Esse arquivo conterá códigos da API e será aborda na
próxima seção.
8.2 Menus
Na seção anterior criou-se o arquivo “nomedomodulo.module”. Nesse arquivo deve se encontrar os
códigos que geram páginas e blocos, fazem consultas ao banco, criam formulários, etc. Também é
nesse arquivo que se encontra o código para criar o menu (ou apenas uma URL para uma página).
1 function nomedomodulo_menu( ){
2 $items = array();
3
4 $items['bdimagens/visualizar'] = array(
5 'title' => 'Pagina de Teste',
6 'description' => 'Veja um teste.' ,
7 'page callback' => „nomedomodulo_page_exemplo‟,
8 'page arguments' => array(1),
9 'access callback' => 'user_access',
10 'access arguments' => array('access content'),
11 'type' => MENU_SUGGESTED_ITEM ,
12 'file' => 'banco_img.pages.inc',
13 );
14 return $items;
15 }
A chave de cada vetor do vetor $items é a própria URL desejada. Cada item é abordado a seguir:
Para visualizar os resultados de qualquer modificação nessa função deve-se salvar o arquivo e
“compilar” o código na página de módulos do site
(“http://www.primeirosinal.com.br/admin/build/modules”).
8.3 Criando uma página
Para criar uma página primeiramente devemos criar sua URL, portanto veja a seção Menus, que se
segue. Após isso ser feito criamos nossa função:
1 function nomedomodulo_page_exemplo( ){
2 $html = „<BR>Qualquer codigo HTML</BR>‟;
3 return $html;
4 }
título da página
1 drupal_set_title(„titulo da pagina‟);
1 drupal_ add_css(„/sites/all/scripts/meuarquivo.css‟);
2 drupal_ e drupal_add_js(„/sites/all/scripts/meuarquivo.js‟);
Ainda existe a função abaixo que adiciona qualquer código entre a tag <header></header> do HTML
1 drupal_set_header(„string‟);
8.4 Formulários
Criar formulários utilizando a API é altamente recomendado. Abaixo é demonstrado como criar um
formulário para o envio de comentários, por exemplo.
1 function nomedomeumodulo_form_cadastrar() {
2 $form['#action'] = url('blog/cadastrar');
3
4 $form['nome'] = array(
5 '#type' => 'textfield',
6 '#description' => 'Seu nome',
7 '#required' => TRUE,
8 '#rows' => 10,
9 );
10
11 $form['comentario'] = array(
12 '#type' => 'textarea',
13 '#required' => TRUE,
14 '#description' => t('Comente sobre o nosso site') ,
15 '#rows' => 10,
16 '#cols' => 10
17 );
18 $form['Enviar'] = array(
19 '#type' => 'submit',
20 '#value' => 'Enviar'
21 );
22 return $form;
23 }
Para um formulário ser exibido como abaixo é necessário criar uma página como anteriormente e
utilizando a função drupal_get_form(„nomedomeumodulo_form_cadastrar‟). Assim, teríamos:
1 function nomedomeumodulo_page_bemvindos() {
2 drupal_set_title(„Meu Site‟);
3 $output = t('Seja Bem Vindo ao site!<br />') ;
4 $output .= t(„Envie-nos um comentario sobre o site!<br />') ;
5 $output .= drupal_get_form(„nomedomeumodulo_form_cadastrar‟) ;
6 return $output;
7 }
Para obter os dados enviados utilizamos a função abaixo. Observe que o nome dessa função tem o
nome da função do formulário seguido de “_submit”. Os dados do formulário encontram-se na
variável $form['#post']. Após acessar esse vetor observa-se que cada campo do formulário está
igualmente como definido na função “nomedomeumodulo_form”.
Executa uma query, uma consulta a uma tabela do Banco de Dados. Semelhante a mysql_query( ).
Hook: Uma função que será processada pelo Drupal podendo alterar configurações internas da
ferramenta.
Node: Um Node é um conteúdo que provêm de algum tipo de conteúdo e que pode ser identificado
por seu NID.
Role: Um perfil de um grupo de usuário contendo as permissões que esses usuários possuem no site.