Participe também!

O Joomla! é um premiado gerenciador de conteúdo (CMS) livre e gratuito. Junte-se a nós, aprenda, interaja e ajude a aprimorar o Joomla! cada vez mais!

Cadastre-se
Artigos > Adaptando-se ao Joomla! 1.5 (1)

Adaptando-se ao Joomla! 1.5 (1)

E-mail Imprimir PDF

Estou iniciando uma série de artigos (que na verdade serão, em sua maioria, traduções de artigos retirados da internet) para incentivar o uso e desenvolvimento de extensões para Joomla! 1.5. Para começar, eu escolhi adaptar um artigo escrito por Andrew Eddie para a revista The Art of Joomla! que fala sobre a remoção do "legacy mode" nos seus componentes.

 

O Joomla! 1.5 contém um plugin chamado "legacy mode" que possibilita que componentes feitos para a versão 1.0 funcionem na versão nova. Porém os desenvolvedores devem , aos poucos, adaptar seus componentes para que funcionem sem o legacy mode ligado e tornem os seus componentes compatíveis com o novo framework do joomla! 1.5.
   

Ligando e desligando


O primeiro passo é aprendar a habilitar/desabilitar o legacy mode. Para isso, na área administrativa de um site rodando Joomla! 1.5, vá até "Extensões" e selecione o gerenciador de plugins. Depois digite "legacy" no filtro de busca e procure. O legacy é um plugin do tipo "System" e para habilitar/desabilitar é só clicar no tick que aparece ao lado do nome do plugin.
   
No artigo original, Andrew Eddie instalou o Letterman (compatível com a versão 1.0) num site com legacy mode ligado e depois desligou o legacy. Surgiram diversos erros na tela e as próximas seções ensinarão o que deve ser alterado para que se eliminem estes erros e se tenha um componente compatível com Joomla! 1.5 nativo (eu vou ser mais objetivo e vou apenas colocar o que deve ser alterado).

Altere o _VALID_MOS para _JEXEC


A primeira linha de todo componente era algo como: defined('_VALID_MOS') or die();

No novo framework, a contante que garante que o site está sendo acessado pelo caminho certo é a _JEXEC. Então, é só alterar uma pela outra: defined('_JEXEC') or die();

Alterando mosDBTable para JTable


A classe "mãe" de todas as classes de bancos de dados também não existe mais. A mosDBTable foi substituída pela JTable e você deve alterar 3 coisas:
- O nome da classe que você está estendendo fica algo como class MinhaClasse extends JTable (só troquei o mosDBTable por JTable)
- O construtor deve se chamar __constructor() e não mais MinhaClasse()
- Dentro do construtor eu devo chamar parent::__construct(); ao invés de $this->mosDBTable(); (os parâmetros continuam iguais)
   
o resultado é algo como:

class MinhaClasse extends JTable {
    function __construct( &$database ) {
        parent::__construct( '#__minha_classe', 'id', $database );
    }
}

O objeto de banco de dados


Outra modificação no Joomla! 1.5 é a drástica diminuição no uso de objetos globais. Ao invés de usar:

global $database;

dentro dos seus métodos, você deverá usar:

$database = &JFactory::getDBO();

os métodos da classe permanecem inalterados (até onde eu sei). Essa mudança pode ser um pé no saco, dependendo do tamanho do seu componente e da sua habilidade com o search&replace :P
   

Traduções


Outra novidade na versão nova é a forma de tradução. Ao invés de um arquivo cheio de DEFINES, utiliza-se a classe JText. Sempre que quiseres fazer uma string traduzível, utilize JText::_('Palavra');  e pimba :)

 

TCHAU!


Essa foi a primeira parte explicando as adaptações que devem ser feitas nos seus componentes para que eles sejam adaptados ao Joomla! 1.5! Quem quiser conferir o _excelente_ artigo original, escrito por Andrew Eddie (em inglês) clique aqui .

Boa sorte a todos!

 

PS: diferentemente do tutorial sobre criação de componentes, esse artigo _deve_ ter continuação ;-) 

Comments (1)
1 Ter, 29 de Julho de 2008 14:02
Administrator
Bom dia,
Gostaria de saber se foi feito esses procedimentos e sem realmente funcionou, e se funcionou teria uma possibilidade de fazer o download do arquivo pronto?
Desde já agradeço
Abraços

Atenciosamente
Yuri Karsten

Add your comment

Your name:
Your email:
Comment:
  The word for verification. Lowercase letters only with no spaces.
Word verification:
 

Busca Rápida

 

Veja Também