2012-02-07 37 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