最初にすべきことは、コア ファイルをハックしないことです。コアをハッキングすると、組み込みの更新機能を使用して、Joomla がリリースする定期的なバグ修正やセキュリティ パッチを適用できなくなります。(たとえば、最近リリースされた 2.5.9 バージョン)。
むしろそれらのコピーを作成し、それを変更して、 のような別の名前にしますcom_mybanners
。フォルダ名とエントリ ポイントファイルbanners.php
(つまりmybanners.php
、(フロント エンドとの両方を複製して変更する必要があります。 )banners.xml
mybanners.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 のサイトの「モデル ビュー コントローラーの開発」チュートリアルで見つけることができます。