моя задача кафедральная состоит в следующем:
Мне для moodle было поручено написать один дополнительный модуль, который позволял бы автоматически создавать новые курсы по дисциплинам на основании рабочей программы дисциплины (РПД). Это РПД преподаватель составляет в начале каждого семестра. Шаблон такой РПД у меня есть, но скинуть тут в сообщении вроде бы нельзя, прикреплять некуда)
То есть подразумевается, что преподаватель составляет такое РПД, затем заходит в систему и открывает курс своей дисциплины, который был создан уже заранее. Затем на странице этого курса ему надо уже загрузить в модуль свою составленную РПД и запустить его на исполнение, чтобы модуль выгрузил из этого файла нужные данные и создал всё необходимое: лабы, лекции, самостоятельные работы и т.д.
загружает его в модуль, который выгружает из этого файла нужные данный и создаёт всё необходимое.
Было решено, что удобнее всего выгружать данные из XML-файла, так что я просто создал аналогичный шаблон РПД, но в Экселе и сохранил его как XML, там получились удобные теги, которые удобно искать по стилю ячейки (ничего лучше не придумал я).
Сам модуль я решил на python'е писать.
Таким образом получается, что выгружаем данные и в виде SQL-запроса записываем в нужную таблицу БД moodle.
Визуально модуль удобно было бы изобразить в виде блока, на котором есть кнопка запуска python-скрипта, из-за чего я собственно и заинтересовался созданием собственного блока в moodle. Но я не совсем понимаю как моему скрипту сослаться на нужный файл РПД и начать его "парсить"... Не знаю как подцепить источник данных так сказать...
Я пытался разобраться как загружаются файлы в мудл по аналогии с блоком "Мои личные файлы", но что-то порылся и знаний мне не хватает, чтобы понять что да как там устроено... В моём скрипте есть такие строки:
url = open('C:\XML 2003.xml')
xml = parse(url)
И вот что записать вместо 'C:\XML 2003.xml' так, чтобы выбирался файл, нужный преподавателю, не знаю...
Я вот думаю цеплять файл как-нибудь при помощи блока "Мои личные файлы". То есть, преподаватель загружает свою РПД в данный блок. После уже надо запустить мой блок с кнопкой запуска скрипта. Теперь надо осуществить поиск в таблице "files" по id user'а и ... по расширению файла. Будем считать и пропишем это в регламенте работы, что в блоке "Мои личные файлы" обязан находиться лишь один файл с расширением XML. Тогда по логике вещей должна найтись одна запись (хотя в таблице "files" при добавлении одного файла, почему-то добавляется 2 записи =/ ). После уже по этой записи скрипт должен понять какой именно файл ему цеплять для обработки. Но есть такие сложности, как то, что moodle записывает название файла как хэш-сумма и т.д....