1 回答
TA贡献2051条经验 获得超10个赞
您需要创建一个功能,然后在显示页面之前需要该功能。
首先,看一下local/readme.txt- 这给出了本地插件所需文件的概述。
或者阅读https://docs.moodle.org/dev/Local_plugins上的文档
还可以查看现有的本地插件,以便了解它们是如何创建的 - https://moodle.org/plugins/?q=type:local
至少,你需要
local/webguides/db/access.php - this will have the capability
local/webguides/lang/en/local_webguides.php
local/webguides/version.php
加上你的索引文件
local/webguides/index.php
在db/access.php文件中有类似的东西
defined('MOODLE_INTERNAL') || die();
$capabilities = array(
'local/webguides:view' => array(
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
),
),
);
您可能还需要'riskbitmask' => RISK_XXX取决于您的代码中是否存在任何风险。如RISK_CONFIG,RISK_PERSONAL等
在lang/en/local_webguides.php有类似的东西
defined('MOODLE_INTERNAL') || die();
$string['pluginname'] = 'Webguides';
$string['webguides:view'] = 'Able to view webguids';
在version.php有类似的东西
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2020051901; // The current plugin version (Date: YYYYMMDDXX)
$plugin->requires = 2015051109; // Requires this Moodle version.
$plugin->component = 'local_webguides'; // Full name of the plugin (used for diagnostics).
替换2015051109为您正在使用的 Moodle 版本 - 这将位于version.php根文件夹中。
然后在你的index.php文件中使用它靠近顶部。
require_capability('local/webguides:view', context_system::instance());
因此只有具有该能力的用户才能访问该页面。
编辑:
settings.php您可以使用类似的方式添加链接
defined('MOODLE_INTERNAL') || die;
if ($hassiteconfig) {
$page = new admin_externalpage(
'local_webguides',
get_string('pluginname', 'local_webguides'),
new moodle_url('/local/webguides/index.php'),
'local/webguides:view'
);
$ADMIN->add('localplugins', $page);
}
然后在你的索引页广告这个
require_once($CFG->libdir.'/adminlib.php');
并删除require_login()并require_capability()替换为
admin_externalpage_setup('local_webguides');
- 1 回答
- 0 关注
- 97 浏览
添加回答
举报