Re: 自作外部フォームの動作不良
2015年1月20日 at 3:01
聞いてみましたが、上記の修正はこれで正しい。ということです。
ですので、フォームのコントローラーの格納位置はこのようになり
application/blocks/external_form/controllers/my_form.php
名前空間、及びクラス名はこのようになります
<?php
namespace Application\Block\ExternalForm\Controllers;
use Concrete\Core\Controller\AbstractController;
class MyForm extends AbstractController
{
}
Re: 自作外部フォームの動作不良
2015年1月24日 at 10:27
やっぱり '/external_form/form/controller/' だったそうです(^^;
次のバージョンで修正されますので、いまから直接修正して使ってもらってもかまいません
http://github.com/concrete5/concrete5-5.7.0/commit/f861bc87408d854d80d5a6b70d88fa5c2166c6ad
次のバージョンで修正されますので、いまから直接修正して使ってもらってもかまいません
http://github.com/concrete5/concrete5-5.7.0/commit/f861bc87408d854d80d5a6b70d88fa5c2166c6ad
Your post has been saved and will be published after approval by the forum moderator.
seechi
Re: 自作外部フォームの動作不良
教えて頂いた通りにやってみたのですが、どうもうまくいきませんでした。
キャッシュの影響を気にしながら、いろいろ試してみたところ、
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)のクラスを生成してしまうように思えるのですが、どうでしょうか?