フォームブロックから送られてくるメールの件名をカスタマイズしたい

2018年5月16日 at 12:09

フォームブロックから送られてくるメールの件名をカスタマイズしようと思っているのですが、
現在使用しているバージョン8.3.2は、blocks\form\controller.php内にある記述を修正しても反映されないようです。

フォームブロックは、カスタムテンプレートもblocks\form\は読み込まず、
blocks\express_formの方を読み込んでいるので、
blocks\express_form内にあるcontroller.phpを見てみたのですが、
該当しそうな箇所がみあたりません。

どなたか修正方法をご教授いただければ幸いです。

タグ:

Re: フォームブロックから送られてくるメールの件名をカスタマイズしたい

2018年5月17日 at 11:52
以前、express_formをいじって挫折しましたが、
参考になれば・・・と思い、共有します。

たぶん、該当のコア側のソースの箇所は、
src/Express/Entry/Notifier/Notification/FormBlockSubmissionEmailNotification.php
であるかと思われます。

参考になれば幸いです。
 

Re: フォームブロックから送られてくるメールの件名をカスタマイズしたい

2018年5月18日 at 13:16
返信ありがとうございます。

教えて頂いたコアファイルをコピーし
以下の場所に修正してたファイルを置いたのですが反映されないようです。
application\src\Express\Entry\Notifier\Notification

FormBlockSubmissionEmailNotification.phpのnamespaceの記述の仕方に問題があるような気がするのですが、違ってますか?
namespace Application\Src\Express\Entry\Notifier\Notification;
 

Re: フォームブロックから送られてくるメールの件名をカスタマイズしたい

2018年5月18日 at 15:51
> 教えて頂いたコアファイルをコピーし
> 以下の場所に修正してたファイルを置いたのですが反映されないようです。
> application\src\Express\Entry\Notifier\Notification

これだけでは、反映されないです。

concrete/blocks/express_form/controller.php
に、 concrete フォルダの方を読みにいくように設定されているので、
こちらの controller.php の指定部分も変更しないといけないです。


追加で修正が必要です。

簡単な方法では、
concrete/blocks/express_form/controller.php

application/blocks/express_form/controller.php
にコピーして、 namespace を「namespace Concrete\Block\ExpressForm;」から「namespace Application\Block\ExpressForm;」に変更。

「use Concrete\Core\Express\Entry\Notifier\Notification\FormBlockSubmissionEmailNotification;」を「use Application\Src\Express\Entry\Notifier\Notification\FormBlockSubmissionEmailNotification;」に変更。

これで行けると思います。


本当であれば、必要なメソッドだけを抽出して concrete5 をバージョンアップするときに調整が必要な工数を最低限にしたいですが・・・。取り急ぎ。

しかし、タイトル部分は簡単に変更できるようにはしたいかもですね。
 

Re: フォームブロックから送られてくるメールの件名をカスタマイズしたい

2018年5月22日 at 11:01
返信ありがとうございます。

教えて頂いたように
application\blocks\express_form\controller.php
の記述を2か所変更してフォームを送信してみたのですが、
以下のエラーが出て、送信できませんでした。
Class 'Application\Src\Express\Entry\Notifier\Notification\FormBlockSubmissionEmailNotification' not found

他に修正する場所が必要ですか?
 

Re: フォームブロックから送られてくるメールの件名をカスタマイズしたい

2018年5月22日 at 11:58
> 以下のエラーが出て、送信できませんでした。
> Class 'Application\Src\Express\Entry\Notifier\Notification\FormBlockSubmissionEmailNotification' not found

Class (ファイル) みつからないというエラーなので、ファイルの設置場所、大文字・小文字が気になります。

application/src/

のフォルダ名で試していただけますか?
 

Re: フォームブロックから送られてくるメールの件名をカスタマイズしたい

2018年5月23日 at 8:50
controller.phpのフォルダ名を小文字にしても、以下のような同様のエラーが出てしまいます。
Class 'application\src\Express\Entry\Notifier\Notification\FormBlockSubmissionEmailNotification' not found

コアファイルと同じように、application以下に同じ階層で設置し、大文字・小文字も同じようにしていますが、エラーが出てしまいます。

concrete\blocks\express_form\controller.php ⇒
application\blocks\express_form\controller.php

concrete\src\Express\Entry\Notifier\Notification\FormBlockSubmissionEmailNotification.php ⇒
application\src\Express\Entry\Notifier\Notification\FormBlockSubmissionEmailNotification.php

スペルもチェックしましたが、問題はなさそうです…