我正在爲Moodle開發一個模塊。我已經實現了在一門課程中安裝並實例化它。問題是,在啓用「編輯模式」,Moodle的我出以下信息:Moodle模塊MYMODULE沒有定義標準功能
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的。我已閱讀下列文件:
但我還沒有澄清什麼。
EDITED 2013年4月28日
我加入這個代碼,我access.php文件($功能陣列):
'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'
),
但它沒有工作。
錯誤消息中沒有提到「access.php」。也許問題出在'view.php'中? – ASGM 2013-04-27 18:02:12
我不認爲問題出在文件view.php中,因爲我在課程活動列表中獲取此消息,而不是在mymodule視圖中。當我在mymodule視圖(view.php)中輸入時,不要顯示任何問題。 – Lobo 2013-04-27 18:30:26
你使用的是Moodle 2.4或以上版本嗎? – ASGM 2013-04-28 08:53:24