Điểm:0

Làm cách nào để hiển thị biểu mẫu liên hệ không liên quan đến hệ thống quản lý nội dung mà tôi đã phát triển, chỉ cần không có iframe?

lá cờ sg

Tôi đã phát triển một cách đơn giản, hệ-thống-quản-lý-nội-dung[1] Biểu mẫu liên hệ PHP-HTML-JavaScript-CSS mà tôi thường nhúng bằng iframe nhưng tôi không muốn sử dụng iframe nữa do biểu mẫu xuất hiện một phần trong màn hình di động và cần cuộn để xem tất cả.

Tôi có thể sử dụng CSS này như một giải pháp từng phần:

màn hình @media và (max-width:733px) {
    #prcf_iframe {
        chiều cao:547px;
    }
}

Đây không phải là giải pháp "pixel perfect" hay bất cứ thứ gì gần pixel perfect vì trong một số màn hình di động, biểu mẫu vẫn có một số vùng cuộn hoặc trong các màn hình di động khác, đột nhiên có thêm một số "khu vực chiều cao chết".


Làm cách nào tôi có thể hiển thị biểu mẫu bất khả tri CMS này trong Drupal mà không cần sử dụng iframe?
1. Do thiết kế của biểu mẫu là không thể tin được CMS, nên nó cũng không phải là một phần của mô-đun Drupal.

Jaypan avatar
lá cờ de
Có phải chỉ có biểu mẫu HTML? Trường hợp xảy ra khi gửi - dữ liệu có được gửi không? Lấy từ một API từ xa? Gửi đến một API từ xa?
lá cờ sg
@Jaypan biểu mẫu là các tệp PHP chứa HTML, cũng như tệp JS và/các tệp CSS. Dữ liệu được gửi tới tài khoản Gmail của tôi nên tôi không sợ bị SQL injection.
Jaypan avatar
lá cờ de
Bạn có thể thử dán tất cả vào phần thân của nút, nguyên trạng. Đảm bảo thân nút cho phép toàn văn.
lá cờ sg
@Jaypan mã nguồn biểu mẫu có phần mô-đun và bao gồm nhiều tệp và thư mục khác nhau. Tôi có thể tạo một cụm lớn nhưng tôi không muốn làm như vậy vì nó khiến tôi khó duy trì mã ("lỗi đánh máy ở dòng 500"). Có lẽ trước đây bạn định biên dịch mọi thứ thành HTML nhưng thật đáng buồn là tôi không biết một trình biên dịch như vậy sẽ tạo ra một HTML khổng lồ trong số tất cả.
Jaypan avatar
lá cờ de
Chà, hoặc là vậy, hoặc làm theo cách Drupal thích hợp. Nhưng bạn không muốn thực hiện theo đúng cách của Drupal, vì vậy các tùy chọn của bạn bị hạn chế. Tôi đoán tùy chọn khác là thả tệp vào hệ thống tệp của bạn và liên kết với nó - Drupal sẽ không được khởi tạo trong trường hợp tệp thực sự tồn tại. Mặc dù vậy, bạn sẽ không nhận được bất cứ thứ gì về Drupal, kể cả chủ đề hay bất cứ thứ gì.
lá cờ sg
@Jaypan Tôi cũng sẵn sàng làm điều đó theo cách Drupal (liên hệ hoặc biểu mẫu web) nhưng nếu tôi có thể sử dụng biểu mẫu bất khả tri CMS cụ thể đó thì tốt nhất, ít nhất là trong một số trường hợp. Tôi hoàn toàn không hiểu `thả tệp vào hệ thống tệp của bạn và liên kết với nó` nếu bạn muốn biến nó thành một tệp độc lập mà không có chủ đề thẩm mỹ hơn là không, tôi đồng ý rằng tôi không nên làm điều đó.
Jaypan avatar
lá cờ de
Các cách Drupal sẽ là tạo một mô-đun và sử dụng API biểu mẫu để tạo biểu mẫu của bạn, thay đổi biểu mẫu web hoặc thay đổi biểu mẫu liên hệ.Sau đó, bạn sẽ đính kèm CSS/JS của mình vào biểu mẫu theo bất kỳ phương thức nào bạn chọn.
Jaypan avatar
lá cờ de
Và đúng vậy, bạn đã hiểu đúng ý tôi về việc thả tệp vào hệ thống tệp của bạn.
apaderno avatar
lá cờ us
Hiển thị biểu mẫu bất khả tri CMS trong Drupal là một ý tưởng tồi. Nếu mục đích là nhập dữ liệu mà một API bên ngoài sẽ sử dụng, thì một biểu mẫu Drupal có trình xử lý gửi sẽ gửi dữ liệu đến trang web API bên ngoài là cách tốt nhất, khi bạn đã có một trang web Drupal. Rõ ràng, nó phụ thuộc vào loại tích hợp nào với Drupal được yêu cầu. Tôi cho rằng việc tích hợp với Drupal là cần thiết, nếu không bạn sẽ không hiển thị trang bên ngoài trong Drupal.
Điểm:1
lá cờ cn

"Biểu mẫu bất khả tri CMS không phải là một phần của mô-đun Drupal" cũng có thể được coi là "tập lệnh PHP của bên thứ ba", đây là một rủi ro bảo mật.

Bây giờ, bạn đã tự viết mã này, vì vậy bạn có thể xác minh cho nó. Tuy nhiên, về cơ bản, bạn đang hỏi, "làm cách nào tôi có thể đưa tập lệnh PHP vào Drupal?", đây là điều mà Drupal không muốn bạn làm vì nó có thể phá vỡ các tính năng bảo mật khác nhau của Drupal.

Điều này có nghĩa là câu trả lời cho câu hỏi của bạn là "Thật khó và sẽ có sự thỏa hiệp."

Dưới đây là ba cách tiếp cận bạn có thể thực hiện.

Cách tiếp cận: Lưu trữ tập lệnh trên cùng một máy chủ, nhưng tách nó khỏi Drupal

Một cách tiếp cận là lưu trữ tập lệnh trong thư mục riêng của nó trên máy chủ của bạn, sau đó loại trừ thư mục đó khỏi Drupal. Loại trừ này có thể được thực hiện ở cấp máy chủ để Drupal không bao giờ nhìn thấy tập lệnh và tập lệnh không nhìn thấy Drupal.

Trong trường hợp này, tập lệnh sẽ không phải là một phần của trang web Drupal, vì vậy bạn sẽ không có chủ đề.

Cấu hình máy chủ phụ thuộc vào máy chủ của bạn; bạn có thể Google nó.

Cách tiếp cận: Nhúng nó vào iframe

Bạn đã nói rằng bạn không thích cuộn trong iframe của mình, nhưng có nhiều thư viện JS để giải quyết vấn đề này, chẳng hạn như thay đổi kích thước khung nội tuyến. Đây là một câu hỏi về Stack Overflow.

Cách tiếp cận: Sử dụng Webform

Viết lại biểu mẫu của bạn để sử dụng Hình thức web mô-đun. Vâng, nó sẽ không còn là CMS-agnostic nữa. Nhưng Webform là một trong những mô-đun đóng góp hàng đầu của Drupal và về cơ bản có thể làm mọi thứ-- nhiều tổ chức chọn Drupal vì mô-đun này. Vì vậy, nó rõ ràng có thể xử lý một biểu mẫu liên hệ ở bất kỳ mức độ phức tạp nào và nó sẽ cung cấp cho bạn sự tích hợp đầy đủ với Drupal.

Điểm:0
lá cờ id

Sử dụng mô-đun PHP, tự chịu rủi ro.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.