ありがとうございます。
私が開発しているパッケージに下記を加えることで解決いたしました。
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);
}
システムページのオーバーライド
2016年2月3日 at 10:51
使用バージョン:concrete5.6.3.4
PHP Version 5.6.3RC1
IIS 8.0
■ログインページ
concrete/controllers/login.php
concrete/single_pages/login.php
■会員登録ページ
concrete/controllers/register.php
concrete/single_pages/register.php
■会員一覧
concrete/controllers/members.php
concrete/single_pages/members.php
■マイページ関連
concrete/controllers/profile/○○○.php
concrete/single_pages/profile/○○○.php
上記ファイルをパッケージからオーバーライドしてコントローラには、ある機能を追加したり
シングルページ(ビューファイル)の方に表示する項目を増やしたり、
レイアウトや、HTML構造を変更したいのですが、
1、そもそもオーバーライドでどうこうできる話でしょうか?
2、別のシングルページを追加して対応するほうがいいのか?
3、オーバーライドして対応できるのできるのであれば、どうやって実装すべきか?
4、やり方等ご存じであればご指導おねがいいたします。
よろしくお願いいたします。
タグ:
Your post has been saved and will be published after approval by the forum moderator.
acliss
Re: システムページのオーバーライド
1、オーバーライドでできます。
2、しないほうがいいと思います。
3、書かれている上記はコア領域といいます。(concreteディレクトリ内)
それをユーザー領域といわれるconcreteディレクトリと同階層の同名のディレクトリにコピーします。
コントローラーはメソッドごとのオーバーライドが出来ますので、修正や追加したいメソッドだけ書き込んでください。
注意点としては、今度concrete5のバージョンアップされた場合にオーバーライドしている部分は、適用されません。