Re: システムページのオーバーライド

2016年2月3日 at 12:14

どのようなことをされたいかによるのですが、

1、オーバーライドでできます。
2、しないほうがいいと思います。
3、書かれている上記はコア領域といいます。(concreteディレクトリ内)
それをユーザー領域といわれるconcreteディレクトリと同階層の同名のディレクトリにコピーします。
コントローラーはメソッドごとのオーバーライドが出来ますので、修正や追加したいメソッドだけ書き込んでください。

注意点としては、今度concrete5のバージョンアップされた場合にオーバーライドしている部分は、適用されません。

Re: システムページのオーバーライド

2016年2月3日 at 14:38
ありがとうございます。
私が開発しているパッケージに下記を加えることで解決いたしました。

public function on_start()
{
$env = Environment::get();

/* システムページのオーバーライド */
//ログイン
$env->overrideCoreByPackage('controllers/login.php', $this);
$env->overrideCoreByPackage('single_pages/login.php', $this);
//ユーザー一覧
$env->overrideCoreByPackage('controllers/members.php', $this);
$env->overrideCoreByPackage('single_pages/members.php', $this);
//ユーザー登録ページ
$env->overrideCoreByPackage('controllers/register.php', $this);
$env->overrideCoreByPackage('single_pages/register.php', $this);

//ユーザーマイページ
$env->overrideCoreByPackage('controllers/profile/controller.php', $this);
$env->overrideCoreByPackage('single_pages/profile/view.php', $this);
$env->overrideCoreByPackage('controllers/profile/avatar.php', $this);
$env->overrideCoreByPackage('single_pages/profile/avatar.php', $this);
$env->overrideCoreByPackage('controllers/profile/edit.php', $this);
$env->overrideCoreByPackage('single_pages/profile/edit.php', $this);
$env->overrideCoreByPackage('controllers/profile/friends.php', $this);
$env->overrideCoreByPackage('single_pages/profile/friends.php', $this);
$env->overrideCoreByPackage('controllers/profile/messages.php', $this);
$env->overrideCoreByPackage('single_pages/profile/messages.php', $this);
}
 

Re: システムページのオーバーライド

2016年2月3日 at 15:31
あっ、ごめんなさい、パッケージでしたね。