Aldeia Numaboa

  • Increase font size
  • Default font size
  • Decrease font size
Home Informática Tutoriais e Programação Joomla Componente Joomla 1.5 - O básico

Componente Joomla 1.5 - O básico

Indique esta página Imprimir PDF
(43 votos, média 4.2 de 5)
Índice do Artigo
Componente Joomla 1.5 - O básico
Separando a lógica e a saída
Todas as páginas

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:

<?php
   echo 'OLÁ!';
?>

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:

<?php
   // impedir acesso direto
   defined( '_JEXEC' ) or die ( 'Área de acesso restrito' );
 
   echo 'OLÁ!';
?>

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:

<?php
   // impedir acesso direto
   defined( '_JEXEC' ) or die ( 'Área de acesso restrito' );
 
   $task = JRequest::getVar( 'task' );
   $nome = JRequest::getVar( 'nome', 'Maricota' );
 
   switch ($task) {
      case 'show':
      default:
         echo 'Olá ' . $nome . '. Boas vindas!';
         break;
   }
?>

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 sorriso



Atualização Ter, 21.04.2009 20:24  

Na Aldeia

Há 108 visitantes online

3630 registros
0 hoje
14 nesta semana
4 neste mês

Boas vindas: flor

Estatística

Membros: 3639
Artigos: 1045
Links: 90
Leituras: 6681244

Login

Kanji da hora




Faça contato







Não diga que não avisei ===> No Internet Explorer o meu site fica uma porcaria. Use qualquer outro navegador, porque não tenho tempo e nem paciência para ficar remendando todas as páginas só para atender as sandices do pessoal da microsoft. Que tal experimentar o Firefox, o Opera, o Chrome ou o Safari?