ti-enxame.com

Substituir classes MVC no Joomla 3

Existe alguma maneira de substituir as classes MVC no Joomla 3?

Eu encontrei este tópico, mas é para o Joomla 2.5. Como substituir classes principais?

Eu fiz substituições MVC no Joomla 2.5 com sucesso, mas agora mudei para o Joomla 3. Mas esse plug-in não é compatível com o Joomla 3.

Eu encontrei este artigo, mas não tenho uma boa idéia para escrever um plugin. O mesmo conceito foi usado no plugin que usei anteriormente no Joomla 2.5.

http://docs.joomla.org/How_to_override_the_component_mvc_from_the_Joomla!_core

E também posso estender essas classes e substituir métodos?

Na verdade, eu quero substituir o modelo de email de registro, a tarefa de login do usuário para verificar o tipo de usuário e a visualização do perfil para recuperar mais dados das minhas tabelas.

Eu tentei este plugin- https://github.com/phproberto/joomla-mvc-override Mas dá erros.

    Warning: fopen(D:\xampp\htdocs\my_project/libraries/legacy/module/helper.php): failed to open stream: No such file or directory in D:\xampp\htdocs\my_project\libraries\joomla\filesystem\file.php on line 327
?>

    Fatal error: Class 'JModuleHelperLibraryDefault' not found in D:\xampp\htdocs\my_project\plugins\system\mvcoverride\core\module\helper.php on line 13

Existe alguém que enfrentou essa experiência amável?

Obrigado

7
cha

Engraçado, acabei de terminar ontem a implementação deste plugin em um site.

Um colega webdev e eu modificamos para o joomla 3.xe funciona.

Está aqui: https://github.com/ghazal/plg_mvcoverride

Emite um erro quando associado a uma extensão nonumber.nl, Advanced Module Manager:

Call to undefined method JModuleHelper::addIncludePath()

Por estar com pressa, minha solução muito deselegante foi comentar a primeira função:

    public function onAfterInitialise()
    {

    $moduleHelperContent = JFile::read(JPATH_LIBRARIES.'/cms/module/helper.php');
    $moduleHelperContent = str_replace('JModuleHelper', 'JModuleHelperLibraryDefault', $moduleHelperContent);
    $moduleHelperContent = str_replace('<?php','',$moduleHelperContent);
    eval($moduleHelperContent);
    jimport('joomla.application.module.helper');
    JLoader::register('jmodulehelper', dirname(__FILE__).'/module/helper.php', true);

}

e então, estas 2 linhas:

JModuleHelper::addIncludePath(JPATH_BASE.'/code/modules');
JModuleHelper::addIncludePath(JPATH_THEMES.'/'.$template.'/code/modules');

eliminando assim a possibilidade, neste caso, de usá-lo para substituir helper.php em um módulo.

Eu estava prestes a postar aqui para pedir ajuda, mas você me venceu.

3
ghazal