2017-05-19 68 views
0

如果我在我的主题(例如blocks.mustache)中扩展核心模板,我怎样才能在其中输出主题数据?Moodle扩展/覆盖核心小胡子模板

我已经将模板添加到:theme_name/templates/core/blocks.mustache,我尝试添加一个带站点名称的简单变量,但它不输出任何数据。

有没有办法做到这一点,而不扩展渲染?

回答

1

编辑:我没有看到关于不扩展渲染器的部分。我已经为寻找涉及渲染器的解决方案的其他用户留下了答案。

您将需要创建一个扩展core_renderer的自定义核心渲染器。然后重新创建(从core_renderer类复制)功能块(block_contents $ bc,$ region)

然后,您可以将一个变量分配给$ data,它将在模板中可用。

class theme_yourthemename_core_renderer extends core_renderer { 
... 
    public function block(block_contents $bc, $region) { 
     $this->init_block_hider_js($bc); 
     $data = \core\output\block::from_block_contents($bc, $this); 

     // Your code here 
     $data->yourvar = 'Some val' 

     return $this->render_from_template('core/block', $data); 
    } 
}