1

簡単な質問:Joomla 2.5のバックエンドコントローラーの1つをオーバーライドする可能性はありますか?com_contentコンポーネントのバックエンド記事コントローラーをオーバーライドしたいとします。

シナリオ...

通常の記事の属性に加えて、すべての記事に対応するいくつかの追加の属性を保存したいと思います。articleとnew_attributesの間には1対多の関係があるため、これらの属性は別のテーブルに格納されます。この目的のために、カスタムプラグインを作成して、記事のプロパティのメタデータグループに新しいフィールドを追加しました。ここで、これらの新しく追加されたフィールドを、このnew_attributeの各エントリに関連付けられた現在の記事IDとともに別のテーブルに格納する必要があります。

シナリオを定義するのに十分であることを願っています。

4

4 に答える 4

1

コアハック あなたは確かにそれを行うことができます。しかし、Joomlaを更新するたびに、変更が上書きされることがわかります。

オーバーライド http://extensions.joomla.org/extensions/style-a-design/templating/15611 <<このプラグインは、Joomlaコアの「オーバーライド」を可能にします。ただし、サードパーティですのでご注意ください!Joomlaには、これをサポートするためのネイティブなものはまだありません。しかし、それは誰かがコード2013のグーグルサマーのために取り組むためのオプションであることに注意してください

于 2013-03-14T12:36:13.297 に答える
1

あなたは何をしたいのか非常に漠然としているので、私たちの答えも非常に一般的になります. まず、コントローラーをオーバーライドする必要があるかどうかを確認または説明します (これは非常に珍しいことです)。

新しいコントローラを作成するのはどうですか - com_content で表示しますか?

于 2013-03-14T12:42:11.723 に答える
1

私は最近これと戦わなければなりませんでした。ここで説明されているように、単純なプラグインを作成できます(基本的JLoader::register()には、クラスをロードするために使用します)。

しかし、記事が言うように:

この手法は、システム プラグインがインポートされる前にすでにロードされているものを除いて、ほとんどの Joomla コア クラスをオーバーライドするために使用できます。

クラスがまだロードされていない場合は、github のプル リクエストにアクセスして、

150 行目の libraries/loader.php を次のように変更します。

self::register(strtolower($class), $base . '/' . $path . '.php',false);

次に、それが役立つとわかった場合は、プルリクエストに賛成票を投じて、私のハックが標準の Joomla になり、必要なものを自由にオーバーライドできるようにします

于 2013-03-26T13:18:21.977 に答える
0

インターネットで検索を行った後、次の記事にたどり着きました。

http://docs.joomla.org/How_to_override_the_component_mvc_from_the_Joomla!_core

これはトリックを行うようです...

于 2013-03-14T13:05:34.900 に答える