Marcus VBP

Desenvolvimento de Interfaces WEB

Comentários recentes

Desenvolvimento um módulo do Drupal: parte 1

15 MAR 2009

Aloha pessoas!

Hoje vou trazer uma novidade para vocês. Nos últimos dias eu tenho gastado meu tempo livre aprendendo a desenvolver um módulo do Drupal. Agora, depois que a versão 1.0 do módulo que criei foi lançada, descreverei aqui a experiência. Este tutorial vai ser dividido em várias partes, e será semanal, com as partes sendo publicadas no domingo.

Levem em consideração que eu não sou um programador, mas conheço um pouco de PHP e MySQL. Eventualmente posso publicar alguma bobagem, mas aí eu conto com o pessoal com maior conhecimento para me corrigir. Se um cara que não é programador consegue criar um módulo do Drupal, então a coisa não é tão difícil quanto parece.

O módulo que eu criei é babacamente simples, tão simples que implementar o recurso bastaria utilizar um bloco com HTML dentro. Mas precisa-se começar de algum lugar, e ter um objetivo em mente é muito melhor que simplesmente ler os tutoriais e esperar aprender algo. Contudo, estou com planos de continuar a incrementar o módulo, e torná-lo bem mais útil. E continuarei postando aqui as alterações.

E por último, gostaria de dizer que este tutorial foi totalmente baseado no tutorial do site Drupal.org sobre desenvolvimento de módulos do Drupal 6. Basicamente tudo que eu precisei foi deste tutorial, mas a referência que se encontra no site da API do Drupal, além de alguma ajuda dos camaradas que ficam no canal de IRC #drupal-br, no servidor irc.freenode.org.

Bom, vamos começar!

Descrição do módulo

O ideal, sempre que se for começar um sistema, por mais simples que seja, é que você gaste algum tempo inicial para descrição do mesmo, para ter uma idéia exata do que está buscando e qual a melhor forma de prosseguir. O meu módulo pode ser descrito assim:

citação:

O módulo criará um bloco lateral com um botão de doações do PagSeguro. O módulo contará com as seguintes telas/interfaces:

  • Uma página de administração, onde o administrador do site informará os seguintes dados:
    • email cadastrado no PagSeguro;
    • um texto de ajuda que precederá o botão, o estilo de botão escolhido dentre os fornecidos pelo PagSeguro;
    • e, caso o administrador prefira utilizar um personalizado, também deve informar a URL onde está hospedada a imagem do botão.
  • Permissões: quais os usuários que podem configurar o bloco;
  • E por fim, o bloco propriamente dito, que contém um formulário HTML comum.

Como disse, é algo bem simples mesmo, nada de muito complexo. Aliás, cabe aqui uma crítica ao PagSeguro, pois o sistema deles é legal e pioneiro aqui no Brasil, além de que permite que tire uma graninha em alguns casos, mas eles investem muito pouco na API deles. Quando surgiu a idéia de estudar a criação de módulos e eu escolhi fazer o botão de doações (escolha feita simplesmente porque é algo simples inicialmente, mas que talvez possa gerar algo interessante no futuro), percebi que tem várias coisas que eles deixaram de fornecer que deixariam tudo muito mais interessante.

Por exemplo, você não pode enviar variáveis à página de doações, além do email cadastrado, o que te impede, por exemplo, de sugerir um valor para a doação do usuário. Também não existe retorno de variáveis, o que me impede, por exemplo, de criar um acompanhamento no meu site de quais usuários fizeram doação, quantas vezes, e quanto foi doado. Por fim, um recurso muito interessante que faz falta é um marcador de metas de arrecadação. Enfim, deixo registrado aqui o meu desgosto. Entrei em contato com o suporte do PagSeguro e o mesmo foi sucinto em me dizer que o recurso de doações não suporta valor mínimo e que se eu quisesse fazer uso disso, deveria utilizar o botão comprar...

Iniciando

Vamos iniciar a criação do módulo criando uma pasta para conter os arquivos. Esta pasta deve estar armazenada na pasta /site/all/modules, que é o local ideal para módulos que não fazem parte do core. A pasta do meu módulo se chama donatepagseguro.

Esta pasta irá conter os dois únicos arquivos que são obrigatórios em um módulo: o arquivo .info, e o arquivo .module, que é o módulo propriamente dito.

O arquivo .info nada mais é que um arquivo de texto ASCII, daqueles que você cria no bloco de notas. dentro dele vamos escrever algumas meta informações a respeito do módulo:

citação:

; $Id$
name = Donate PagSeguro
description = Um modulo simples que habilita um bloco com o botao de Doacao do PagSeguro no site.
core = 6.x
package = E-Commerce
version = 6.x-1.0

A primeira linha, "; $Id$", pelo que pude entender, serve para fazer o controle através do CVS do Drupal. O resto é mais ou menos auto-explicativo:

  • name: o nome do módulo;
  • description: a descrição do módulo;
  • core: a versão do Drupal para qual foi feita o módulo;
  • package: é opcional, é o nome do container onde o módulo ficará contido, na página /admin/build/modules;
  • version: a versão do módulo. o número antes do hífen refere-se à versão do Drupal, e após o hífen, a versão do módulo.

Existem outras opções que podem estar contidas dentro do arquivo .info, como por exemplo as dependências do módulo. Para mais detalhes, acesse esta página aqui.

O arquivo .info deverá se chamar donatepagseguro.info.

O arquivo .module

O arquivo .module nada mais é que um arquivo PHP. Crie um arquivo de texto vazio e renomeie para donatepagseguro.module. Abra-o em um editor de sua preferência, e escreva no início dele:

citação:

<?php
// $Id$

Não é necessário fechar a tag do PHP. Pelo que eu pude entender, fechar a tag PHP no módulo pode causar algum comportamento estranho ou inesperado em servidores que não sejam o Apache (*cof*cof*IIS*cof*cof*). Abaixo do comentário, ficará o código do módulo. Mas isso ficará para a próxima semana!

Até breve!

Problema com o textile: Resolvido

01 JUN 2007

Salve pessoas.
O problema que eu estava sofrendo com o módulo Textile já está resolvido, como podem ver.
Infelizmente a solução não veio através de uma atualização do módulo, e sim através de terceiros. Deixo aqui o link para ajudar às pessoas que também utilizem este módulo e estejam com problema no PHP 5.2.2.
O cara que mantém o módulo disse que não tem tempo para fazer upgrades para o módulo, e que também tem preferido utilizar outros filtros (como o Texy), por isso não tem mais motivações para continuar mantendo o Textile.
Lendo as palavras dele, creio que seja o momento certo para procurar uma forma de retirar este filtro de uma vez por toda dos meus sites. Afinal, ele é muito útil, mas não é essencial.

Problema no Módulo Textile do Drupal 5.1 [UPDATE]

30 MAI 2007

[ UPDATE ] O problema foi resolvido.

Salve pessoas, tudo bom??

É o seguinte, estou aqui apenas para avisar que depois que a Dreamhost atualizou o PHP 5, o módulo Textile parou de funcionar (na verdade ele estava quebrando o site, dando erro 500). Então tive que desabilitá-lo.

Acontece que ele é um filtro que utilizo para agilizar a digitação. Por exemplo, se quero colocar uma palavra em negrito, em vez de utilizar a tag <strong> eu simplesmente coloco a palavra entre dois asteriscos.

Como o módulo está desabilitado, a formatação deixou de funcionar. Então até sair a correção do problema o site vai parecer mais bagunçado.

Mas acredito que em breve vai estar tudo ok.

copyright © Marcus VBP, Todos os direitos reservados

Permitida a cópia desde que citado a fonte. [Política de Privacidade]

Powered by Drupal CMS.