Событие Moodle в локальной настройке

Я пишу локальный пользовательский код для своего настроения. Когда пользователь записывается на курс, он должен перехватывать событие. Но ничего не произошло

Это мой код:

библиотека.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,
    ),
);

версия.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).

Кто-нибудь может помочь?


person Eucalyptus    schedule 29.10.2014    source источник


Ответы (1)


Вы объявили вызываемую функцию как «forum_user_enrolled», но созданная вами функция называется «local_newenrolment_user_enrolled». Вы также заявили, что функция находится в «mod/forum/lib.php», а не в файле lib вашего плагина.

person davosmith    schedule 29.10.2014
comment
Танк вам за вашу помощь. Изменил его на 'handlerfile' => '/local/newenrollment/lib.php', 'handlerfunction' => 'local_newenrollment_user_enrolled', но все равно это не работает... - person Eucalyptus; 29.10.2014
comment
Вероятно, вам нужно увеличить номер версии, чтобы изменения вступили в силу, и установить/обновить плагин через админку сайта -> уведомления. Также вы, вероятно, не увидите здесь эха, если вы хотите увидеть, работает ли он, используйте функцию add_to_log(), а затем проверьте содержимое mdl_log. - person Russell England; 29.10.2014