gpt4 book ai didi

php - Moodle 模块 MYMODULE 没有定义标准能力

转载 作者:搜寻专家 更新时间:2023-10-31 20:43:38 27 4
gpt4 key购买 nike

我正在为 Moodle 开发一个模块。我已经实现了在类(class)中安装和实例化它。问题是,在启用“编辑模式”的情况下,我会收到以下消息:

The module mymodule does not define the standard capability mod/mymodule:addinstance

line 3451 of \course\lib.php: call to debugging()
line 1899 of \course\lib.php: call to course_allowed_module()
line 1767 of \course\lib.php: call to get_module_metadata()
line 682 of \course\format\renderer.php: call to print_section_add_menus()
line 49 of \course\format\weeks\format.php: call to format_section_renderer_base->print_multiple_section_page()
line 276 of \course\view.php: call to require()

/mod/mymodule/db/access.php 文件中,我有以下代码:

defined('MOODLE_INTERNAL') || die();

$capabilities = array(
'mod/mymodule:view' => array(
'captype' => 'read',
'contextlevel' => CONTEXT_MODULE,
'legacy' => array(
'guest' => CAP_ALLOW,
'student' => CAP_ALLOW,
'teacher' => CAP_ALLOW,
'editingteacher' => CAP_ALLOW,
'admin' => CAP_ALLOW
)
),

'mod/mymodule:submit' => array(
'riskbitmask' => RISK_SPAM,
'captype' => 'write',
'contextlevel' => CONTEXT_MODULE,
'legacy' => array(
'student' => CAP_ALLOW
)
),
);

我是 Moodle 模块开发的初学者。我已阅读以下文档:

但我还没有澄清任何事情。

编辑于 2013 年 4 月 28 日

我已将此代码添加到我的 access.php 文件($capabilities 数组):

'mod/mymodule:myaddinstance' => array(
'captype' => 'write',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
'user' => CAP_ALLOW
),

'clonepermissionsfrom' => 'moodle/my:manageblocks'
),

'mod/mymodule:addinstance' => array(
'riskbitmask' => RISK_SPAM | RISK_XSS,

'captype' => 'write',
'contextlevel' => CONTEXT_MODULE,
'archetypes' => array(
'editingteacher' => CAP_ALLOW,
'manager' => CAP_ALLOW
),

'clonepermissionsfrom' => 'moodle/site:manageblocks'
),

但它不起作用。

最佳答案

起初它似乎是一条奇怪的错误消息,因为它提到了 mod/mymodule:addinstance 但您的代码中没有它。但仔细观察,这似乎是问题所在 - moodle 希望您定义 addinstance 但您没有!

这显然是 2.4 之后的新行为:http://docs.moodle.org/dev/Blocks#db.2Faccess.php

解决方案似乎是将 addinstance(可能还有 myaddinstance,取决于您的设置和实现)添加到您的 $capabilities 数组。

关于php - Moodle 模块 MYMODULE 没有定义标准能力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16255206/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com