it-mot-dan-vi.com

Nâng cấp lên J3 mang lại cho JHtmlBehavior :: không tìm thấy mootools

Tôi nhận được một lỗi 500 với JHtmlBehavior::mootools not found. Tôi biết điều này đã được gỡ bỏ trong J3 nhưng vấn đề của tôi là cố gắng tìm ra vấn đề này ở đâu.

Tôi nghi ngờ đây là một phần mở rộng nhưng tôi nghĩ tôi đã cập nhật tất cả. Rõ ràng là không. Tôi không thấy gì trong nhật ký php hoặc bảng điều khiển công cụ dành cho nhà phát triển để chỉ ra vấn đề có thể xảy ra. Tôi thậm chí grep cho JHtmlBehavior và không có gì.

Bất kỳ lời khuyên về làm thế nào tôi có thể gỡ lỗi này?

9
Tom

Tìm thấy vấn đề trong thành phần tùy chỉnh của riêng tôi ... ugh. Tôi không thể tìm thấy mã vi phạm vì tôi đang tìm kiếm JHtmlBehavior::mootools.

Nhưng mã vi phạm là đây:

JHTML::_('behavior.mootools');

Thay đổi nó để sửa lỗi này:

JHtml::_('behavior.framework');
9
Tom

Mặc dù MooTools không được dùng trong Joomla 3, nhưng nó vẫn khả dụng (nhưng có thể bị xóa trong các phiên bản trong tương lai).

Bạn có thể tải khung bằng cách thêm

JHtml::_('behavior.framework');

(hoặc nếu bạn cần cả thư viện Core và More):

JHtml::_('behavior.framework', true);

đến mẫu của bạn index.php tập tin.

Đây ít nhất sẽ là một sửa chữa tạm thời, cho đến khi bạn tìm thấy tệp/tiện ích mở rộng sử dụng mã Mootools. Tìm ra thủ phạm có thể khó, nhưng tôi khuyên bạn nên bắt đầu với trình duyệt Công cụ dành cho nhà phát triển của mình (F12 trong hầu hết các trình duyệt) và tìm kiếm các lỗi JavaScript, nó có thể cho bạn một gợi ý.

3
johanpw

Dưới đây là một số bước để tìm nơi mã đến từ:

  1. Cách tốt nhất là tải xuống một bản sao đầy đủ của trang web và thực hiện tìm kiếm hệ thống trong hệ điều hành của nó cho JHTML :: _ ('behavior.mootools'); . Thông thường máy tính của bạn sẽ trả về một danh sách với tất cả các tệp có chứa chuỗi cụ thể này.

  2. Nếu bước đầu tiên là không thể hoặc bạn không thể nhận được bất kỳ kết quả nào vì bất kỳ lý do gì, thì bạn nên bắt đầu vô hiệu hóa tiện ích mở rộng.

    a. Đầu tiên chuyển đổi mẫu - sang mẫu protostar Joomla 3 cốt lõi. Nếu vấn đề biến mất rất có thể, đó là mẫu của bạn chứa mã không dùng nữa.

    b. Sau đó, bạn có thể bắt đầu tắt các mô-đun và plugin.

    c. Cuối cùng, hãy xem vấn đề có xuất hiện chỉ trên các trang cụ thể của các thành phần bên thứ 3 không.

Tìm thêm thông tin về cách tải Khung Javascript trên Joomla trên Tài liệu Joomla

2
FFrewin

Đây là một lỗi PHP dẫn đến lỗi Joomla gây ra lỗi, do đó, không phải là lỗi Javascript và không phải là lỗi cần sửa bằng cách thêm nhiều PHP. Vì bạn nghi ngờ bạn cần tìm nguồn gốc của lỗi. PHP cuộc gọi.

Điều đầu tiên cần làm là bật báo cáo lỗi của bạn thành "Phát triển" và xem nó cung cấp cho bạn bất kỳ thông tin mới nào, nếu không có thông tin mới nào giúp bạn theo dõi nguồn gốc của lỗi thì nó sẽ trở thành phương pháp xúc xắc và xúc xắc thủ công.

Hãy thử hoán đổi nhanh với một mẫu có sẵn và xem vấn đề có biến mất không - nếu đó là mẫu hoặc mô-đun không còn được gọi vì vị trí được gán không tồn tại trong mẫu mặc định mà bạn đã hoán đổi. Nếu đó không phải là mẫu bạn có thể theo dõi các mô-đun khá nhanh.

Cuối cùng, nếu điều đó không có ích, hãy sử dụng phương pháp 50% để thu hẹp nhanh chóng nhóm thành phần, mô-đun hoặc plugin nào là nguồn gốc của vấn đề.

2
Craig