Drupal 7 Webフォームをコードに保存する


8

コードにウェブフォームを保存するための解決策があるかどうか疑問に思っています。他のサイトで簡単に複製して、独自のモジュールにバンドルすることができます。私はビューAPIとして類似の何かを探しています。

それが利用できない場合、何人の人がそのような機能に興味がありますか?コードでのWebフォームの格納を処理できるモジュールを開発する可能性があります。そして、あなたはそのようなモジュールを作成することに何か懸念がありますか?

ありがとう、Jaap


Webformモジュールで作成されたフォームのことですか?
Mołot

1
はい、webformモジュールで作成されたフォームを意味します
Jaap Jansma

1
実際には非常に簡単です。Webform共有がどのように実行するかを確認してください。(webform_share_export()そしてwebform_share_node_insert()お金の関数です)。の使用を承認しているとは言えませんeval()が、JSONオブジェクト/シリアル化された文字列を使用するように簡単に変換できます。克服する必要がある唯一の(小さな)困難は、Webフォームを新しいノードに適用する方法とタイミングです。もちろん、ノードには、Webフォームをアタッチする必要があります。
クライヴ

回答:


1

そうでもない、そしてその必要はない

  1. コードから利用可能なフォームが必要な場合は、フォームAPIフォームを最初から作成するのはそれほど難しくありません。ビューとは異なり、テーマのWebフォームはノードIDを介してのみ作成でき、サイトごとに異なるため、モジュールにバンドルされているWebフォームフォームは便利ではありません。

  2. フォームをモジュールにバンドルする必要があり、何らかの理由でフォームAPIを使用できない場合は、UUID機能の統合Webフォーム共有がその方法を提供します。純粋な意味でのコードではありませんが、機能するはずです。

  3. hook_form_alter特定のWebフォームのフォームAPI表現を取得するのは比較的簡単です。もちろん、後で簡単に変更することはできませんが、繰り返しになりますが、見方とは逆に、それは良いことです。一部のデータが表示されなくても、モジュールは損傷しません。提供されていない、またはモジュールが予期しない方法で提供されたデータは、問題を引き起こす可能性があります。したがって、モジュールにフォームが必要な場合、編集するのは簡単ではありません。いずれにせよ、フォームを編集するにはモジュールのコードを編集する必要があるため、このような状況では、フォームAPIコードを使用することで、長期的には難しくありません。


1
これは代替案の良い答えですが、Webフォームをコード内に保持したいというのはかなり合理的な要求です(私はそれが必要ない、またはそれが実際に可能ではないことに同意しません)。たとえば、UIを介してユーザーが拡張できるモジュールをベースの連絡先フォームに提供する場合、Webフォームが理想的です。そのUIを自分で構築するのは本当に大変です。webformとにかくオブジェクト(または配列?)はノードオブジェクト上にあるので、シリアル化して簡単に再適用できます
Clive

@Cliveしかし、基本的な連絡先として、なぜ誰かが実際のコードを必要とするのでしょうか?エクスポートされたノード(UUID機能の統合により、ノードをモジュールにエクスポートできます)では十分ではないのはなぜですか?
Mołot

そのモジュールはWebformオブジェクトも同期しますか?
クライヴ

@Clive私が覚えている限りでは、いくつか問題ありますが、はい。ああ、カスタムコードフォームからのデータを必要とする場合、それをWebフォームにするのは危険ではないでしょうか。私はWebformでフィールドを削除に対して抵抗力があるようにする方法を知りません(しかし、私はそれほど厳しく見ていないことを認めます)。
Mołot

1
実際、統合を機能させるためのwebformのパッチさえあります。私はそれを取り戻します:)
Clive
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.