A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

Componente Joomla 1.5 - O básico

Seg

30

Jul

2007


17:09

(48 votos, média 4.29 de 5) 


Image O sistema de gerenciamento de conteúdo Joomla! aceita os mais diversos tipos de extensão. Um deles, os assim chamados componentes, funcionam como aplicativos que podem ser rodados dentro do frame do Joomla!. Este tutorial é o básico do básico para se criar um componente Joomla! 1.5

Pre-requisitos

O Joomla! está todo escrito em PHP, HTML, CSS e SQL. Para criar um componente é preciso ter algum conhecimento destas linguagens, se bem que, neste tutorial, utilizaremos apenas as duas primeiras.

Além disto, é muito importante saber que o framework do Joomla! oferece um caminhão de classes e funções prontinhas para serem usadas, ou seja, podemos economizar um monte de código se soubermos utilizar o que já está pronto. Mas a utilização de funções existentes não é só para economizar linhas de código, é também para garantir a segurança de todo o sistema - um componente com brechas de segurança é um convite para os hackers!

O projeto Olá

Este projeto é para um componente de frontend (interface com o usuário). Aqui você verá alguns dos padrões de codificação que foram estabelecidos para o Joomla! e um bom começo se você pretende criar seus próprios componentes.

A estrutura de arquivos

Um componente consiste de pelo menos um arquivo, no nosso caso o ola.php. Este arquivo precisa ficar no diretório /components/com_ola. Quando um componente é chamado, o Joomla! procura por um diretório com o nome do componente, retira o 'com_' e tenta encontrar um arquivo PHP com o mesmo nome. Por exemplo, se você chamar seu componente de 'Conteúdo', seu diretório precisa ser 'com_conteudo' e o arquivo que o Joomla! vai chamar será 'conteudo.php'.

A partir deste arquivo é possível linkar outros arquivos. O Joomla! possui um método especial de fazer isto (maiores detalhes mais adiante).

Um pouquinho de código

Se quisermos mostrar apenas 'OLÁ' na área de conteúdo do sistema, o código PHP é muito simples:

Acontece que, se ficar assim, qualquer um poderá executar este arquivo se souber o seu nome e a sua localização. Enquanto for uma coisinha simples como esta, tudo bem... mas a coisa pode ficar complicada se o componente for mais complexo, principalmente se acessar o banco de dados - qualquer erro poderá dar informações sobre o sistema que podem servir de munição para hackers. Para evitar este tipo de perigo, é bom adicionar a seguinte linha:

Quando o Joomla! é iniciado, a constante '_JEXEC' é inicializada. Como nosso script deve rodar apenas depois que o Joomla! estiver no ar, basta checar se o framework do sistema foi carregado antes do nosso arquivo ser chamado (defined( '_JEXEC' )). Se esta constante não estiver disponível é sinal de que alguém está querendo furar o cerco. Neste caso, vamos "matar" (die) a tentativa e parar a execução enviando a mensagem 'Área de acesso restrito'.

info Nas versões anteriores do Joomla a constante é '_VALID_MOS'.

Trabalhando com eventos

Os eventos foram feitos sob medida para colocar um pouco de interatividade no nosso código:

JRequest::getVar() é o seguinte: JRequest (Joomla Request = Solicitação ao Joomla) é uma classe definida no framework que, entre outras funções, possui a função getVar(). Para tornar o Joomla mais seguro, todas as variáveis globais devem ser obtidas através desta função porque ela impede que código ou SQL seja injetado. Também é possível definir um valor default (indicado por default: dentro do switch).

No Joomla! a variável 'task' (tarefa) é normalmente usada para comparar tarefas dentro de um switch. Além desta, existe a variável 'option', cujo valor é usado para determinar qual componente deve ser carregado. Como estas variáveis fazem parte do sistema, lembre-se:

info Nunca use estas variáveis para qualquer outra coisa, a não ser que você queira ser surpreendido por uns erros muito estranhos smile

Informações adicionais