Escolar Documentos
Profissional Documentos
Cultura Documentos
Desenvolvimento de Mdulos
O que o Drupal?
Open Source
Open Source
LAMP Cdigo Aberto Comunidade Mdulos
Extensvel: mdulos
Mdulos
(Quase) Tudo so mdulos:
contedo, menu, etc. controle de acesso,
Mdulos
(Quase) Tudo so mdulos:
contedo, menu, etc. controle de acesso,
Mdulos
(Quase) Tudo so mdulos:
contedo, menu, etc. controle de acesso,
Milhares de mdulos.
Mdulos: HOOKS
Hook forma que os mdulos usam para se conectar ao Drupal e aos outros mdulos.
Hook forma que os mdulos usam para se conectar ao Drupal e aos outros mdulos. o recurso mais bsico, no qual todo o Drupal foi construdo.
Hook forma que os mdulos usam para se conectar ao Drupal e aos outros mdulos. o recurso mais bsico, no qual todo o Drupal foi construdo. uma funo que ser chamada em um ponto chave do sistema para executar aes relativas ao mdulo.
Como funcionam?
Como funcionam?
Existem mais de 80 hooks, um para cada parte do sistema.
Como funcionam?
Existem mais de 80 hooks para cada parte do sistema. (Carregar contedo, montar um bloco, listar o menu, salvar um contedo, enviar um formulrio, etc)
Como funcionam?
Existem mais de 80 hooks para cada parte do sistema. (Carregar contedo, montar um bloco, listar o menu, salvar um contedo, enviar um formulrio, etc) O mdulo registra um funo para o hook e o sistema executa a funo no momento devido.
Como funcionam?
Existem mais de 80 hooks para cada parte do sistema. (Carregar contedo, montar um bloco, listar o menu, salvar um contedo, enviar um formulrio, etc) O mdulo registra um funo para o hook e o sistema executa a funo no momento devido. Essa funo vai receber os parmetros relacionados ao estado do sistema (o menu, o contedo ou outro) e executar aes nesse estado.
Como funcionam?
Registra-se um hook criando uma funo com o modelo: "nome do modulo" + "_" + "nome do hook" A funo deve receber os parmetros relativos ao hook e retornar o estado desejado.
Como funcionam?
Se voc tem um mdulo "meumodulo" e quer registrar um item de menu, cria-se a funo: "meumodulo_menu()".
Como funcionam?
Se voc tem um mdulo "meumodulo" e quer registrar um item de menu, cria-se a funo: "meumodulo_menu()" "meumodulo_menu" deve retornar os itens de menu a incluir.
Mdulos: APIs
Diferentes dos hooks, so para serem chamadas livremente aonde quer que os mdulos precisem de suas funcionalidades.
Diferentes dos hooks, so para serem chamadas livremente aonde quer que os mdulos precisem de suas funcionalidades. As APIs so basicamente todas as funes fornecidas pelo core e por todos os mdulos do Drupal.
Ento as APIs do drupal so funes fornecidas pelo sistema, como: db_query - Para consultas ao banco de dados t - Para recuperar string traduzidas drupal_set_message - Mensagens para o usurio node_load - Carregar ns/contedos user_load - Buscar dados de um usurio form_set_error - Mensagens de erro
Toda funo de todo mdulo disponvel para todo outro mdulo, tornando o sistema extremamente padronizado atravs do reuso de recursos.
Toda funo de todo mdulo disponvel para todo outro mdulo, tornando o sistema extremamente padronizado atravs do reuso de recursos. So milhares de funes disponveis: Cache API, File API,
Field API, Database API, RDF API, Schema API, etc.
Toda funo de todo mdulo disponvel para todo outro mdulo, tornando o sistema extremamente padronizado atravs do reuso de recursos. So milhares de funes disponveis: Cache API, File API,
Field API, Database API, RDF API, Schema API, etc.
Mais o que cada mdulo pode disponibilizar. Existem muitos mdulos que lanam APIs: CCK, Openlayers, CTools e etc.
Criando um Mdulo
A comunidade Drupal preza muito por padronizao e qualidade. Efetua-se a fuso de mdulos semelhantes. Maior qualidade, mais pessoas em um projeto.
Estrutura bsica:
Estrutura bsica:
nome_do_modulo.info nome_do_modulo.install nome_do_modulo.module
nome_do_modulo.info
nome_do_modulo.info
Contm a descrio e informaes bsicas do mdulo.
nome_do_modulo.info
Contm a descrio e informaes bsicas do mdulo. name description core version dependencies package
nome_do_modulo.info
name = Meu Primeiro Mdulo description = Teste de mdulos do Drupal version = 0.1 core = 6.x dependencies = cck
nome_do_modulo.install
nome_do_modulo.install
<?php function nome_do_modulo_install() {} function nome_do_modulo_uninstall() {} ?>
nome_do_modulo.install
Dentro de cada mtodo vai os passos extras a instalao.
nome_do_modulo.install
Dentro de cada mtodo vai os passos extras a instalao. Um uso comum a criao de tabelas no banco de dados.
nome_do_modulo.install
Dentro de cada mtodo vai os passos extras a instalao. Um uso comum a criao de tabelas no banco de dados. Com o hook Schema.
} ?>
nome_do_modulo.module
nome_do_modulo.module
onde toda mgica acontece.
nome_do_modulo.module
onde toda mgica acontece. arquivo PHP com as funcionalidades do mdulo.
nome_do_modulo.module
onde toda mgica acontece. arquivo PHP com as funcionalidades do mdulo. Programamos o mdulo implementando os Hooks necessrios.
nome_do_modulo.module
Se precisamos adicionar uma pgina, implementamos o hook "menu".
nome_do_modulo.module
<?php function nome_do_modulo_menu() { $menu['caminho/da/pagina'] = array( 'title' => 'Pgina do mdulo', 'description' => ' a pgina de teste.', 'page callback' => 'nome_do_modulo_montar_pagina', ); return $menu; } ?>
nome_do_modulo.module
<?php // ... function nome_do_modulo_montar_pagina() { return theme('node',array('content'=>"Contedo da pgina")); } ?>
nome_do_modulo.module
Implementamos o hook menu e retornamos o conjuntos de pginas do nosso mdulo.
nome_do_modulo.module
Implementamos o hook menu e retornamos o conjuntos de pginas do nosso mdulo. Usamos a API de temas para montar o output da pgina.
Mdulo "contact_list".
Mdulo "contact_list". Adicionar e listar contatos. Criar pasta "contact_list" dentro do modules do drupal.
Em seguida preparamos o contact_list.install. Para as instrues de instalao, vamos criar uma tabela apenas, usando o hook de schema. A tabela vai ter um "id" numrico com auto increment, "name" como string e email como string.
contact_list.install
function contact_list_schema() { $schema['contact_list'] = array( 'fields'=>array( 'id'=>array('type'=>'serial'), 'name'=>array('type'=>'varchar','length'=>255), 'email'=>array('type'=>'varchar','length'=>255)), 'primary key'=>'id'); return $schema; }
contact_list.install
function contact_list_install() { drupal_install_schema('contact_list'); } function contact_list_uninstall() { drupal_uninstall_schema('contact_list'); }
Agora comeamos a implementar as funcionalidades no contact_list.module. Vamos comear criando a pgina para adicionar os contatos. Vamos usar o hook menu, a api de forms, de traduo e banco de dados.
Agora criamos ento a listagem de contatos. Vamos usar mais do hook menu, da api de traduo e api de temas.
isso!
http://drupal.org/ - Drupal http://api.drupal.org/api/group/hooks - HOOKS http://api.drupal.org/api - API http://drupal.org/project/modules - Modulos http://groups.drupal.org/contributed-module-ideas http://drupal.org/contributors-guide - Guia para desenvolver http://drupal.org/coding-standards - Padres http://drupal.org/node/22573 - Vrios HowTos