最初にすべきことは、コア ファイルをハックしないことです。コアをハッキングすると、組み込みの更新機能を使用して、Joomla がリリースする定期的なバグ修正やセキュリティ パッチを適用できなくなります。(たとえば、最近リリースされた 2.5.9 バージョン)。
むしろそれらのコピーを作成し、それを変更して、 のような別の名前にしますcom_mybanners。フォルダ名とエントリ ポイントファイルbanners.php(つまりmybanners.php、(フロント エンドとの両方を複製して変更する必要があります。 )banners.xmlmybanners.php
/components/com_banners//administrator/components/mybanners.php
/modules/mod_banners/バナーの機能 (つまり、バナーはモジュールに表示される) のため、/modules/mod_banners/mod_banners.phpとを複製して変更する必要があり/modules/mod_banners/mod_banners.xmlます。mod_banners場所ごとに変わりmod_mybannersます。
ジュムラで!コンポーネントstateは通常、JModel がインスタンス化されるときに設定されますが、この場合、コンポーネントは実際にはバナーの管理と、表示が によって処理されるクリックの記録に関するものmod_bannersです。mod_mybanners.phpそのため、操作対象のセッション変数を使用するコードを追加する必要があります。
通常、モデルの状態が照会されると、JInputを介して変数を収集し、オブジェクトの状態に追加します。
protected function populateState()
{
$jApp = JFactory::getApplication('site');
// Load state from the request.
$pk = $jApp->input->get('id',0,'INT');
$this->setState('myItem.id', $pk);
$offset = $jApp->input->get('limitstart',0,'INT');
$this->setState('list.offset', $offset);
// Load the parameters.
$params = $app->getParams();
$this->setState('params', $params);
// Get the user permissions
$user = JFactory::getUser();
if ((!$user->authorise('core.edit.state', 'com_mycomponent')) && (!$user->authorise('core.edit', 'com_mycomponent')))
{
$this->setState('filter.published', 1);
$this->setState('filter.archived', 2);
}
}
メソッドは、populateState()状態がメソッドによって読み取られるときに呼び出されgetStateます。
/components/com_banners/models/banner.phpこれは、上記の例と同様に、変数をオブジェクトの状態にキャプチャするために、のコピーを変更する必要があることを意味します。
そこからはすべて独自のコードです。
この情報はすべて、Joomla Doc のサイトの「モデル ビュー コントローラーの開発」チュートリアルで見つけることができます。