it-swarm-vi.com

Làm thế nào để hiển thị và lưu một biểu mẫu từ mô-đun như chúng ta làm trong các thành phần?

Tôi hiển thị và lưu các biểu mẫu trong các thành phần Joomla MVC bằng cách sử dụng các lớp jmodeladmin.

Nhưng làm thế nào tôi có thể làm điều tương tự từ một mô-đun? Vì các mô-đun không thực hiện mọi thứ theo cách MVC mà tự động có thể tìm thấy chế độ xem, mô hình và bộ điều khiển tương ứng.

Vì vậy, tôi đoán rằng tôi sẽ hiển thị một biểu mẫu theo sau những gì được đề cập trong bài đăng này Làm cách nào để có được hình thức thành phần từ mô-đun? nhưng khi nhấp vào nút gửi của biểu mẫu trong mô-đun liên quan, làm cách nào tôi có thể bắt gửi và lưu bằng cách sử dụng các lớp jmodeladmin ??

5
dev-m

Tôi nghĩ bạn cần phải bắt đầu ra từ mô-đun của mình bằng một thành phần. Bạn có thể sử dụng JForm để xuất biểu mẫu trong mô-đun của mình và sau đó có các đầu vào ẩn như

<form action="index.php" method="POST" name="yourform">
<input type="hidden" value="com_yourcomponent" name="option"/>
<input type="hidden" value="yourview" name="view"/>
<input type="hidden" value="savesomething" name="task"/>
<!-- ...and other input-fields with your actual form input -->
</form>

sau đó bạn có thể sử dụng tất cả các phương thức thông thường để xử lý đầu vào biểu mẫu ...

4
jonasfh

Bạn đúng khi gửi với một mô-đun khó khăn hơn một chút vì các lần gửi biểu mẫu phải đi tới một URL. Thật rắc rối khi phải viết một thành phần chỉ để chấp nhận đầu vào từ mô-đun.

Vì vấn đề này, trong Joomla 3 là Matt Thomas đã viết một thành phần gọi là com_ajax. Com_Ajax là một thành phần được thiết kế để hỗ trợ các mô-đun thực hiện mọi việc với các mô-đun khi không có URL cụ thể để hoạt động như bạn có trong một thành phần.

Trường hợp của bạn với tôi chính xác là những gì com_ajax được thiết kế để giúp giải quyết. Dưới đây là một số tài liệu về việc sử dụng nó:

http://docs.j Joomla.org/Using_J Joomla_Ajax_Interface

Những gì bạn sẽ làm với mô-đun của bạn là viết một cái sẽ được thực hiện thông qua URL gửi. Tôi nghĩ rằng bạn sẽ muốn sử dụng một số javascript để hỗ trợ biểu mẫu gửi ở đó nhưng tôi không chắc liệu nó có hoàn toàn cần thiết không (nhưng nó hấp dẫn hơn).

Sau đó, trong trình trợ giúp của bạn, bạn sẽ thiết lập lớp cho mô-đun:

https://github.com/J Joomla-Ajax-Interface/Ajax-Session-Module/blob/master/helper.php#L12

Bạn sẽ thiết lập với phương thức getAjax (): https://github.com/J Joomla-Ajax-Interface/Ajax-Session-Module/blob/master/helper.php#L12

Để xử lý việc kéo biểu mẫu gửi dữ liệu qua JFactory :: getApplication () -> input ()

Sau đó, bạn sẽ trả về một số loại phản hồi, có thể là một chuỗi như chuỗi JSON là thông báo lỗi hoặc thành công.

Hy vọng điều này sẽ giúp!

3
Chad Windnagle