Ok đây là câu trả lời cho câu hỏi của riêng tôi và một vài quan sát và sửa lỗi.
Đầu tiên, khi sử dụng khối mã mẫu trong tệp thành phần xml tùy chỉnh của tôi, tôi đã bỏ qua việc thêm tên trường trong bảng cơ sở dữ liệu tùy chỉnh của mình.
Vì vậy, ví dụ: list_tem mẫu từ ví dụ xml
Cần phải đi vào cơ sở dữ liệu MYSQL trong bảng thành phần của tôi như vậy:
tên cột: list_tem mẫu loại cột: văn bản
Về cơ bản vì dữ liệu JSON của nó và nó phù hợp nhất với cột kiểu văn bản.
Kế tiếp...
Có một lỗi khi đóng Modal và sau đó mở lại, nó sẽ nhân đôi nội dung bạn thêm vào.
Để khắc phục điều này, tôi đã tìm thấy tệp repeatable.js nằm trong media / system / js và tạo một bản sao lưu của nó. Sau đó tôi đã dán phiên bản không nén vào js lặp lại và thấy rằng bằng cách thay đổi dòng này:
30 // Set original content for cancel
31 origContent = getTrs().clone();
đến đây
30 // Set original content for cancel
31 origContent = getTrs();
Rằng nó thực sự sửa lỗi trùng lặp. Tôi đã thực hiện một số thử nghiệm để xem liệu nó có làm đúng hay không. Không có mất dữ liệu đang xảy ra và không có dữ liệu đang được sao chép nữa. Bạn có thể mở và đóng hộp phương thức bao nhiêu lần tùy thích và nó sẽ chỉ hiển thị cho bạn các lựa chọn bạn đã lưu.
Tôi đã thử điều này bằng cách đóng tệp xem và mở lại dữ liệu và một số phương pháp khác tất cả đều đang hoạt động.
Và cuối cùng!
Vì tôi muốn lặp lại nội dung của JSON trong chế độ xem của mình dưới dạng bảng bên dưới nút chọn, tôi cũng đã thêm một vài điều có thể lặp lại / js để cho phép tôi có thể lưu và áp dụng sau khi nhấp vào nút lưu trong phương thức.
Điều này có nghĩa là khi tôi nhấp vào lưu vào các trường lặp lại theo chế độ, trang sẽ lưu và áp dụng cho phép tôi thu thập dữ liệu trực tiếp từ trường cột của bảng để hiển thị trên trang.
Tôi đã đạt được điều này bằng cách thêm một vài điều sau đây.
Một chức năng để có được view = thành phần tên xem từ url
// get the url values function
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,
function(m,key,value) {
vars[key] = value;
});
return vars;
}
và sau đó thiết lập một varibale cho chế độ xem như vậy
var componentName = getUrlVars()["view"];
và sau dòng 341
Tôi đã thêm cái này
Joomla.submitbutton(''+componentName+'.apply');
Bây giờ nút Save phương thức thực hiện công việc của nó và sau đó j Joomla lưu mục đó và biết thành phần nào xem nó lưu nó vào và ở lại trên trang. Điều này cho phép tôi thu thập dữ liệu bảng nhưng cũng lưu nội dung trong trường hợp có thể lặp lại trong trường hợp người dùng nghĩ rằng họ đang lưu nó và vô tình bấm vào nhóm nút mặc định của mục.
Tôi hy vọng tôi có thể giúp ai đó với câu trả lời / bài viết của tôi. Nếu nó không thích hợp để đặt tất cả những thứ này chỉ cho tôi biết và tôi sẽ chuyển nó đi nơi khác.
-