首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使一个街区只为管理员和教师在情绪化可见?

如何使一个街区只为管理员和教师在情绪化可见?
EN

Stack Overflow用户
提问于 2015-09-18 05:22:14
回答 1查看 1.8K关注 0票数 1

我认为有不止一种方法可以让学生看不见块。

1. Hide the block 2. Assign role to block and set permission to block

但是这些都是由管理员通过改变设置来完成的。我需要一条路。如何编写代码,使该块对学生不可见。

通过更改db/access.php . For来获取activity I can make invisible the activity

代码语言:javascript
复制
 'mod/questionbank:view' => array(
        'captype' => 'read',
        'contextlevel' => CONTEXT_MODULE,
        'legacy' => array(
            //'guest' => CAP_ALLOW,
            //'student' => CAP_ALLOW,
            'teacher' => CAP_ALLOW,
            'editingteacher' => CAP_ALLOW,
            'admin' => CAP_ALLOW
        )
    ),

像这样的,我如何使这个块按代码为学生不可见。

编辑

根据Davosmith的答案。

我把get_content函数放进去了

代码语言:javascript
复制
if (!has_capability('blocks/blockname:view')) {
        return null;
        }

blocks/blockname/block_blockname.php

在我的blocks/blockname/db/access.php中包含:

代码语言:javascript
复制
'blocks/blockname:view' => array(
        'captype' => 'read',
        'contextlevel' => CONTEXT_BLOCK,
        'legacy' => array(
            //'guest' => CAP_ALLOW,
            //'student' => CAP_ALLOW,
            'teacher' => CAP_ALLOW,
           // 'editingteacher' => CAP_ALLOW,
            'manager' => CAP_ALLOW
        )
    ),

但是它会导致错误页面

检测到编码错误,必须由程序员修复: PHP可捕获致命错误

EN

回答 1

Stack Overflow用户

发布于 2015-09-18 06:08:58

对于任何块,如果get_contents返回null (编辑为off),则不会显示该块。

因此,将以下内容放在块的get_content函数中(但是提供了在db/access.php.php中定义的真正功能):

代码语言:javascript
复制
if (!has_capability('block/myblock:somecapability', $this->context)) {
    return null;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32644417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档