【问题标题】:How to change the default region on the page where the block is displayed?如何更改显示块的页面上的默认区域?
【发布时间】:2014-09-02 22:32:38
【问题描述】:

我想在 Moodle扩展一个主题,并且想更改问题(在测验中)的显示位置(在页面上) .

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

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

  2. 或者是错误的方法?我是否必须覆盖 问题插件renderer如果是这样,我怎样才能知道是哪个 渲染器的一部分控制问题所在的默认区域 块将被显示?

【问题讨论】:

    标签: php layout themes moodle renderer


    【解决方案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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-10-18
      • 2013-11-26
      • 2011-03-18
      • 2022-01-11
      • 2017-07-11
      • 2021-11-21
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多