新しいバージョンの Concrete5 (v.5.6+) では、パッケージを介してコア クラスをオーバーライド/拡張できるようになりました。
パッケージのメインの controller.php ファイルに次を追加する必要があります。
public function on_start(){
$objEnv = Environment::get();
$objEnv->overrideCoreByPackage('blocks/page_list/controller.php', $this);
}
コア コントローラー全体をコピーする必要はありません。新しいブロック コントローラーを次のように宣言するだけです。
class PageList extends Concrete5_Controller_Block_Page_List {
public function mymethod() {
}
}
(拡張しているクラスとファイルを配置する場所は、C5 のバージョンによって異なる場合があります。/concrete/
フォルダー構造とファイルを参照用に比較してください)
次の C5 フォーラムの投稿が役立つ場合があります。
パッケージによるコア クラスのオーバーライド
パッケージはコア ライブラリをオーバーライドできますか?
ただし、注意が必要です。公式の C5 マーケットプレイスに提出することを希望している場合、通常、オーバーライドのあるアドオンは受け入れられません。