【问题标题】:Moodle - overriding module renderersMoodle - 覆盖模块渲染器
【发布时间】:2018-01-28 20:39:08
【问题描述】:

我认为我在做一些愚蠢的事情......我一直在关注关于覆盖渲染器的教程并且有一个谷歌但无法解决它。 (当我找到另一个 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;')))

要从中删除最后一个进度条和两行:

【问题讨论】:

    标签: php moodle renderer


    【解决方案1】:

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

    $THEME->rendererfactory = 'theme_THEMENAME_renderer_factory';
    

    它需要反映您主题的 frankenstyle 名称

    【讨论】:

      猜你喜欢
      • 2016-05-13
      • 2017-08-28
      • 2014-01-31
      • 2012-01-01
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      相关资源
      最近更新 更多