Moodle - 重写模块渲染器

时间:2018-01-23 13:03:21

标签: php moodle renderer

我认为我正在做一些愚蠢的事情......我一直在关注覆盖渲染器的教程并且有一个谷歌但无法解决它。 (当我发现另一个stackoverflow question时我很有希望,但它没有帮助)

我正在尝试覆盖模块(studentquiz)的渲染器,但它似乎没有工作。

以下是我到目前为止所做的...我只是复制并粘贴了一个函数,然后从中删除了几行 - 期望在清除缓存后看到更改,但什么也没发生。尝试了各种设置,但没有任何工作。

非常感谢任何帮助!

非常感谢

奥利

/theme/THEMENAME/config.php有一行:

$THEME->rendererfactory = 'theme_overridden_renderer_factory';

/theme/THEMENAME/renderers.php如下:

<?php

defined('MOODLE_INTERNAL') || die;

include_once($CFG->dirroot . "/mod/studentquiz/renderer.php");

class theme_THEMENAME_mod_studentquiz_renderer extends mod_studentquiz_renderer {

   // place your overridden methods (functions) here.

   public function render_stat_block($report) {

      ...

   }

}

我正在从函数中删除以下行:

    . html_writer::div($this->render_progress_bar($info2), '', array('style' => 'width:inherit'))
    . html_writer::div(get_string('statistic_block_approvals', 'studentquiz')
        .html_writer::span('<b>' .$userstats->questions_approved .'</b>', '',
            array('style' => 'float: right;color:#28A745;')))
    . html_writer::div(get_string('statistic_block_created', 'studentquiz')
        .html_writer::span('<b>' .$userstats->questions_created .'</b>', '',
            array('style' => 'float: right;')))

要删除最后一个进度条和两行: enter image description here

1 个答案:

答案 0 :(得分:0)

将config.php中的渲染器工厂更改为:

$THEME->rendererfactory = 'theme_THEMENAME_renderer_factory';

需要反映主题的frankenstyle名称