如何更改显示块的页面上的默认区域?

时间:2014-07-12 11:09:05

标签: php layout themes moodle renderer

我想在 Moodle 扩展主题,并希望更改显示问题(在测验中)的位置(在页面上) 。

我已经看到了我想要扩展的主题的结构。首先,我认为我必须为包含问题的块更改default region(来自$side-pre$side-post等区域),用于布局选项(例如front-pagestandardcourse等...... list of all options此处)代表测验页面。

  1. 但我找不到代表页面的布局选项 显示测验中的问题。 有人可以建议 我从链接表中选择哪个布局选项,在哪里 我可以简单地更改显示问题的区域 (例如,如果问题显示在$side-pre区域, 我想更改它,使其显示在$side-post中 区)

  2. 或者是错误的方法吗?我必须覆盖 {em>问题插件的<{1}} ? 如果是这样,我怎么知道哪个 渲染器的一部分控制问题的默认区域 将显示块?

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;
    }
}