@katz515
こんにちは。
そうなのですね。
じゃ、とりあえずこのまま運用してみます。
いつもお世話になっております。
こちらに返信する事ではないかもしれないのですがConcreteCMS 8.5.7のレガシーフォームでは自動返信メールを使用していますが9.0.1のExpress フォームの作成方法などがわかりません。
勉強不足で申し訳ありませんがレガシーフォームとExpress フォームの違いやExpress フォームを使うメリットやダッシュボードのブロック追加のExpress「一覧」と「詳細」しかありません。
先日の動画(Express フォームの自動返信メールパッチ - Concrete CMS Tips - YouTube)も拝見しましたがファイルのコピーは理解しましたが設定方法がわかりませんでした。
お手数をおかけして申し訳ありませんが、よろしくお願いいたします。
@dsds こんにちは。
勉強不足で申し訳ありませんがレガシーフォームとExpress フォームの違いやExpress フォームを使うメリットやダッシュボードのブロック追加のExpress「一覧」と「詳細」しかありません。
いえいえ。
めちゃくちゃざっくり書くと、
レガシーフォームは、ユーザーから一度だけ情報を収集するだけを目的で使えます。
Express フォームは、Express を使いたい時 and/or 収集した情報を Concrete 内で何か再利用したい場合により有効的です。
そして、Express とは、ざっくりいうと Concrete の中に任意のデータベースを構築できるシステムです。
話が段々と外れます・・・ orz
参考までに、勉強会用の Express の仕組みを理解するサンプルとして、コンクリでカレー専用食べログサイトを作れるサンプルデータを公開しています。
(ちょっとコンクリのバージョンが古いですが)
Express は、ページやファイルといったもの以外の何かデータの集合体、前述のサンプルではカレー屋さんの情報をまとめるために、自分でデータの種類を定義して、データごとに関係性(前述のサンプルの場合は、カレー屋さんと、メニューのデータ)を持たせるといった仕組みを、比較的簡単に設計ができます。
SaaS サービスの、Kintone のコンクリ版のようなものと考えてもらったらいいと思います。Express 一覧 & 詳細ブロックは集めたデータを表示するものです。
あと、自社事例で申し訳ないですが、
ドキュメントデータベースなども作ってます。
話を戻すと・・・。
メリット・デメリットですが、ウェブサイトでユーザーからの一回きりのお問い合わせフォームとして使うのであれば、両者とも正直大きな違いはありません。
レガシーフォームは、簡単にフォームが作れ、情報を収集でき、仕組みもシンプルです。デメリットはシンプルすぎることです。
Express フォームは、情報を収集 or インポートしてからいろいろデータを使えることが利点ですが、そもそも「データベース」なので、使いこなそうと思うとちょっとしたデータベース構築の知識が必要です。
また、表示部分についても、データベースのデザインは千差万別なので、自分でHTML, CSS, PHP でブロックテンプレートを作成して表示させないといけないです。
その代わり、それを覚えてしまえば、前述のなんちゃって食べログサイトみたいに、簡単なウェブアプリケーションの構築が、データベースをコードなどで準備することを省ける分、簡単にできてしまいます。
すみません。具体的な設定方法は、また動画などでお教えします。
こんにちは。
本日、9.1.1 がリリースされ、新機能として、アソシエーションの情報がフォームにも渡されるようになりました。
(まだ確認していません)
これで、自動返信メールのカスタマイズも変更が必要になるかもです。
取り急ぎ、連絡まで。
@katz515
こんにちは。
取り急ぎのご報告なのですが、エラーになりますね。
メールも届きません。
でもデータベースに受信は出来ているし、画像の2重登録もなくなっています。
あと日付選択属性でカレンダーが表示されなかったりしました。
@tomoyuki320 ありがとうございます。
じゃあ、コードが変わっていると思うので、パッチを修正しないとですね。
無茶振りですが、パッチをあててみますか?
であれば、やり方をお教えします。
もしくは、
週刊 Concrete CMS の配信をお休みして修正するとか、
次に時間を作って修正します
はい、やり方を教えていただければテストやります。
差分の取り方ってわかりますか?
あと、 Git や GitHub の操作方法、わかりますか?
@tomoyuki320 ちょっと時間を作って詳細のご指示をと思ったんですが、
ちょいと今週はフォーラムの数が多くなってしまったので、
まず、ざっくり説明をいたします。
Concrete CMS 9.0.2 のコアファイル
/concrete/blocks/form/controller.php
9.0.2 の時にオーバーライドしたファイル
/application/blocks/form/controller.php
この2つの Diff を確認してください。
そうしてその Diff をベースに
Concrete CMS 9.1.1 のコアファイル
/concrete/blocks/form/controller.php
から
/application/blocks/form/controller.php
に DIFF の部分を再適用するのが基本です。
ただ、9.1.1 になってコードが大幅に変わっているかもです。
まずはざっくりですいません。
わからないところがあれば、順番にお教えてします。
取り急ぎすみません、それはレガシーフォームブロックだと思うのですが、このトピックはエクスプレスフォームの自動返信メールですよね?
@tomoyuki320 ああ、すいません。間違えました。
express_form ですね。
Concrete CMS 9.0.2 のコアファイル
/concrete/express_form/form/controller.php
9.0.2 の時にオーバーライドしたファイル
/application/express_form/form/controller.php
この2つのファイルから「public function getNotifications()」 の部分の Diff を確認してください。
そうしてその Diff をベースに
Concrete CMS 9.1.1 のコアファイル
/concrete/express_form/form/controller.php
から
/application/express_form/form/controller.php
に DIFF の部分を再適用するのが基本です。
あと
/concrete/src/Express/Entry/Notifier/Notification
と
/application/src/Express/Entry/Notifier/Notification
の見比べもお願いします。
public function notify(Entry $entry, $updateType)
の関数の括弧内だけを見てもらえれば良いです。
それから、違うところの範囲を見ていきます。
変更箇所が多いと、それ以外の範囲に広げないといけませんが、ひとまず、ここからです。
@katz515
/express_form/form/controller.php の「public function getNotifications」の中は、相違点ありませんでした。
src/Express/Entry/Notifier/Notification/FormBlockSubmissionEmailNotification.php は sendMail の所をコピペしたりしてテストしてみましたが、ページに設置したエクスプレスフォームを送信するとエラーになります。
(エラー画面添付します)
/application/src/Express/Entry/Notifier/Notification/ の中にはもちろん「FormBlockSubmissionEmailNotification.php」をアップロードしています。
それと、ログインした状態だと datepicker のカレンダーが出るのですが、ログインしていない状態だとカレンダーが出ません。
ちょっとお待ちください。
今週、8.5.8 & 8.5.9 リリースでドタバタしてます。
@tomoyuki320 めちゃくちゃ遅れてしまってすいません。
ただ、
検証することができました。
Concrete CMS 9.1.1で Express Form を試し、
無事にユーザーメールも送れることを確認しました。
エラーの内容から、
もしかすると、application/bootstrap/autoload.php のオーバーライドはきちんと適用してもらえましたか気になりました。
めっちゃ遅れてすいません。
@katz515
ありがとうございます。
最初からやり直してみました。
おっしゃる通り、管理者、フォーム送信者の両方にメールは無事に届きました。
ですが、やはりアソシエーションの内容は含まれないです。
お待たせしました。アソシエーションに対応してみたので、テストしてもらえますか?
v.2.0.0 です。
このバージョンから Concrete CMS 9.1.1 以降しか動かないと思うので、
9.1.0 や、それ以前の v9 をお使いの方は、1.0.0 を使うようにしてください。