Desenvolvimento de Aplicações no Joomla – II

Seguindo o Post de Desenvolvimento de Aplicações Joomla, vamos ao primeiro arquivo que o Joomla executa ao chamar um componente, mas antes criaremos o local que nosso componente deverá obrigatóriamente se localizar.

Dentro de components, na pasta da sua aplicação crie uma pasta para o seu componente. Neste caso colocarei uma pasta com_calculadora pois desenvolverei um componente calculadora.

Então

Aplicacao/components/com_calculadora.

Atenção, é obrigatório que a pasta do seu componente tenha o prefixo com_, pois o joomla utiliza estes caracteres como controlador para chamada do componente.

Então dentro desta pasta incluíremos o arquivo calculadora.php que é o primeiro arquivo chamado pelo Joomla ao chamarmos um componente pela url, por exemplo:

http://aplicacao/index.php?option=com_calculadora

Este primeiro arquivo é também chamado de Entry Point ou ponto de entrada, nome bem sugestivo na minha opinião.

Mais uma vez é impressindível que o nome deste arquivo seja calculadora.php, ou melhor, o nome do seu componente sem o com_.

Ou seja o nome da pasta que o abriga sem o com_.

Então este arquivo deve ser salvo em:

Aplicacao/components/com_calculadora/calculadora.php

Caso você não siga este padrão encontrará um Erro ao chamar seu componente.

Experimente dentro deste arquivo (calculadora.php) apenas digitar:

<?php

echo “Calculadora Teste”;

?>

E então rodar seu componente com:

http://aplicacao/index.php?option=com_calculadora

Se tudo estiver correto, você poderá ter “Calculadora Teste” dentro do container principal do seu site.

Como eu disse acima a primeira coisa que o Joomla faz ao carregar um componente, é chamar o Entry Point e este é responsável por carregar o nosso Controle (Control) e faze-lo chamar uma tarefa (task).

Na maioria dos componentes o código da Entry Point é padrão.

Vamos ao código com comentários

<?php

Esta primeira linha, impede acesso direto ao seu componente, ou seja, caso alguém tente rodar seu componente pelo navegador mais ou menos assim aplicacao/components/com_calculadora/calculadora.php, o Joomla não permitirá a execução do código.

defined( ‘_JEXEC’ ) or die( ‘Restricted access’ );

A linha abaixo carregará o nosso Controlador (ainda não o criamos). O papel do controlador eu já falei no primeiro post.

Apenas para informação, as constantes JPATH_COMPONENT.DS apenas guardam o caminho físico do seu componente, experimente fazer um echo JPATH_COMPONENT; e echo DS;

O JPATH guarda o endereço e o DS guarda o tipo da barra, que varia de sistema operacional.

Sobre o nome do arquivo de controle, calculadoraController.php, saiba que não é obrigatório que ele tenha este nome, em geral ele se chama apenas controller.php porém, a classe contida nele deve se chamar obrigatóriamente o nome do seu componente concatenado com Controller, logo por medidar de simplicidade, manteremos o arquivo e a classe com calculadoraController

require_once( JPATH_COMPONENT.DS.’calculadoraController.php’ );

A linha abaixo apenas cria o componente Controlador.

$controller = new CalculadoraController();

Esta linha lê da URL (parâmetro task), qual tarefa executar neste momento.

Caso não haja parâmetro task, como em: http://sistema/index.php?option=com_calculadora. A tarefa padrão de todo controlador, Display, será executada

Quando chegarmos ao controlador falarei mais do Display.

$controller->execute( JRequest::getVar( ‘task’ ) );

Esta ultima linha apenas redireciona à uma URL configurada pelo programador através da linha “$controller->setRedirect( $url );“. Caso você não especifique uma URL este metodo apenas retornará false e nada fará.

$controller->redirect();

?>

Bom, neste post cobri um pouco da Entry Point.

Nos próximos falo mais, até mais.

Tags: , , , , ,

3 Respostas para “Desenvolvimento de Aplicações no Joomla – II”

  1. Desenvolvimento de Aplicações no Joomla – III « Pobre Computeiro Disse:

    [...] de Aplicações no Joomla – III By lmmoreira Nos post anterior, falamos sobre o Entry Point de um componente no Joomla, agora vamos falar sobre o Controlador em [...]

  2. Charles Disse:

    Muito bacana, pena que por enquanto só há isso.

  3. Anônimo Disse:

    estou tendo erro ao chamar require_once( JPATH_COMPONENT.DS.’calculadoraController.php’ ); dentro da calculadora

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.