Điều gì xảy ra với dữ liệu Webform khi một thành phần bị xóa? Tôi có thể thay đổi một loại thành phần?


9

Tôi đã thừa hưởng một Webform phức tạp với hàng trăm bài nộp. Một trong những thành phần là Textfield được sử dụng để ghi lại địa chỉ email của người gửi biểu mẫu. Vì một số lý do, đây là Trường văn bản chứ không phải trường E-mail ngăn tôi sử dụng địa chỉ E-mail để gửi email xác nhận.

Nếu tôi xóa thành phần email trường văn bản, điều gì sẽ xảy ra với tất cả dữ liệu? Tôi cho rằng nó sẽ bị xóa.

Có cách nào để thay đổi loại thành phần biểu mẫu trong khi vẫn bảo quản dữ liệu không?

Cập nhật: Tôi đang sử dụng Drupal 7 và Webform 3.19


Bạn đang sử dụng mô-đun Webform cho Drupal 6 hoặc Drupal 7?
Aiias

Drupal 7. Xin lỗi nên đã đề cập đến điều đó.
Kevin Morse

Trong Drupal 7, có một nơi để thay đổi tên trường trong cơ sở dữ liệu. Nhưng tôi không chắc làm thế nào để làm điều đó
AgA

Câu trả lời:


3

Khi một thành phần Webform bị xóa, dữ liệu đã gửi cho thành phần đó sẽ bị xóa. Dữ liệu cho các thành phần khác của biểu mẫu được bảo tồn. Tôi đã xác nhận những điều này bằng cách truy vấn bảng webform_submit_data MySQL trên Webform 7.x-3.23.

Như calebtr của người dùng đã chỉ ra, có một hộp kiểm "Riêng tư" cho mỗi thành phần có thể được sử dụng như một tính năng xóa-nhưng-lưu-dữ liệu ersatz, ngoại trừ người dùng đã đăng nhập có đặc quyền đọc kết quả sẽ vẫn thấy thành phần đó hình thức (không chỉ trong kết quả). Các trường này có thể được ẩn bằng cách sử dụng biểu định kiểu hoặc mẫu tùy chỉnh, có khả năng sau khi đưa chúng vào một trường riêng.

Giao diện người dùng Webform không cho phép thay đổi loại thành phần. Tôi thấy thông tin này được lưu trữ trong webform_component.fieldset, vì vậy bạn có thể sửa đổi nó ở đó. Bạn cũng muốn cập nhật cài đặt thành phần trong cột "phụ".


2

Xem xét nếu bạn thực sự cần cấu trúc dữ liệu nguyên vẹn hay không, hoặc nếu bạn chỉ cần dữ liệu được bảo tồn. Bạn đang sử dụng dữ liệu webform trong một khung nhìn? Có ai phụ thuộc vào 'Phân tích' tự động mà Webform cung cấp không?

Nếu bạn chỉ cần gửi email xác nhận cho các lần gửi mới, sau đó thêm trường mới có cùng nhãn, khóa khác và loại chính xác, sau đó loại bỏ trường ban đầu bằng cách đánh dấu là 'Riêng tư' trong cài đặt trường.

Các trường riêng được hiển thị cho người dùng có quyền truy cập vào kết quả, vì vậy điều này có thể không hoạt động cho trường hợp sử dụng của bạn.

Ngoài ra, sử dụng mô-đun Node Clone để sao chép biểu mẫu web và thay đổi trường đó mà không mất dữ liệu hoặc phải nhập lại mọi thứ.


0

Nếu trường bạn xóa là duy nhất cho một loại nội dung, thì trường sẽ biến mất khỏi cơ sở dữ liệu (bao gồm dữ liệu của nó). Nếu bạn xóa trường chia sẻ khỏi, trường sẽ bị xóa khỏi loại nội dung đó cùng với dữ liệu duy nhất cho loại nội dung.

Nếu bạn thấy rằng bạn cần giữ dữ liệu được liên kết với trường nhưng bạn cần một loại trường khác cho dữ liệu, bạn cần lập kế hoạch trước.

  • Tạo trường mới.
  • Tạo ra một cách để di chuyển dữ liệu từ trường cũ sang trường mới.
  • Xóa trường cũ.

Một giải pháp tốt có thể là sử dụng mô-đun Nguồn cấp dữ liệu (để nhập vào các trường) và Mô-đun xuất dữ liệu xem (để xuất các trường sang bảng tính). Thủ tục sẽ là:

Thiết lập chế độ xem liệt kê tất cả các giá trị trường văn bản của bạn và hiển thị tất cả các trường bạn muốn di chuyển. Sau đó xuất dữ liệu và chọn định dạng CSV.

Sử dụng nguồn cấp dữ liệu để nhập dữ liệu vào D7. Chỉ cần ánh xạ từng trường đã xuất sang trường ưa thích của bạn.

Mặt khác bạn có thể muốn đọc hướng dẫn quá


Nguồn cấp dữ liệu Webform sẽ nhập?
mpdon Arena

Theo dõi đến MPD: Các thành phần Webform có được coi là các trường không? Webform không cho phép bạn xác định các loại thành phần của riêng bạn ngoại trừ thông qua các mô-đun tùy chỉnh, vì vậy tôi cho rằng các thành phần Webform là tất cả các trường được chia sẻ?
Kevin Morse

Kevin Tôi không chắc nhưng tôi nghĩ phải, dù sao bạn cũng có thể thử và trong trường hợp nguồn cấp dữ liệu không hoạt động, bạn có thể thử nhập webform drupal.org/project/webform_import
Sohail
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.