2017-05-19 17 views
0

私のテーマ(blocks.mustacheなど)でコア・テンプレートを拡張すると、その中にテーマ・データをどのように出力できますか?Moodleコア・マスタ・テンプレートの拡張/オーバーライド

私はテンプレートをtheme_name/templates/core/blocks.mustacheに追加しました。サイト名で単純な変数を追加しようとしましたが、データは出力されませんでした。

レンダラーを拡張せずにこれを行う方法はありますか?

答えて

1

編集:レンダラーを拡張しないという部分は見ませんでした。私はレンダラーを含むソリューションを探している他のユーザーのために答えを残しました。

core_rendererを拡張するカスタムコアレンダラーを作成する必要があります。関数ブロック(block_contents $ bc、$ region)を再作成する(core_rendererクラスからコピーする)

$データに変数を代入することができ、それがテンプレートで利用可能になります。

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); 
    } 
} 
関連する問題