Com_users保存機能をオーバーライドすることは可能ですか?
これは私がこれまでに試したものです...
<?php
echo JPATH_SITE.'/components/com_users/models/profile.php';
require_once JPATH_SITE.'/components/com_users/models/profile.php';
class NbrealUsersModelProfile extends UsersModelProfile{
public function save($data){
die("it works");
}
}
?>
これをテンプレートインデックスファイルに追加しました。
このドキュメントページはこれであなたを助けるでしょう:
https://docs.joomla.org/How_to_override_the_component_mvc_from_the_Joomla!_core
注:これはそれ自体では機能しません。代わりに、オーバーライドされたコントローラーのプラグインを作成する必要があります。
Joomla!をオーバーライドする必要がある場合があります。新しい機能を追加するか、コンポーネントを完全にカスタマイズするMVCコンポーネント。 MVCコンポーネントは、コンポーネントで使用されているのと同じクラス名を使用して完全にオーバーライドできます。これは、コンポーネントがアプリケーションによってディスパッチされる前にシステムプラグインをロードすることで実現されます。
これを行うには、独自のプラグインを作成できます。
class plgSystemComContentOverride extends JPlugin { public function __construct(&$subject, $config = array()) { parent::__construct($subject, $config); } public function onAfterRoute() { $app = JFactory::getApplication(); if('com_content' == JRequest::getCMD('option') && !$app->isAdmin()) { require_once(dirname(__FILE__) . '/comcontentoverride/my_content_controller.php'); } }
}
あなたの場合、あなたはそれを次のようなものに変更する必要があります
class plgSystemComContentOverride extends JPlugin {
public function __construct(&$subject, $config = array()) {
parent::__construct($subject, $config);
}
public function onAfterRoute() {
$app = JFactory::getApplication();
if('com_user' == JRequest::getCMD('option') && !$app->isAdmin()) {
require_once(dirname(__FILE__) . '/../../templates/{template_name}/code/com_users/profile.php');
}
}
}