2
我的場景;課程完成更新外部數據庫
Moodle的用戶完成一門課程。一旦發生這種情況,我想更新外部數據庫。我的理解是,每當cron作業運行時,都會觸發course_completed事件。
哪些是用一些簡單的值(例如用戶名/ ID,課程ID以及可能完成日期)更新已完成課程的外部數據庫的最佳方法?
我寧願不要破解完成/ cron.php來做到這一點,但會如果我必須!
我的場景;課程完成更新外部數據庫
Moodle的用戶完成一門課程。一旦發生這種情況,我想更新外部數據庫。我的理解是,每當cron作業運行時,都會觸發course_completed事件。
哪些是用一些簡單的值(例如用戶名/ ID,課程ID以及可能完成日期)更新已完成課程的外部數據庫的最佳方法?
我寧願不要破解完成/ cron.php來做到這一點,但會如果我必須!
您將需要創建一個本地插件。
http://docs.moodle.org/dev/Local_plugins
創建/本地/ myplugnname
插件創建events.php文件
/local/mypluginname/db/events.php
有了這個
$handlers = array (
'course_completed' => array (
'handlerfile' => '/local/mypluginname/lib.php',
'handlerfunction' => 'local_mypluginname_course_completed',
'schedule' => 'cron',
'internal' => 1,
),
看看這裏的更多信息http://docs.moodle.org/dev/Events_API#Handling_an_event
您需要一個version.php文件來安裝插件並添加事件處理程序。
然後在
/local/mypluginname/lib.pgp
此創建一個功能
function local_mypluginname_course_completed($eventdata)
將被調用時,cron會
,找出$內容EVENTDATA看看
events_trigger('course_completed', $this->get_record_data());
在
/completion/completion_completion.php
要更新遠程數據庫的看看代碼數據庫認證
/auth/db/auth.php
喜歡的東西
$mydb = ADONewConnection('mysql');
$mydb->Connect($dbhost, $dbuser, $dbpass, $dbname, false);
$mydb->Execute($insertsql);
$mydb->Close();
感謝您深入的答案,這真的幫助我解決了我的問題! –