Lưu trữ các biểu mẫu web Drupal 7 trong mã


8

Tôi tự hỏi nếu có bất kỳ giải pháp để lưu trữ các biểu mẫu web trong mã. Vì vậy, bạn có thể dễ dàng sao chép chúng trên các trang web khác và gói chúng với các mô-đun của riêng bạn. Tôi đang xem xét một cái gì đó tương tự như API xem.

Nếu nó không có sẵn bao nhiêu người quan tâm đến chức năng như vậy? Tôi có thể phát triển một mô-đun có thể xử lý việc lưu trữ các biểu mẫu web trong Mã. Và bạn có bất kỳ mối quan tâm trong việc tạo ra một mô-đun như vậy?

Cảm ơn, Jaap


Bạn có nghĩa là các hình thức được tạo ra với mô-đun Webform?
Mołot

1
Có, ý tôi là các biểu mẫu được tạo bằng mô-đun webform
Jaap Jansma

1
Thật ra nó rất dễ, chỉ cần nhìn vào cách chia sẻ Webform . ( webform_share_export()webform_share_node_insert()là các hàm tiền). Không thể nói tôi chấp nhận việc sử dụng eval(), nhưng bạn có thể dễ dàng chuyển đổi nó để sử dụng một đối tượng JSON / chuỗi được tuần tự hóa thay thế. Khó khăn duy nhất (nhỏ) bạn cần khắc phục là làm thế nào / khi biểu mẫu web của bạn được áp dụng cho một nút mới, một nút tất nhiên được yêu cầu để đính kèm biểu mẫu web.
Clive

Câu trả lời:


1

Không thực sự, và không cần nó

  1. Nếu bạn cần biểu mẫu có sẵn từ mã, biểu mẫu API không khó để viết từ đầu. Trái ngược với Chế độ xem, bạn chỉ có thể tạo chủ đề Webforms cho ID nút của họ và điều đó sẽ thay đổi từ trang này sang trang khác, vì vậy các biểu mẫu Webform kèm theo mô-đun sẽ không thuận tiện.

  2. Nếu bạn muốn gói các biểu mẫu với các mô-đun của mình và vì bất kỳ lý do nào bạn không thể sử dụng API biểu mẫu, tính năng UUID Tích hợpchia sẻ biểu mẫu Web cung cấp các cách để làm điều đó. Nó sẽ không phải là một theo nghĩa thuần túy, nhưng nó sẽ hoạt động.

  3. Nó tương đối dễ sử dụng hook_form_alterđể có được biểu diễn API Form của biểu mẫu web cụ thể. Tất nhiên, bạn sẽ không thể thay đổi nó dễ dàng trong tương lai, nhưng một lần nữa, trái với quan điểm, điều đó là tốt. Mô-đun không bị tổn thương nếu một số dữ liệu không được hiển thị. Dữ liệu không được cung cấp, hoặc được cung cấp theo cách mà mô-đun không mong đợi, có thể phá vỡ mọi thứ. Vì vậy, nếu mô-đun cần một hình thức, nó không phải là dễ dàng để chỉnh sửa . Chỉnh sửa để hình thành sẽ yêu cầu chỉnh sửa mã của mô-đun, vì vậy mã API Mẫu giúp mọi thứ dễ dàng hơn, không khó hơn trong thời gian dài, trong các tình huống như vậy.


1
Mặc dù đây là một câu trả lời tốt cho giải pháp thay thế, tôi nghĩ rằng muốn giữ các biểu mẫu web trong mã là một yêu cầu khá hợp lý (tôi không đồng ý rằng không cần nó, hoặc điều đó không thực sự khả thi). Ví dụ: nếu bạn muốn cung cấp một biểu mẫu Liên hệ cơ sở với một mô-đun mà sau đó người dùng có thể mở rộng thông qua giao diện người dùng, một biểu mẫu web sẽ là lý tưởng. Xây dựng UI đó sẽ là một nỗi đau thực sự. Vì webformđối tượng (hoặc mảng?) Dù sao cũng nằm trên đối tượng nút, nên nó có thể được tuần tự hóa và áp dụng lại rất dễ dàng
Clive

@Clive Nhưng đối với liên hệ cơ bản, tại sao mọi người sẽ yêu cầu mã thực? Tại sao nút xuất khẩu (với Tích hợp tính năng UUID bạn có thể xuất nút sang mô-đun) là đủ?
Mołot

Có phải mô-đun đó đồng bộ hóa đối tượng Webform không?
Clive

@Clive Theo tôi nhớ, có một số vấn đề nhưng có. Ồ, và nếu mã tùy chỉnh cần dữ liệu từ một biểu mẫu, sẽ không làm cho biểu mẫu web trở nên nguy hiểm? Tôi biết không có cách nào để làm cho các trường chống lại việc xóa trong Webform (nhưng tôi thừa nhận rằng tôi trông không khó lắm).
Mołot

1
Thật vậy, thậm chí còn có một bản vá cho biểu mẫu web để tích hợp hoạt động. Tôi lấy lại :)
Clive
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.