课程完成时更新外部数据库

2024-04-28

我的场景;

Moodle 中的用户完成了一门课程。一旦发生这种情况,我想更新外部数据库。我的理解是,每次运行 cron 作业时都会触发 course_completed 事件。

使用一些简单值(例如已完成课程的用户名/ID、课程 ID 以及完成日期)更新外部数据库的最佳方法是什么?

我宁愿不破解completion/cron.php来做到这一点,但如果有必要的话我会这样做!


您需要创建一个本地插件。

http://docs.moodle.org/dev/Local_plugins http://docs.moodle.org/dev/Local_plugins

在 /local/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 http://docs.moodle.org/dev/Events_API#Handling_an_event

您需要一个 version.php 文件来安装插件并添加事件处理程序。

然后创建一个函数

function local_mypluginname_course_completed($eventdata)

in

/local/mypluginname/lib.pgp

这将在 cron 运行时被调用

要了解 $eventdata 的内容,请查看

events_trigger('course_completed', $this->get_record_data());

in

/completion/completion_completion.php

要更新远程数据库,请查看数据库身份验证中的代码

/auth/db/auth.php

就像是

$mydb = ADONewConnection('mysql');
$mydb->Connect($dbhost, $dbuser, $dbpass, $dbname, false);
$mydb->Execute($insertsql);
$mydb->Close();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

课程完成时更新外部数据库 的相关文章

随机推荐