将新类别和自定义页面添加到“站点管理”菜单

时间:2017-06-26 02:34:15

标签: moodle

我正在尝试将新功能添加到moodle的网站管理菜单中,作为我正在处理的项目的一部分。现在我们的客户只需要将OnePay网关集成到moodle中。但在未来,他们可能还需要整合其他支付网关(如PayPal)。因此,我需要为网站管理员创建一个类别,以输入不同类型的付款。新类别应该位于"高级功能"菜单(如下面的截图中所示)

Where to add new category

Example for onepay integration

使用"设置"页面是网站管理员输入所有必要的支付信息(包括客户的卡号,访问代码等)的页面。现在我正在使用我的两个测试页进行国内和国际支付测试。

这是我在/lang/en/admin.php文件中的代码:

$string['payment'] = 'Payment';
$string['onepay'] = 'OnePay';
$string['test_onepay_domestic'] = 'Test Domestic Payment using OnePay';
$string['test_onepay_international'] = 'Test International Payment using OnePay';

在admin_custom目录中,我创建了一个类似于/ payment / onepay / test /的路径,并将2个测试页面添加到其中。在文件夹/ p​​ayment /中,我添加了一个名为menu.php的文件。这是我的代码。

<?php
$ADMIN->add('advancedfeatures', new admin_category('payment', get_string('payment', 'admin')));
    $ADMIN->add('payment', new admin_category('payment', get_string('onepay', 'admin')));
    //$domestic = new admin_settingpage('onepay', new lang_string('test_onepay_domestic', 'admin'), new moodle_url("/admin_custom/payment/onepay/test/domestic/index.php"));
    //$international = new admin_settingpage('onepay', new lang_string('test_onepay_international', 'admin'), new moodle_url("/admin_custom/payment/onepay/test/international/index.php"));

$domestic = new admin_externalpage('test_onepay_domestic', get_string('test_onepay_domestic'), "$CFG->wwwroot/admin_custom/payment/onepay/test/domestic/index.php");
$international = new admin_externalpage('test_onepay_international', get_string('test_onepay_international'), "$CFG->wwwroot/admin_custom/payment/onepay/test/international/index.php");

$ADMIN->add('onepay', $domestic);
$ADMIN->add('onepay', $international);

我试图在两个文件中包含文件menu.php

  • /admin/settings/top.php
  • /admin/settings/server.php

但这些都不起作用。任何人都可以告诉我,我该怎么做才能使这个工作?非常感谢你。我真的很感激。

1 个答案:

答案 0 :(得分:0)

Moodle没有任何类型的称为“付款”的插件类型,因此通过创建一个以'/ payment'开头的层次结构,您已经与Moodle的工作方式不一致(如需要编辑核心文件所示)为了添加语言字符串和菜单项。)

我建议您通过创建admin toollocal plugin重新开始。这两种类型都可以有自己的语言字符串,并且可以在站点管理菜单中添加条目(查看任何标准管理工具插件中的settings.php,或者对于本地插件,另外一个选项是创建一个{ {3}}功能)。如果您想支持多种付款方式,那么您的插件可以为每种付款方式定义新的local_MYPLUGIN_extend_settings_navigation()