2017-05-19 75 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); 
    } 
}