Intereting Posts
Анализ вложенных JSON для получения значений вложенных массивов Способы скрыть код html5 / javascript Как я могу сделать что-то вроде этого – цикл через неопределенный набор чисел CodeIgniter index.php Переписывание URL-адресов OVH Использование одного параметра несколько раз в подготовленном mysqli-statement Самый быстрый способ определения страны пользователя Предупреждение: mysql_num_rows () ожидает, что параметр 1 будет ресурсом, boolean указан в /home/folder/public_html/folder/folder/login.php в строке 18 phpgraphlib_v2.31 – График не загружается в Div в PHP Повторение папки приложения zf2 в «Модулях / Приложении» и «Модулях / Приложении / src / Приложение» Как взорвать строку списка параметров URL в парном => Array? Laravel 5 добавление HTML в электронную почту Как напечатать целое число в форме треугольника MAMP: переменные среды, которые удаляются / заменяются между envvars и runtime sfValidatorDoctrineUnique не выполняется заглавными буквами Как проверить токен JSON с помощью открытого ключа RSA?

По завершении обновления внешней базы данных

Мой сценарий;

Пользователь в Moodle завершает курс. Я хочу обновить внешнюю базу данных, как только это произойдет. Я понимаю, что событие course_completed запускается каждый раз при запуске задания cron.

Каков наилучший подход к обновлению внешней базы данных с помощью некоторых простых значений, например Username / ID, CourseID и, возможно, даты завершения, завершенных курсов?

Я бы предпочел не взломать завершение / cron.php, чтобы сделать это, но, если потребуется!

Вам нужно будет создать локальный плагин.

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

Вам понадобится файл version.php для установки плагина и добавления обработчика событий.

Затем создайте функцию

 function local_mypluginname_course_completed($eventdata) 

в

 /local/mypluginname/lib.pgp 

Это будет вызываться при запуске cron

Чтобы узнать содержимое $ eventdata, посмотрите

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

в

 /completion/completion_completion.php 

Чтобы обновить удаленную базу данных, посмотрите код в режиме проверки подлинности db

 /auth/db/auth.php 

Что-то вроде

 $mydb = ADONewConnection('mysql'); $mydb->Connect($dbhost, $dbuser, $dbpass, $dbname, false); $mydb->Execute($insertsql); $mydb->Close();