【发布时间】:2020-05-20 20:08:57
【问题描述】:
我是 moodle 插件开发的新手,我正在尝试创建一个插件,向管理员显示一个页面,我可以在其中添加我的 php 代码。
简而言之,我希望插件执行的操作已经在我上传到 Moodle 根目录的标准 php 文件中实现。从这里您可以调用文件,例如yourdomain.co.uk/moodlelocation/myfile.php 它将按预期运行。
这样做的问题是它不安全,因为任何人都可以加载 myfile.php 并反过来在页面上运行脚本。这也意味着使用此脚本的任何其他人(完成后将免费赠送)需要 FTP 到他们的主机并将两个 php 文件上传到他们的 Moodle 安装。
因此,我认为一个插件(一个非常非常基本的插件)可能是最好的解决方案。然后他们可以通过“站点管理”在管理员中加载页面。例如站点管理 > 开发 > MyPlugin。我假设我还可以将插件的主页限制为仅限管理员 (??)。
所以回顾一下,我可以创建一个 php 页面,让我的脚本全都摇摆不定,但我需要把它做成一个插件。
我做了一些阅读,我认为“本地”插件是最简单的方法(??)。
我已经设法在 local/webguides/inex.php 中使用以下内容启动并运行本地插件:
<?php
// Standard config file and local library.
require_once(__DIR__ . '/../../config.php');
// Setting up the page.
$PAGE->set_context(context_system::instance());
$PAGE->set_pagelayout('standard');
$PAGE->set_title("webguides");
$PAGE->set_heading("webguides");
$PAGE->set_url(new moodle_url('/local/webguides/index.php'));
// Ouput the page header.
echo $OUTPUT->header();
echo 'MY php CODE here etc';
?>
这很好用,但有两个问题:
- 任何人都可以通过http://domain/local/webguides/index.php访问它
- 站点管理中没有指向它的链接(因此用户需要输入 URL)。
谁能阐明我将如何实现上述两个步骤?
提前致谢
附言理想情况下,我希望将插件保留在尽可能少的文件中,因此如果可以将所需的代码添加到 local/webguides/index.php 文件中,那将是首选。
【问题讨论】: