Moodle 1.9.7:Загрузка файла в панель администратора назначения
Вопрос
В Moodle 1.9.7 мне нужно разрешить преподавателю загружать файл в панель администратора совершенно нового плагин назначения.
При переопределении установки_элементы функционировать в моем assignment.class.php, Я делаю что - то вроде:
$mform->addElement('file', 'foo', 'Label');
$mform->setHelpButton('foo', array('foo', 'Label', 'assignment/type/my_assignment'));
Форма загружается с помощью удобного средства выбора файлов, но как мне следует управлять загруженным файлом?Какая функция должна быть переопределена?Как я могу указать место, куда я хочу загрузить файл?
В Moodle наблюдается полное отсутствие документации (смешанной с некоторой путаницей) по этому поводу: (
Я копаюсь в коде, чтобы увидеть, что происходит за сценой.В то же время я подумал, что некоторые из вас могли бы сделать то же самое в прошлом.
Я знаю, что это весьма специфично, но, возможно, разработчик Moodle смотрит на это :)
Решение
Что ж, покопавшись в коде, вот что я сделал.
Я переопределил следующие функции присваивания:
function add_instance($submission)
{
return (save_uploaded_files($submission)) ? parent::add_instance($submission) : false;
}
function update_instance($submission)
{
return (save_uploaded_files($submission)) ? parent::update_instance($submission) : false;
}
Где находится save_uploaded_files($submission)
функция выглядит следующим образом:
function save_uploaded_files($submission)
{
global $CFG;
$um = new upload_manager('my_file', ... [OPTIONS HERE] ... );
return $um->process_file_uploads("my/upload/path");
}