Тип модуля Moodle - PullRequest
       15

Тип модуля Moodle

2 голосов
/ 30 июня 2011

Мне поручено написать относительно небольшое и простое веб-приложение на PHP, которое будет использовать небольшую базу данных. Аутентификация для этого будет осуществляться с помощью случайно сгенерированных шестнадцатеричных ключей в строке запроса, которые генерируются страницей администрирования и отправляются нужным пользователям по электронной почте.

Пока все нормально, но вот подвох:

По различным политическим причинам мы вынуждены сделать это приложение модулем Moodle. Я могу использовать базу данных Moodle в MySQL, но я буду работать с моими собственными таблицами, которые не взаимодействуют с Moodle, и Moodle не будет взаимодействовать с моими таблицами. Я также должен использовать абстракцию базы данных Moodle вместо прямого доступа к PHP-> MySQL.

Я не хочу, чтобы мои пользователи знали, что они работают в Moodle. Им не нужно входить в Moodle, чтобы получить доступ к моему веб-приложению, и, вероятно, у них все равно не будет доступа к Moodle. Те пользователи, которые имеют доступ к Moodle, не должны видеть это веб-приложение в своем списке функций Moodle.

Я собрал несколько небольших страниц PHP, включил несколько библиотек Moodle и поместил код в каталог moodle / mods. Доступ к страницам PHP на сервере с URL-адресами напрямую приводит к ошибке Moodle, так как я не обращаюсь к модулю через надлежащие каналы. Я получаю сообщение об ошибке "Обнаружен неверный доступ".

Возможно ли то, что мне поручено сделать? Если так, то как лучше всего это сделать? Нужно ли писать модуль аутентификации, а затем модуль активности? Есть ли способ обойти всю аутентификацию Moodle и просто использовать абстракцию базы данных без редактирования основных файлов конфигурации Moodle? (Я знаю, что это возможно, изменив код Moodle, но, к сожалению, это не вариант).

У меня достаточно опыта работы с PHP, но у меня есть только около 4 часов опыта Moodle, и я никуда не делся быстро.

Ответы [ 2 ]

0 голосов
/ 28 июня 2014

Не совсем точно, что вы пытаетесь достичь, но может сработать любое из следующего:

(1) Если у вас есть отдельная платформа, которую вы хотите доставить в рамках LMS, вы можете предложитьвстречное предложение разработать его в предпочитаемой вами среде, но обернуть в LTI .Затем Moodle может доставить его через плагин External Tool, и вы можете получить двустороннюю связь между ними для аутентификации и отслеживания.

(2) Выполнение в Moodle

Создание аутентификации с помощью login_hook и убедитесь, что это перемещено в верхнюю часть списка плагинов аутентификации, чтобы его сначала проверяли перед остальными.Используйте ловушку для обработки шестнадцатеричного ключа (в качестве параметра GET или POST) или для перехода к альтернативному процессу и возврата true (или создания сеанса).Вы также можете использовать «альтернативную страницу входа» в настройках аутентификации вместе с этим подключаемым модулем.Это должно занять аутентификацию.

Если регистрация не является проблемой, тогда создайте свой плагин как локальный плагин (не мод) и используйте вышеупомянутый хук, чтобы перенаправить на эту страницу после входа в систему.Это дает вам больше гибкости в используемых вами библиотеках, и вы все равно можете использовать регистрацию на первой странице, если это необходимо в качестве обходного пути.Если вы действительно нуждаетесь в зачислении, ролях курса и зачетной книжке, используйте мод, чтобы использовать их.В последней версии Moodle существует единый формат учебного курса, который дает вам формат, позволяющий самостоятельно выполнять только ваши индивидуальные действия.

Наконец, разработайте собственный тип макета в теме для локального плагина, если используете его или длямакеты курса и набора, если вы используете курсы, чтобы вы могли контролировать, какую стандартную навигацию и структуру Moodle вы хотите.

Если плагин использует Moodle, уже используемый для других видов деятельности, вам необходимочувствительны к этому.Если вы просто запускаете свою собственную программу, это будет намного проще.

(3) Используйте Веб-службы , чтобы получить то, что вы хотите от Moodle, в своем собственном приложении.

0 голосов
/ 13 августа 2011

Мне кажется, что вы, возможно, пытаетесь получить доступ к сценарию при входе с хоста, отличного от того, который poodle указал в своем конфигурационном файле.Вы можете попробовать сбросить ваш http_host и лапшу wwwroot, чтобы увидеть, как выстраиваются.Я менее знаком с 2, чем 1.9, но вы можете определить abort_after_config, затем включить config, изменить cfg wwwroot, затем определить abort_after_config_cancel, а затем включить setupВ противном случае вы можете подменить хост, в противном случае вы можете удалить чек в файле Tue lib / setup.pup

...