sexta-feira, 12 de junho de 2009

Introdução ao desenvolvimento de Componentes para Joomla 1.5

Bom gente, apesar de ainda não programar muito bem, estou aprendendo a programar php direto no Joomla. Em homenagem aos meus alunos Hugo, Sílvio e Rafael e outros que se interessam a começar a desenvolver para Joomla que crio este post.

Para seguir este tutorial, eu assumo que você conheça o Joomla, php e mySQL.

Preparando o nosso componente (básico)

Para desenvolver componentes, é necessário fazer três coisas, uma é preparar as pastas e os arquivos php que receberão a programação, dizer ao Joomla, no seu BD que seu componente existe e por fim, programar
  • Crie um folder na pasta components chamado com_seucomponente. Crie em administrator/components uma pasta com o mesmo nome.
Um componente tem área administrativa e comportamentos no front-end, então, preste atenção na hora de criar arquivos para não confundir aonde os mesmos devem ser colocados. O nome do seu componente não deve conter espaços. O Joomla quando for executar seu componente, ele vai buscar um arquivo php com o mesmo nome da pasta (tirando o com_) que irá se comportar como o index do seu componente
  • Crie um arquivo chamado seucomponente.php em components/com_seucomponente e dentro cole a seguinte linha de código
<?php
defined( '_JEXEC' ) or die( 'Restricted access' ); //Este código diz que esse componente só
//poderá ser executado pelo Joomla e é a primeira preocupação com segurança que se tem.
echo '<div class="componentheading">Meu Primeiro Componente</div>';
?>

Dica: Ao invés deste echo simples você poderia utilizar <?php echo JText::_( ‘Meu Primeiro Componente’); ?> esta tag JText diz que é um texto do Joomla, onde, se houver algum componente tradutor para outra língua, este texto será automaticamente traduzido, e ficaria "My first Component", caso fosse trauzido para inglês.

Se você digitar http://localhost/joomla/index.php?option=com_seucomponent no seu navegador, você já verá seu código em ação.

agora na pasta administrator/components/com_seucomponent crie um arquivo chamado admin.seucomponent.php e adicione o seguinte código

<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
echo 'Meu Componente, administrador';
?>

digite no seu navegador http://localhost/joomla/administrator/index.php?option=com_seucomponent

Note que você já pode entrar através da url no seu componente, mas ainda pode ser melhorado. Vamos registrar a existência deste componente no back-end do Joomla, para que possamos criar link para ele nos menus do front-end e para que possamos acessar sua área administrativa no back-end, caso seja criado.

O prefixo das tabelas do Joomla são por padrão _jos, se a sua for diferente, mude nas suas tabelas o seguinte

INSERT INTO jos_components (name, link, admin_menu_link,
admin_menu_alt, 'option', admin_menu_img, params)
VALUES ('Meu Componente', 'option=com_seucomponent',
'option=com_seucomponent', 'Admin do Componente', 'com_seucomponent',
'js/ThemeOffice/component.png', '');




Você pode fazer da forma abaixo caso utilize algo como phpmyadmin



Agora logue na sua área administrativa e em Components veja que seu componente já aparece. Mas não é tudo, você pode criar link para ele na área de menu. =) Você agora está preparado para criar seu componente, como você faria caso não esteja programando para Joomla, basta ir em components/com_seucomponent/seucomponent.php e começar a preparar o que será exibido ao visitante do seu site!

O que eu gosto do Joomla, é que você está livre para abrir conexões externas com outro banco, chamar novos arquivos, integrar com o banco do Joomla, enfim. Uma vez preparado o componente, você pode fazer o que quiser com ele!

Este post foi somente para dar uma noção de como criar coisas para Joomla, ainda há muito a ser feito, como criar o xml, criar a área administrativa e etc. Na medida que eu mesma for aprendendo mais, vou compartilhando o conhecimento com vocês

Leituras recomendadas:

Learning Joomla! 1.5 - Extension Development
Creating Modules, Components, and Plug-Ins with PHP
Joseph LeBlanc <--- Melhor para iniciantes (este tutorial foi baseado nele)
e
Professional Joomla!
Dan Rahmel <--- Esse cara é muito, muito bom! Um pouco prolixo demais, então recomendo o Joseph para começar Infelizmente, ambos os livros estão em inglês, mas como digo para meus alunos... "É necessidade do profissional da área de TI ter o conhecimento no mínimo do inglês técnico. Acontece que para um livro ser traduzido, tem que ter demanda de leitores, a maior demanda estão entre os que querem iniciar naquela área, à medida que vão se especializando, as pessoas vão desistindo, parando de procurar, logo a demanda cai e assim, há menos prospectos de venda e então, os ótimos livros (nível intermediário, avançado)em sua maioria não chegam a ser traduzidos, a não ser a tecnologia a ser traduzida seja REALMENTE popular, o que não é o caso do Joomla, ainda". Pessoal, have fun!

8 comentários:

  1. Oi Jennifer! Estou tendo aula de Java no mesmo curso onde voce lecionou ou leciona o curso de Joomla. Vi la uns materiais de Joomla e perguntei ao Berardo quem ensinava e lembro de ter ouvido ele falar o seu nome.

    Fiquei bastante interessando em falar com voce, pois estou desenvolvendo um sistema intranet baseado em Joomla e como nunca utilizei o CMS, estou apanhando um pouco para conseguir algum progresso. O maior desafio para mim tem sido acessar dados de uma tabela propria no mesmo BD do Joomla, trazendo dados de acordo com paramentros passados. Se puder me ajudar de alguma forma, ficarei bastante satisfeito.

    Desde ja,

    Muito Obrigado!

    ResponderExcluir
  2. Apesar de simples seu post, foi o unico que me salvou! heheheh mto obrigado!

    ResponderExcluir
  3. Victor, me manda um comentário com teu email que te passo uns materiais em inglês que ensina a desenvolver uns componentes básicos que pode ter mostrar o caminho das pedras mais facilmente.

    ResponderExcluir
    Respostas
    1. Olá Jennifer, gostaria de receber esse material sobre desenvolvimento de componentes, poderia me enviar?

      Excluir
    2. Não tem mais posse deste material, mas existe um livro em português sobre o assunto http://novatec.com.br/livros/joomlaavancado/

      Excluir
  4. Boa noite, Jennifer

    Estou morando fora do Brasil, e iniciando o desenvolvimento de sites com Joomla. Apanhei pra cachorro ate configurar um template de acordo com o que o meu cliente queria. Agora tô apanhando de novo para montar uns formularios em Chronos Form para trabalhar dados que ele necessita. Alem do site oficial do Joomla que fala de acesso a BD voce conhece e recomenda algum site ou material para leitura que seja eficiente e eficaz ao mesmo tempo.

    Grato pela atenção.

    Sergio

    ResponderExcluir
  5. Rapaz, eu não entendo muito de acesso a BD não...

    foi mal

    ResponderExcluir
  6. ola Jenny...gostei muito do seu blog...apenas estou aprendendo joomla...quero fazer um controle de stock e faturacao online mais nao tenho nem ideia por onde comecar

    abrazos

    ResponderExcluir