2012-02-07 70 views
0

我真的是Moodle的新手,我有這種先進的功能爲客戶的Moodle網站儘快構建。我一直在閱讀很多有關Moodle的文檔和其他在線資源,但我想也是從這裏獲得專家的幫助。創建高級報表 - Moodle

我期待構建一個高級報告功能,其中不同的角色用戶有權查看高級報告(高級別,概述級別,個人)的層次結構。

報告數據將基於組織層次結構,也就是說,管理員可以查看部門報告,在部門內他可以選擇任何部分,他可以選擇任何區域並最終選擇該區域內的任何個人。

我需要爲此編寫一個單獨的插件,以便將來的升級不會超過這些更改。任何人都可以給我一個關於如何去做這件事的出發點?任何鏈接,指針或建議將是有用的,因爲我現在對Moodle全新的了?

回答

0

您需要將此插件放在/ local文件夾中,並通過添加到主導航塊的鏈接提供對其頁面的訪問。

myplugin_extends_navigation(global_navigation $navigation) { 
    // Read the docs for get_context_instance and look at other uses to see what params you need 
    $usercontext = get_context_instance(CONTEXT_USER, $USER->id, MUST_EXIST); 

    // You will need to define some capabilities or use existing ones. If the user is allowed, they see the link below 
    if (has_capability('whatevercapability', $context)) { 

     // Adds a link 
     $node_schedule = $nodecoursework->add('Submission Schedule', 
               new moodle_url('/local/myplugin/sub.php'), 
               navigation_node::TYPE_CUSTOM, 
               'Submission Schedule', 
               'Submission Schedule'); 
    } 
} 

報告頁面,然後放在這個文件夾作爲單獨的文件(sub.php在這個例子中:這是通過將以下功能分爲/local/myplugin/lib.php將被自動拾取完成)。尋找html_table()類來生成報告,也是基於sql的子類。

製作本地插件的文檔是here,您可以看到一個示例here

+0

謝謝你的回覆。那麼我高興地建立了模塊,首先創建了一個層次結構,在這個層次結構中,人工智能可以創建新的部門,分區n個區域並將其分配給對方。然後finaly把用戶放入不合邏輯的組中。我在做一個插件cald用戶層次結構在/ blocks /文件夾中,並且在hev準備好我的層次結構的時候我會在/ report /文件夾中創建一個插件,考慮n讓差異級別的用戶查看差異報告。是不是也是正確的?可能還有太多的複雜因素,比如我們可以這樣做。 – ivn 2012-02-17 12:39:45

+0

聽起來很合理,雖然/報告是非標準的,所以很多像導航鏈接,運行單元測試等的小部件都不會掃描它,這可能是一個缺點。你如何製作層次結構?角色/上下文系統應該已經爲你提供了這些。 – 2012-02-17 13:01:23

+0

Dint get u?系統已經爲你提供了什麼?正如我之前提到的,我創建了一個新的插件,其中包含部門,區域和區域的表格以及將部門和區域分成幾部分的單獨表格。現在剩下的就是將用戶放入這些層次結構中,並根據層次結構設置權限。一旦完成,我將開始使用我的報告插件。 – ivn 2012-02-18 10:22:34