2011-06-30 82 views
2

我的任務是編寫一個相對較小且簡單的PHP Web應用程序,它將使用一個小型數據庫。對此的驗證將通過查詢字符串中的隨機生成的十六進制鍵生成,由管理頁面生成並通過電子郵件發送給所需用戶。Moodle模塊類型

這是所有罰款,到目前爲止,但這裏的漁獲:

由於各種政治原因,我們不得不將這個應用程式一個Moodle的模塊。我可以在MySQL中使用Moodle數據庫,但是我將使用我自己的不與Moodle交互的表格,而且Moodle不會與我的表格進行交互。我還必須使用Moodle數據庫抽象,而不是直接使用PHP-> MySQL訪問。

我不希望我的用戶知道他們在Moodle中運行。他們不需要登錄到Moodle來訪問我的網絡應用程序,他們可能無法訪問Moodle。那些有權訪問Moodle的用戶不應該在他們的Moodle功能列表中看到這個Web應用程序。

我把幾個小PHP頁面放在一起,包括一些Moodle庫,並將代碼放在moodle/mods目錄中。使用URL訪問服務器上的PHP頁面直接導致Moodle錯誤,因爲我沒有通過正確的渠道訪問模塊。我收到「檢測到錯誤的訪問」錯誤。

我的任務甚至有可能做什麼?如果是這樣,那麼完成它的最好方法是什麼?我是否需要編寫一個認證模塊,然後編寫一個活動模塊?有什麼辦法可以繞過所有的Moodle認證,只需使用數據庫抽象而不用編輯核心Moodle配置文件? (我知道通過修改Moodle代碼是可能的,但可惜這不是一種選擇)。

我有豐富的PHP經驗,但我只有大約4小時的Moodle經驗,而且我無法快速完成任務。

+0

+1。 Moodle,學術界和「各種政治理由」似乎與「無路可走」攜手並進 – Brad

+0

@Brad - 我可以在一天之內完成這個項目,如果它是在普通的Web服務器上獨立運行的。不幸的是,我不是在這裏作出這些決定的人。 – Ozzah

回答

0

聽起來,你可能會嘗試訪問腳本,而不是從配置文件中指定的獅子狗指定的主機進入。你可以嘗試傾銷你的http_host和麪條wwwroot,看看是否排隊。我對2比1.9不太熟悉,但你可以定義abort_after_config,然後包含配置,然後更改cfg wwwroot,然後定義abort_after_config_cancel,然後包括設置。否則,您可能會欺騙主機,否則您可以刪除Tue lib/setup.pup文件中的檢查

0

不確定您在此嘗試達到的目標,但以下任何一項都可能有效。 (1)如果您有一個獨立的平臺,您希望在LMS框架內交付,那麼您可以提出一個在您的首選環境中開發它的反提議,但將其包裝在LTI中。然後,Moodle可以通過外部工具插件提供它,您可以在兩者之間進行雙向通信以進行身份​​驗證和跟蹤。

(2)做它的Moodle

login_hook創建身份驗證,確保是這樣的話,它是在別人之前首先檢查移動到認證插件列表的頂部。使用鉤子來處理十六進制鍵(作爲GET或POST參數),或者帶您到另一個進程並返回true(或創建會話)。您還可以在身份驗證設置中使用「替代登錄頁面」以及此插件鉤子。這應該採取認證。

如果註冊不是問題,那麼創建您的插件作爲本地插件(非mod),並使用上面的掛鉤登錄後重定向到此頁面。這爲您使用的庫提供了更多的靈活性,如果需要,您仍然可以使用首頁註冊作爲解決方法。如果你確實需要註冊,課程角色和成績冊,那麼使用模型來利用這些。最新的Moodle中有一種單一的活動課程格式,它可以讓您自行運行定製活動。

最後在本地插件的主題中開發自己的佈局類型(如果使用該插件的話),或者如果使用課程的話,可以控制標準Moodle導航和結構的需求。

如果插件正在共享已經用於其他活動的Moodle,那麼您需要對此敏感。如果你只是在運行你自己的東西,那麼它會容易得多。

(3)使用Web Services可以在您的應用程序中獲得Moodle所需的內容。