来自Moodle doc:
上下文是Moodle中可以分配角色的空间.
我知道上下文是用于管理Moodle对象的逻辑空间.
我开发了一个带有文件上传的自定义块插件,我使用它file_prepare_draft_area和file_save_draft_area_files函数.有一个$context必须传递的参数,我真的不知道我应该传递什么上下文?这意味着,我想,我应该在哪个逻辑空间中放置我的块插件上传的文件?在我看来,最合乎逻辑的是将上传的文件存储在与我的块插件相关的上下文中.
我试图使用context_block :: instance($ instanceid),但我不知道如何获取$ instanceid param.
上下文的类型如下:
上下文的层次结构是:System => Course category => Course => Activity module
阻止上下文可以出现在课程内或"网站"课程中.用户上下文不属于课程.
如果您希望文件绑定到块的特定实例(例如,当删除块时它们会自动删除,并且您可以将块的不同实例中的文件分开),那么您应该使用块上下文(但是您将必须将块的instanceid传递给子页面,以便使用它来获取上下文:
$context = context_block::instance($blockinstanceid);
如果您希望文件绑定到课程 - 因此课程中块的所有实例共享相同的文件空间,并且仅在删除整个课程时删除文件,然后使用课程上下文(将courseid传递到子页面,作为一个参数,然后使用:
$context = context_course::instance($courseid);
但是,如果要在站点上的所有块之间共享该文件区域,则系统上下文就是您想要的:
$context = context_system();
| 归档时间: |
|
| 查看次数: |
1506 次 |
| 最近记录: |