Joomla 3でMVCクラスをオーバーライドする


7

Joomla 3でMVCクラスをオーバーライドする方法はありますか?

私はこのスレッドを見つけましたが、それはJoomla 2.5用です。コアクラスをオーバーライドするには?

Joomla 2.5でMVCオーバーライドを正常に実行しましたが、現在は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-override しかし、エラーが発生します。

    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

このような体験をした人はいますか?

ありがとう

回答:


3

おかしい、私は昨日、このプラグインのサイトへの実装を終えたところです。

仲間のwebdevと私はjoomla 3.xのためにそれを変更し、それは動作します。

それはここにあります:https//github.com/ghazal/plg_mvcoverride

nonumber.nl拡張子、Advanced Module Managerと組み合わせると、エラーがスローされます。

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

}

そして、これらの2行:

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

したがって、この場合、それを使用してモジュールのhelper.phpをオーバーライドする可能性を排除します。

私は助けを求めるためにここに投稿しようとしていましたが、あなたは私に打ち負かしました。


うわー..それはうまく動作します..本当にガザールありがとう 以前にドキュメントで言及したプラグイン(Joomla 2.5)を使用しました。ドキュメントを更新していただけますか?他の人にも役立ちます。そしてまた、あなたはjoomla拡張ディレクトリにこれを追加できますか?
2014年

あなたが尋ねたようにgithubで行われました。JEDに関しては、さらに時間がかかります...
ghazal 2014年

1
最後に、Alex(Chartier)は、Advanced Module Managerに関連していると私が思ったエラーの実用的な解決策を見つけました。元のコードには、jModuleHelperでオーバーライドされていた関数の行がありませんでした。Alexは$ pathの問題も修正しました。githubプラグインですべて修正されています。
ghazal 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.