Мне нужно загрузить файлы и папки в курс в moodle из zip-файла, я искал, и я нашел, как загружать файлы. Я пытаюсь загрузить, и файлы загружаются правильно в базу данных и в репозиторий файлов, но эти файлы не отображаются в курсе, когда я вхожу в курс.Загрузка файлов и папок в курс программно в Moodle
ниже код, что я пытаюсь
$packer = get_file_packer('application/zip');
$files = $packer->extract_to_pathname($archivo_zip, $carpeta_unzip);
foreach($files as $path => $status){
$fs = get_file_storage();
$context = context_course::instance($courseid);
$filename = basename($path);
$path_directory = "/" . str_replace($filename, "", $path);
$author = $DB->get_record('user', array('id'=>$userid), '*', MUST_EXIST);
$file_record = new stdClass;
$file_record->component = 'mod_folder'; //mod_resource
$file_record->contextid = $context->id;
$file_record->userid = $userid ;
$file_record->filearea = 'content'; //draft, attachment
$file_record->filename = $filename;
$file_record->filepath = $path_directory;
$file_record->itemid = 0;
$file_record->author = fullname($author);
$file_record->license = $CFG->sitedefaultlicense;
$file_record->source = $filename;
//$file_record->timecreated = time();
//$file_record->timemodified = time();
$existingfile = $fs->file_exists($file_record->contextid, $file_record->component, $file_record->filearea,
$file_record->itemid, $file_record->filepath, $file_record->filename);
if ($existingfile) {
//throw new file_exception('filenameexist');
} else {
$stored_file = $fs->create_file_from_pathname($file_record, $path_upload);
}
}
Я пытаюсь загрузить файлы вручную через веб-сайт, и я заметил, что папки ара, созданные в другой таблице называется mdl_folder
или в таблице под названием mdl_file
, но я не знаю, как это сделать и как наилучшим образом создавать и связывать папки с файлами программно, а затем хорошо отображаться на веб-сайте.
Так что если кто-нибудь знает, как это сделать или есть примеры или документация, которые могут быть полезны, было бы полезно.
Заранее спасибо.