Переопределить классы MVC в Joomla 3

Можно ли переопределить классы MVC в Joomla 3?

Я нашел эту ветку, но для Joomla 2.5. Как переопределить основные классы?

Я успешно выполнил переопределения MVC в Joomla 2.5, но теперь я перешел на Joomla 3. Но этот плагин не поддерживается для Joomla 3.

Я нашел эту статью, но у меня нет хорошей идеи написать плагин. Та же концепция была использована в плагине, который я использовал ранее в Joomla 2.5.

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

А также я могу расширить эти классы и переписать методы?

На самом деле, я хочу переопределить шаблон регистрации электронной почты, задачу входа пользователя, чтобы проверить тип пользователя и вид профиля, чтобы получить больше данных из моих таблиц.

Я попробовал этот плагин - https://github.com/phproberto/joomla-mvc- переопределить Но он дает ошибки.

    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

Есть ли кто-нибудь, кто столкнулся с подобным опытом?

Спасибо

7 голосов | спросил cha 28 52014vEurope/Moscow11bEurope/MoscowFri, 28 Nov 2014 09:37:18 +0300 2014, 09:37:18

1 ответ


3

Забавно, я только что закончил реализацию этого плагина на сайте.

Друг webdev и я изменили его для joomla 3.x, и он работает.

Здесь: https://github.com/ghazal/plg_mvcoverride

Он выдает ошибку, хотя в сочетании с расширением nonumber.nl, Менеджер расширенного модуля:

Call to undefined method JModuleHelper::addIncludePath()

Будучи в спешке, мое очень нелегкое решение заключалось в том, чтобы прокомментировать первую функцию:

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

}

, а затем эти две строки:

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

, тем самым исключая возможность в этом случае использовать его для переопределения helper.php в модуле.

Я собирался опубликовать здесь, чтобы попросить о помощи, но вы избили меня.

ответил ghazal 28 52014vEurope/Moscow11bEurope/MoscowFri, 28 Nov 2014 13:19:58 +0300 2014, 13:19:58

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132