Làm cách nào tôi có thể nối vào hệ thống Biểu mẫu liên hệ Quá trình gửi tin nhắn và thay đổi HTML được tạo?


7

Tôi có một trang web Drupal nơi tôi đang sử dụng Liên hệ trên toàn hệ thống để cho phép khách truy cập gửi tin nhắn cho chủ sở hữu trang web. Khi khách truy cập gửi biểu mẫu, người dùng sẽ được chuyển hướng đến trang chủ và một phần dính xuất hiện ở đầu đọc:

Tin nhắn của bạn đã được gửi.

Câu hỏi của tôi là, có thể thay đổi thông báo này và thêm một số HTML vào đầu ra không? Lý tưởng nhất là tôi sẽ thêm một số javascript để tạo chế độ xem trang ảo cho tài khoản Google Analytics để tôi có thể theo dõi nó dưới dạng Chuyển đổi mục tiêu.

Tôi tưởng tượng đây sẽ là một hàm hook_ nằm trong tệp mẫu của tôi, nhưng tôi còn khá mới đối với quy trình này.

Câu trả lời:


5

Chắc chắn, chỉ cần sử dụng hook_form_alter () và thêm một cuộc gọi lại vào $ form ['# submit']. Cách dễ nhất để tìm id của biểu mẫu của bạn là kiểm tra nó bằng cách sử dụng fireorms. Bài viết này có nhiều thông tin chi tiết hơn: http://www.lullabot.com/articles/modifying-forms-drupal-5-and-6 .

Nói ngắn gọn:

  • Tìm id cho biểu mẫu liên hệ, "contact_mail_page" hoặc một cái gì đó (chú ý cách hifens chuyển sang dấu gạch dưới)
  • Trong một mô-đun tùy chỉnh mới thực hiện một trong hai: yourmodule_form_alter($form_id, &$form, 'contact_mail_page')hoặcyourmodule_form_contact_mail_page_alter($form_id, &$form)
  • Sửa đổi biểu mẫu liên hệ như bạn muốn bằng cách sử dụng biến $ form được truyền bằng tham chiếu

Cám ơn phản hồi của bạn. Tôi đã đọc qua bài viết đó và tôi không gần gũi hơn với giải pháp này. Bạn có một ví dụ? Bài viết đó cho thấy cách viết một hook cho một mô-đun, nhưng biểu mẫu Liên hệ là một mô-đun hệ thống, vì vậy nếu tôi thực hiện thay đổi thì một bản cập nhật cốt lõi sẽ thổi bay sự thay đổi đó. Có lẽ tôi vẫn còn thiếu một cái gì đó.
shanabus

Tôi đã chỉnh sửa bài đăng đầu tiên để có thêm thông tin chi tiết
Alex Weber

Cảm ơn các cập nhật. Tôi vẫn chưa rõ về cách thực hiện giải pháp của bạn. Vì vậy, tôi tạo một mô-đun mới và đặt mã ở đâu? Như tôi đã đề cập ở trên, tôi đủ mới để Drupal rằng tôi chưa bao giờ phải viết một mô-đun. Có lẽ tôi chỉ nên sử dụng mô-đun webform đó. cám ơn lần nữa cho bất kì sự giúp đỡ nào.
shanabus

1

Các Webform mô-đun có thể phù hợp hơn với nhu cầu của bạn nếu nó chỉ là một hình thức rộng trang web nói chung.


Ý tôi là thêm ... mô-đun webform cho phép bạn chỉ định url chuyển hướng được sử dụng khi biểu mẫu được gửi thành công. Điều này cũng có nghĩa là bạn có thể quản lý trang thành công dễ dàng như một loại nội dung thông thường. Hi vọng điêu nay co ich. James

0

@shanabus, bạn hiểu "viết một cái móc cho mô-đun" là không chính xác. Mục tiêu chính của việc tạo một hook tùy chỉnh cho bất kỳ mô-đun hiện có nào bao gồm cả mô-đun hệ thống là để vượt quá hành vi. Đây là cách bạn tùy chỉnh Drupal theo một trang web cụ thể cần. Bạn sẽ không chỉnh sửa mã hiện tại mà thay vào đó thêm mã mới sử dụng hệ thống "hook" để thêm chức năng mới / thay thế.

Thông thường, một chức năng hook tùy chỉnh nằm trong một mô-đun tùy chỉnh được tạo riêng cho trang web bởi tác giả của trang web. Hãy coi đó là nơi lưu trữ các tùy chỉnh cụ thể trên trang web của bạn mà bạn sẽ không chia sẻ với cộng đồng Drupal lớn hơn. Một cách sử dụng cổ điển sẽ là hook_form_alter như Alex gợi ý ở trên.

Xem xét việc xem tài liệu API hook để biết thêm chi tiết: http://api.drupal.org/api/drupal/includes--module.inc/group/hooks . Đây thường là một khái niệm mà các nhà phát triển Drupal mới phải vật lộn để không nản lòng nếu phải nỗ lực thêm để có được khái niệm này. Tất cả chúng ta đã ở đây :)

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.