Тип модуля Moodle

Мне поручено написать относительно небольшое и простое веб-приложение на 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, и я никуда не двигаюсь.


person Ozzah    schedule 30.06.2011    source источник
comment
+1. Moodle, научные круги и различные политические причины, кажется, идут рука об руку с отсутствием быстрого результата.   -  person Brad    schedule 01.07.2011
comment
@Brad - я мог бы закончить этот проект менее чем за день, если бы он работал на обычном веб-сервере независимо. К сожалению, я не тот, кто принимает здесь эти решения.   -  person Ozzah    schedule 01.07.2011


Ответы (2)


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

person matthewdaniel    schedule 13.08.2011

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

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

(2) Делать это в Moodle

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

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

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

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

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

person JamesLee    schedule 28.06.2014