【发布时间】:2016-05-13 04:23:26
【问题描述】:
我有一个运行 Moodle 2.9.3+ 的站点,我试图自定义一个现有插件的渲染器,所以我发现了这个:
我在我的主题的 core_renderer.php 中添加了以下内容
include_once($CFG->dirroot . "/course/format/topcoll/renderer.php");
但是当我尝试这样做时
class topcoll_local_renderer extends format_topcoll_renderer {
protected function section_header($section, $course, $onsectionpage, $sectionreturn = null) {
...
}
}
它运行,但它没有加载修改后的函数。我还需要做其他事情吗?当我将代码直接更改到插件中时,修改后的功能运行没有问题,但不是这样。我将不胜感激任何可能的提示。
谢谢
【问题讨论】:
-
由于无法查看所有代码,因此很难就此提供任何建议 - 我建议您可能扩展了错误的类或访问了输入错误的成员变量或其他东西。
-
在相关问题中...我可以覆盖 Moodle 的核心功能吗?同样,我更改了核心功能并且它在那里工作,但我希望在我的主题上定制它,这样我可以根据我选择的主题更好地控制。谢谢:)
-
@davosmith 感谢您的帮助!
-
@theruss 感谢您的帮助!
-
如果核心函数在渲染器中,您可以覆盖它。如果它是 Moodle 中其他地方的随机函数,那么您将需要寻找已经在该函数中实现的某种钩子(或者干脆放弃并编辑核心文件)。