0

カスタム フォーム ページで編集した場合と管理者バックエンド内で編集した場合とで異なる動作をするフィールドを持つフォームで使用されるカスタム コンテンツ タイプを作成したいと考えています。このフォームを使用すると、訪問者はサインアップして、オンライン出版物が変更されたときに通知を受けることができます。iframe別のアプリケーション内でフォームを使用する予定です。

カスタム コンテンツ タイプ フィールド

  • ファーストネーム
  • 苗字
  • 職業
  • Eメール
  • パブリケーション ID
  • 購読日
  • キャンセル日
  • アクティブです

ユーザーがカスタム フォーム ページでフォームに入力する場合 (管理バックエンド内から新しいコンテンツ アイテムを作成するのではなく)、いくつかのフィールドの動作を変更したいと思います。

  • ProductIdフィールド (テキスト型) は編集可能または表示可能ではなく、クエリ文字列変数から値を取得する必要があります
  • SubscribeDateフィールドは編集可能または表示可能であってはならず、フォームが送信された日付に自動的に設定される必要があります
  • CancelDateフィールドは編集可能または表示可能であってはなりません
  • IsActiveフィールドは編集可能または表示可能ではなく、自動的に true に設定する必要があります

私はオーチャードを初めて使用し、最初はカスタム フィールドまたはカスタム パーツ、または非表示の入力を使用するフィールドの代替ビューを作成することを考えていました。質問を書き留めた後、良い解決策があると思いますが、もっと良い方法があるかどうか知りたいです。

考えられる解決策

  1. FirstName、、、、、のみを含む上記LastNameのフォームOccupationとは異なるフォーム専用のカスタム コンテンツ タイプを作成しEmailますPublicationId
  2. text inputフォームのビューをオーバーライドし、要素をPublicationId使用する代わりにhidden input、クエリ文字列変数から値を取得します。または、フィールドだけのカスタム ビューを作成しPublicationIdます。
  3. ワークフローを使用して、フォームの送信時に上記のカスタム コンテンツ タイプのインスタンスを作成します。とのデフォルトを設定しSubscribeDateますIsActive。ワークフローでどの程度制御できるかわかりません。代わりに、上記のカスタム コンテンツ タイプのインスタンスを作成し、既定値を設定するフォーム送信用のハンドラーを作成します (これは存在しますか?)。

私は正しい方向に向かっていますか?管理 UI またはコードでカスタム コンテンツ タイプを作成する必要がありますか? この公開通知機能に関連するすべてのコードを 1 つの場所にまとめて、モジュールを作成することは理にかなっています。この機能のその他の部分は次のとおりです。

  • ユーザーのサインアップ時に確認メールを送信する
  • ユーザーが電子メール内のリンクをクリックして、公開通知の購読を解除できるようにする
  • どのパブリケーションが変更されたかをチェックする毎日のタスクを実行し (別の API があるので、そこにロジックを記述して API を呼び出すことができます)、そのパブリケーションにサインアップしたすべての人に電子メールを送信します。

ありがとう!どんな入力でも大歓迎です。

4

1 に答える 1