web-dev-qa-db-fra.com

Ignorer les classes MVC dans Joomla 3

Est-il possible de surcharger les classes MVC dans Joomla 3?

J'ai trouvé ce fil, mais c'est pour Joomla 2.5. Comment redéfinir les classes de base?

J'ai effectué les remplacements MVC dans Joomla 2.5 avec succès, mais maintenant je suis passé à Joomla 3. Mais ce plugin n'est pas pris en charge pour Joomla 3.

J'ai trouvé cet article mais je n'ai pas la bonne idée d'écrire un plugin. Le même concept a été utilisé dans le plugin que j'ai utilisé précédemment dans Joomla 2.5.

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

Et aussi puis-je étendre ces classes et méthodes d'écrasement?

En fait, je souhaite remplacer le modèle de courrier électronique d'inscription, la tâche de connexion de l'utilisateur pour vérifier le type d'utilisateur et la vue du profil afin de récupérer davantage de données de mes tables.

J'ai essayé ce plugin- https://github.com/phproberto/joomla-mvc-override Mais cela donne des erreurs.

    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

Y a-t-il quelqu'un qui a vécu cette expérience?

Merci

7
cha

C'est marrant, je viens de terminer hier l'implémentation de ce plugin sur un site.

Un collègue WebDev et moi l'avons modifié pour joomla 3.x et cela fonctionne.

C'est ici: https://github.com/ghazal/plg_mvcoverride

Il génère cependant une erreur lorsqu'il est associé à une extension nonumber.nl, Advanced Module Manager:

Call to undefined method JModuleHelper::addIncludePath()

Étant pressé, ma solution très peu élégante consistait à commenter la première fonction:

    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);

}

et puis, ces 2 lignes:

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

éliminant ainsi la possibilité, dans ce cas, de l'utiliser pour remplacer helper.php dans un module.

J'étais sur le point de poster ici pour demander de l'aide, mais vous m'avez battu.

3
ghazal