我想在 Moodle 中扩展主题,并希望更改显示问题(在测验中)的位置(在页面上) 。
我已经看到了我想要扩展的主题的结构。首先,我认为我必须为包含问题的块更改default region
(来自$side-pre
和$side-post
等区域),用于布局选项(例如front-page
,standard
,course
等...... list of all options此处)代表测验页面。
但我找不到代表页面的布局选项
显示测验中的问题。 有人可以建议
我从链接表中选择哪个布局选项,在哪里
我可以简单地更改显示问题的区域
(例如,如果问题显示在$side-pre
区域,
我想更改它,使其显示在$side-post
中
区)
或者是错误的方法吗?我必须覆盖 {em>问题插件的<{1}} ? 如果是这样,我怎么知道哪个 渲染器的一部分控制问题的默认区域 将显示块?
答案 0 :(得分:1)
我会使用第二个选项 - http://docs.moodle.org/dev/Overriding_a_renderer#Finding_renderers_to_override
总结
创建一个包含2个文件的主题目录
theme/overridetest/config.php
theme/overridetest/renderers.php
在config.php中
$THEME->name = 'overridetest';
$THEME->parents = array('standard', 'base');
$THEME->rendererfactory = 'theme_overridden_renderer_factory';
然后在renderers.php中有这样的东西,我不确定要覆盖哪个函数,所以选择了view_page为例
class theme_overridetest_core_renderer extends core_renderer {
}
include_once($CFG->dirroot . '/mod/quiz/renderer.php');
class theme_overridetest_mod_quiz_renderer extends mod_quiz_renderer {
public function view_page($course, $quiz, $cm, $context, $viewobj) {
$output = '';
// Change the output here.
return $output;
}
}