2014-10-29 40 views
0

我正在爲我的moodle編寫本地自定義代碼。當用戶註冊一個課程時,應該趕上事件。但沒有happend本地定製Moodle事件

這是我的代碼:

lib.php:

<?php 
defined('MOODLE_INTERNAL') || die(); 

function local_newenrollment_user_enrolled($tbc) { 

    echo "I m here"; 

    return true; 
} 

event.php

<?php 
defined('MOODLE_INTERNAL') || die(); 

$handlers = array (
    'user_enrolled' => array (
     'handlerfile'  => '/mod/forum/lib.php', 
     'handlerfunction' => 'forum_user_enrolled', 
     'schedule'   => 'instant', 
     'internal'   => 1, 
    ), 
); 

version.php

<?php 
defined('MOODLE_INTERNAL') || die(); 

$plugin->version = 2014012901; // Plugin version. 
$plugin->requires = 2013051402; // Moodle version. 
$plugin->component = 'local_newenrollment'; // Full name of the plugin (used for diagnostics). 

有人能夠幫助?

回答

0

您已聲明函數調用爲'forum_user_enrolled',但您創建的函數稱爲'local_newenrolment_user_enrolled'。你也說過這個函數是在'mod/forum/lib.php'中,而不是在你的插件的lib文件中。

+0

坦克你的幫助。將其更改爲'handlerfile'=>'/local/newenrollment/lib.php', 'handlerfunction'=>'local_newenrollment_user_enrolled',但仍然無法正常工作... – Eucalyptus 2014-10-29 13:11:16

+0

您可能需要將更改的版本號增加爲通過站點管理 - >通知生效並安裝/升級插件。如果你想看看它的工作是否使用add_to_log()函數,然後檢查mdl_log的內容,你也許不會看到回聲「我在這裏」。 – 2014-10-29 17:15:24

+0

現在它工作!謝謝! – Eucalyptus 2014-10-30 08:00:36