設置フォルダ: /var/www/html/
データベース: MySQL
SQLモード: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
baserCMSバージョン: 5.0.21
CakePHPバージョン: 4.4.17
baser-core/config/bc_form.php
このbc_form.phpは、
{ThemePlugin}/config/bc_form.php
こんな感じで、独自テーマで上書きできますか?
やってみたところ、上書きできないようでした。
1)できるはずだけど、何かしら間違えてて出来ていない
2)別の方法がある
3)そもそも上書きできない
どれでしょうか?
akasky
2
こんにちは!
ヘルパーに渡すテンプレートを指定すれば出来そうです。いかがでしょうか?
// 参考となるコアのソース
$this->loadHelper('BaserCore.BcForm', ['templates' => 'BaserCore.bc_form']);
// 例
$this->loadHelper('BaserCore.BcForm', ['templates' => 'BcPluginSample.my_form']);
返信ありがとうございます!
$this->loadHelperは、独自テーマのどこに書けば良いのでしょうか?
config/bootstrap.php
src/Plugin.php
この辺のinitializeの中に置いてみたのですが、うまく動きませんでした、、、
BaserCore\View\AppView これを継承する?と思って独自テーマの中で、View\AppView.phpを設置してみたのですが、継承してないのか、反映してないのか、とにかくうまく動きませんでした、、、
akasky
4
@hideichi
うーん、確かに差し替えとなると確かに難しいですね・・・。
独自テーマのconfig内にmy_template.phpを配置するとして、
例えばレイアウトファイル「layout/default.php」の先頭で
$this->helpers()->unload('BcForm');
$this->loadHelper('BaserCore.BcForm', ['templates' => 'BcThemeSample.my_template']);
とかで無理やり読み込み直すことは可能だと思います。
ただこれだとdefaultレイアウトではないViewには適用されないので、
全体に適用するには独自プラグインを作ってイベントで読み込み直すとかになりますかね。
もっとスマートな方法がありそうですが
なるほど、ありがとうございます。
引き続き有識者様のコメントを待ちたいと思います、
$this->helpers()->unload('BcForm');
$this->loadHelper('BaserCore.BcForm', ['templates' => 'BcThemeSample.my_template']);
今更なんですが、こちら、
layout/default.phpの先頭に配置しても、読み込めなかったです、
原因等については、まだ調べていませんが、