/ components/com_users/modelsの一部のファイル(.phpおよび.xml)を上書きしたい。これは可能ですか?または、変更して名前を変更したcom_usersのコピーを作成してみますか?
私がやろうとしていることは、ユーザープロファイルと登録フォームからnameフィールドを削除し、それをfirstnameとlastnameに置き換えます。 registration.phpとprofile.phpも変更して、$firstname . ' ' . $lastname
の-nameを組み合わせて修正する必要があります。Joomla nameに依存して、意味のあるものに設定されます。
これは実際にそれぞれのファイルを直接編集する場合は機能しますが、Joomlaへのアップグレードで変更が失われます。 これを回避するにはどうすればよいですか?
Joomlaプラグインとイベントを確認してください。
onContentPrepareForm($form, $data)
や(onContentPrepareData($context, $data)
を使用する必要があるかもしれませんが、最初のイベントで問題ないはずです)のようなイベントがあります_$data
_および_$form
_を使用して、次のように独自のXMLでフォームを変更します。
_ /** @var JForm $form */
$form->loadFile(dirname(__FILE__).'/custom/form.xml',true);
_
必要なものを上書きします。
そして、深く掘り下げると、onUserBeforeSave($user, $isnew, $data)
のようなユーザーストアアルゴリズムでいくつかのトリガーを見つけることができ、リクエストからデータを取得して現在のデータを調整できます。
しかし、user
を使用しないで作業する場合は、次のようなonAfterRoute
のようなシステムイベントを使用するだけで解決策になる可能性があります。
_JFactory::getApplication()->input->set('name',JFactory::getApplication()->input->get('firstname').' '.JFactory::getApplication()->input->get('lastname'));
_