コンポーネントが削除されるとWebformデータはどうなりますか?コンポーネントタイプを変更できますか?


9

数百件の提出物がある複雑なWebフォームを継承しました。コンポーネントの1つは、フォーム送信者の電子メールアドレスをキャプチャするために使用されるTextfieldでした。なんらかの理由で、これはテキストフィールドであり、電子メールフィールドではないため、電子メールアドレスを使用して確認メールを送信できません。

テキストフィールドの電子メールコンポーネントを削除すると、すべてのデータはどうなりますか?消されると思います。

データを保持したままフォームコンポーネントのタイプを変更する方法はありますか?

更新:Drupal 7とWebform 3.19を使用しています


Drupal 6またはDrupal 7のWebformモジュールを使用していますか?
アイアス2013年

Drupal7。申し訳ありませんが、それについて言及する必要がありました。
Kevin Morse 2013年

Drupal 7では、データベースのフィールド名を変更する場所があります。しかし、それを行う方法はわかりません
AgA 2014年

回答:


3

Webformコンポーネントが削除されると、そのコンポーネントに対して送信されたデータが削除されます。フォームの他のコンポーネントのデータは保持されます。Webform 7.x-3.23のwebform_submitted_data MySQLテーブルにクエリを実行して、これらを確認しました。

ユーザーcalebtrが示すように、各コンポーネントには「プライベート」チェックボックスがあり、ersatzのdelete-but-save-the-data機能として使用できます。ただし、結果を読み取る権限を持つログインしたユーザーには、コンポーネントが表示されます。フォーム(結果だけでなく)。これらのフィールドは、スタイルシートまたはカスタムテンプレートを使用して、場合によってはプライベートフィールドセットにまとめた後に非表示にすることができます。

Webform UIはコンポーネントタイプの変更を許可しません。この情報はwebform_component.fieldsetに保存されているので、おそらくそこで変更できます。また、「追加」列のコンポーネント設定を更新することもできます。


2

本当にデータ構造をそのままにしておく必要があるのか​​、それともデータを保存しておく必要があるのか​​を検討してください。ビューでWebフォームデータを使用していますか?誰かがWebformが提供する自動化された「分析」に依存していますか?

新しい送信の確認メールのみを送信する必要がある場合は、同じラベル、異なるキー、正しいタイプの新しいフィールドを追加し、フィールド設定で「非公開」としてマークして、元のフィールドを非表示にします。

プライベートフィールドは結果にアクセスできるユーザーに表示されるため、これはユースケースでは機能しない場合があります。

または、Node Cloneモジュールを使用して、Webフォームを複製し、データを失うことなく、またはすべてのキーを再入力する必要なく、そのフィールドを変更します。


0

削除したフィールドがコンテンツタイプに固有のものである場合、そのフィールドは(データを含む)データベースから削除されます。から共有フィールドを削除すると、そのフィールドは、コンテンツタイプに固有のデータとともにそのコンテンツタイプから削除されます。

フィールドに関連付けられたデータを保持する必要があるが、データに別のタイプのフィールドが必要な場合は、事前に計画する必要があります。

  • 新しいフィールドを作成します。
  • 古いフィールドから新しいフィールドにデータを移行する方法を考案します。
  • 古いフィールドを削除します。

良い解決策は、フィードモジュール(フィールドにインポートする)とビューデータエクスポートモジュール(フィールドをスプレッドシートにエクスポートする)を使用することです。手順は次のとおりです。

すべてのテキストフィールド値を一覧表示し、移行するすべてのフィールドを表示するビューを設定します。次に、データをエクスポートし、CSV形式を選択します。

フィードを使用して、データをD7にインポートします。エクスポートされた各フィールドを適切なフィールドにマッピングするだけです。

一方、このチュートリアルも読みたいと思うかもしれません


フィードはWebformデータをインポートしますか?
mpdonadio

MPDのフォローアップ:Webformコンポーネントはフィールドと見なされますか?Webformでは、カスタムモジュールを使用する場合を除いて、独自のコンポーネントタイプを定義できません。そのため、Webformコンポーネントはすべて共有フィールドであると思いますか?
Kevin Morse

ケビンよくわかり
Sohail
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.