Как массово удалить записи на курсы в Moodle?

Moodle имеет встроенную возможность сброса для каждого курса. Я хочу сбросить все мои курсы.


person Community    schedule 30.06.2009    source источник


Ответы (3)


Извините, что возвращаю этот старый пост, но после долгой борьбы я наконец заставил этот код работать. Я тестировал его в среде Moodle 1.9.7.

<?php
require('../config.php');
require_once('reset_form.php');

$courseids = array(8,9,11);

foreach ($courseids as &$value) {
    $data->MAX_FILE_SIZE = 8097152;
    $data->reset_start_date = 1251781200;
    $data->reset_events = 1;
    $data->reset_logs = 1;
    $data->reset_notes = 1;
    $data->reset_roles = Array(5);
    $data->mform_showadvanced_last = 0;
    $data->reset_roles_local = 1;
    $data->reset_gradebook_grades = 1;
    $data->reset_assignment_submissions = 1;
    $data->reset_forum_all = 1;
    $data->reset_quiz_attempts = 1;
    $data->id = $value;

    require_login($value);      
    require_capability('moodle/course:update', get_context_instance(CONTEXT_COURSE, $value));

    $status = reset_course_userdata($data);
}
?>
person Italo Saraiva    schedule 26.04.2016

Хорошо, я понял это, но будьте очень осторожны. Если вы не знаете, что делаете, не используйте этот код, вы можете нанести большой ущерб своей БД. Это сбрасывает курс «по умолчанию» на все идентификаторы курсов в массиве.

 <?php
require('../config.php');
require_once('reset_form.php');

$courseids = array(8,9,11);

foreach ($courseids as &$value) {


    $data->MAX_FILE_SIZE = 8097152;
    $data->reset_start_date = 1251781200;
    $data->reset_events = 1;
    $data->reset_logs = 1;
    $data->reset_notes = 1;
    $data->reset_roles = Array(5);
    $data->mform_showadvanced_last = 0;
    $data->reset_roles_local = 1;
    $data->reset_gradebook_grades = 1;
    $data->reset_assignment_submissions = 1;
    $data->reset_forum_all = 1;
    $data->id = $value;

    $status = reset_course_userdata($data);
}
?>
person Community    schedule 30.06.2009

Вы не должны сбрасывать курсы таким образом, это слишком рискованно. Используйте функцию администрирования курса. Выберите курс, найдите администратора курса. блок, нажмите кнопку сброса, очень просто. Если у вас всего 3 курса, это займет около 30 секунд.

person jamesTheProgrammer    schedule 16.11.2011
comment
Да, а если у вас 368? Мы часто хотим удалить всех студентов со всех курсов в конце учебного года. - person AdamG; 16.06.2013