Tôi đang tạo một plugin và đang cố chạy một đoạn script sau khi nó được cài đặt. Vì lý do nào, nó xuất hiện tệp script đang tải, nhưng mã của tôi không bao giờ chạy.
Tệp script.php của tôi chứa các mục sau:
// No direct access
defined('_JEXEC') or die('Restricted access');
/**
* Script file for the plg_system_example plugin
*/
class plg_system_notifierInstallerScript{
/**
* Method to run after the plugin install, update, or discover_update actions have completed.
*
* @return void
*/
function postflight($type,$parent){
// For Testing Purposes
die('Hello World');
}
}
Tôi đã cố gắng sử dụng một số dẫn xuất khác nhau của tên lớp mà không có may mắn. Nếu tôi đặt một câu lệnh die () bên ngoài lớp, nó sẽ được chạy, điều đó khiến tôi tin rằng tệp đã được tải. Tôi cũng đã thử các phương thức khác, chẳng hạn như install () nhưng không thành công.
Lưu ý rằng tôi đã có mã thực tế thay cho câu lệnh die (), nhưng đã chuyển sang mã này trong quá trình gỡ lỗi vấn đề này.
Tôi đang làm gì mà Joomla! không gọi phương thức postflight () trong lớp của tôi khi cài đặt?