Re: 自作外部フォームの動作不良

2015年1月20日 at 23:57

返信ありがとうございます。

教えて頂いた通りにやってみたのですが、どうもうまくいきませんでした。

キャッシュの影響を気にしながら、いろいろ試してみたところ、
application/blocks/external_form/controllers/my_form.php // (1)
application/blocks/external_form/form/controller/my_form.php // (2)
の両方に配置したときに限って、(2)が呼び出されるようです。

このとき(1)の名前空間は、(1)の位置に対応したものでも(2)と同じものでも変わりがないようです。

で、やっぱり気になるのが

concrete/blocks/external_form/controller.php

ですが、この中で最初の投稿でも引用した(77行目からのgetController()内)、

return \Core::make(
overrideable_core_class(
'Block\\ExternalForm\\Form\\Controller\\' . $class,
DIRNAME_BLOCKS . '/external_form/controllers/' . $this->filename
)
);

の部分によると、ファイルの位置の指定は

/external_form/controllers/

ですが、名前空間は、

Block\\ExternalForm\\Form\\Controller\\

になっています。

このままでは、(1)のファイルを検索した後に(2)のクラスを生成してしまうように思えるのですが、どうでしょうか?

Re: 自作外部フォームの動作不良

2015年1月21日 at 9:08
ほんまですね。ありがとうございます、それを向こうに説明します
 

Re: 自作外部フォームの動作不良

2015年1月24日 at 10:27
やっぱり '/external_form/form/controller/' だったそうです(^^;

次のバージョンで修正されますので、いまから直接修正して使ってもらってもかまいません

http://github.com/concrete5/concrete5-5.7.0/commit/f861bc87408d854d80d5a6b70d88fa5c2166c6ad