8.5.4 レガシーフォームで自動返信がつけたい

2021年2月18日 at 11:15

こちらのページを参考に自動返信をつけようとしています。
http://concrete5-japan.org/community/forums/beginner/post-15781/

ご紹介されている方法2つとも試してみましたが
同じ場所のファイルで、同じ記載のところでエラー表示になります。(画像添付します)
※今は1)を入れている状態になっています

-----------------------
1)標準のメールフォームに確認メール送信機能とCSVを Shift JIS に変換する機能を追加する
http://github.com/katzueno/c5-form-support-Japanese-style

2)【concrete5】concrete5 ver5.7のフォームに自動返信機能をつける方法
http://onocom.net/blog/%E3%80%90concrete5%E3%80%91concrete5-ver5-7%E3%81%AE%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%AB%E8%87%AA%E5%8B%95%E8%BF%94%E4%BF%A1%E6%A9%9F%E...
-----------------------

どなたかお知恵を貸していただけませんでしょうか。
よろしくお願いいたします。。。




▼環境

# concrete5 Version
Core Version - 8.5.4
Version Installed - 8.5.4
Database Version - 20200609145307

# Database Information
Version: 5.5.68-MariaDB
SQL Mode:

# concrete5 Packages
None

# concrete5 Cache Settings
Block Cache - Off
Overrides Cache - Off
Full Page Caching - Off
Full Page Cache Lifetime - Every 6 hours (default setting).

# Server Software
Apache

# Server API
cgi-fcgi

# PHP Version
7.2.34

添付: 1.png
タグ:

Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年2月18日 at 12:10
1) の本人です。

このエラー画面の左上の英語のエラー文を教えてもらえますか?

おそらく、PHP7.2 に対応していないコードだと思うので、
その修正だけで大丈夫かなと思います。

このコードを作ったのが5年前なので、アップデートが必要だと思います。
 

Re: Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年2月18日 at 13:26
Katzさん

ありがとうございます。
-------------
Whoops \ Exception \ ErrorException (E_WARNING)
count(): Parameter must be an array or an object that implements Countable
-------------

と記載されています。
キャプチャも添付します。

よろしくおねがいいたします。
添付: 2.png
 

Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年2月18日 at 14:51
komakoma さん、先程、GitHub のソースコードに修正をしました。

application/blocks/form/controller.php
の最新版を適用してみてもらえますか?

よろしくお願いします。

ご指摘、ありがとうございます。
 

Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年2月18日 at 18:23
Katzさん

ありがとうございます!

自動返信が届きましたが、管理画面の「レポート」を開くと添付のエラーになります。(画像添付します)
入力するとき必須項目が入っていない場合の「必須」が英語になってしまいました。(画像添付します)

また、件名で、フォーム名の後ろにつく「新着フォーム」という文字を削除したいのですが
どこからかできないでしょうか。


たくさんすみません。
よろしくお願いいたします。
添付: 3.png 4.png
 

Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年2月24日 at 15:57
Katzさん>

2021/02/19配信の週刊 concrete5拝見しました
http://www.youtube.com/watch?v=QM9t8h3AlQY

生感があってこんな風に見てくださるんだと感動しました。ありがとうございます!
初心者で敬遠しているところがありましたが、次回からライブでも見てみたいと思います
(ラジオでメッセージが読まれるドキドキ感と似たものを感じました)


▼画面でエラーが出るようになりました
以下のコードをダウンロードして使用したところ、エラーが出ます。
http://github.com/katzueno/c5-form-support-Japanese-style

・レガシーフォームを設置しているページを開くとエラーになります(添付1)
・フォームがないページで、ページを編集モードにするとエラーになります(添付2)

何度もすみません 
よろしくおねがいいたします
 

Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年2月24日 at 19:05
(違うスレで返信していたので、再投稿)

すいません・・・コンマ「,」を間違って入れてしまったミスがありました。
ライブで話しながら修正していて・・・
すいません。

再度
application/blocks/form/controller.php
を適用していただけすか?

もしくは、エラー画面にある通り
application/blocks/form/controller.php
306行目の「,」を削除していただくだけでもOKです。

GitHub のファイルも同じ修正をしています。


> 生感があってこんな風に見てくださるんだと感動しました。ありがとうございます!
> 初心者で敬遠しているところがありましたが、次回からライブでも見てみたいと思います

いえ、初心者の方こそ、参加して欲しいと思っているので、
ぜひ、お時間があえば参加ください。

よろしくお願いいたします。
 

Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年2月24日 at 20:04
入れてみました

添付の箇所がエラーになります

@$mh->sendMail();が上のと重複?と思い消したり、閉じタグを触ってみましたがわからず。。。
エラー解消されるも自動返信は来ずな状態です。

すみません、ご確認をお願いします

エラーコードを見ても直しどころが判断できずお恥ずかしいです
よろしくお願いします
添付: 2024-3.png
 

Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年2月25日 at 13:14
@$mh->sendMail();を消してみる
→閉じタグがおかしいよ、というようなエラー
→閉じタグを見直してみる→できず・・・という感じです・・
 

Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年2月26日 at 11:52
きゃー、すいません!
あの行の最初に、全角のスペースが紛れ込んでました。

GitHub で修正しました。
(まだ動作確認していないのですが・・・)
 

Re: Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年2月26日 at 13:25
Katzさん、自動返信きました! ありがとうございます
※一番最後の閉じタグ1つだけ多いみたいです。消したら動きました!

すみません、次はもう1つ問題が・・・
必須チェックがかからなくなりました。
また、内容自体がすべてからっぽでも、送信完了になります。

↑送信したら別のページに移動するようにしてます。
からっぽでも、送信ボタンを押すと完了画面へ移動します
管理画面には、このときの情報は入っていませんでした。


▼以下試しました
--------------
必須を全部いれて送信完了: 管理画面へ情報はいる。自動返信メールも来る
空っぽで送信完了: 管理画面へ情報は入らない、メールも来ない
内容を一部だけ入れて送信完了: 管理画面へ情報は入らない、メールも来ない
  ※メールアドレスと名前のみいれてみた。他にも必須項目はあるがからっぽにした。
 

Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年2月26日 at 15:18
何度もすいません!

> ※一番最後の閉じタグ1つだけ多いみたいです。消したら動きました!

確認したら、最後の閉じタグではなく、途中(314行目ぐらい)の閉じタグが余分でした orz
今の GitHub でコードを確認していただけないでしょうか?

よろしくお願いします。
 

Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年2月28日 at 23:25
Katzさん

データ更新しました
自動返信が来るようになりました!!エラーもないです
ありがとうございました!!!!

件名も変更できました!
なのですが、変更すると全部のフォームで自動返信が同じ件名になり
できれば、各フォームの名前で送りたいです。

「新着フォーム」という文字だけ消せたら幸せなんですが 難しいでしょうか?
 

Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年3月2日 at 14:29
件名についてですが、
/application/mail/block_form_submission_user.php
の9行目、
//$subject =""; // 件名をカスタマイズする場合は、ここのコメントアウトを外して入れることで件名を設定できます。
をカスタマイズせずにコメントアウトしたままにしておけば個別のフォーム名が件名になります。

また、お問合せしてきた方向けメールの件名「新着フォーム」消すには
/application/blocks/form/controller.php
の308行目
$mh->setSubject(t('%s Form Submission', $this->surveyName));
これを
$mh->setSubject(t('%s', $this->surveyName));
このように書き換えればOKです。
※管理者宛メールの「新着フォーム」を消すにはまた別の方法となります。必要だったら言ってください。
 

Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年3月4日 at 16:17
aniyaさん>

ありがとうございます!自動返信に「新着メール」がつかなくなりました
管理者宛メールについても、お手数ですが教えて下さい。

よろしくおねがいいたします!
 

Re: 8.5.4 レガシーフォームで自動返信がつけたい

2021年3月4日 at 17:13
concrete/mail/block_form_submission.php
を下記ディレクトリにコピー
application/mail/

上記でコピーした
application/mail/block_form_submission.php
の5行目を次のように書き換える
$subject = t('%s Form Submission', $formName);

$subject = t('%s', $formName);

以上で管理者宛メールの件名から「新着メール」が消えます。