Phil Sturgeon による Modular Extensions HMVC と Template ライブラリを使用しています。モジュールのコントローラーで $this->template を使用するにはどうすればよいですか。append_metadata() メソッドを使用して、いくつかのモジュールの JavaScript ファイルを HTML レイアウトの先頭にロードしたいと考えています。
実行順の例:
controllers/home/home.php - メインコントローラー
class Home extends MX_Controller {
function index()
{
$this->template->build('login');
}
}
views\layouts\default.php - デフォルトのレイアウト
<html>
<head>
<?php include "\..\partials\head.php"; ?>
</head>
<body>
//calling topbar module
<?php echo Modules::run('navigation_panels/TopBar/render'); ?>
<?php echo $template['body']; ?>
</body>
</html>
modules\navigation_panels\controllers\TopBar.php - トップバー モジュールのコントローラー
class TopBar extends MX_Controller {
public function __construct()
{
parent::__construct();
//want to manipulate the head but template property is not visible
$this->template
->prepend_metadata(generateJavaScriptIncludeTag('TOPBAR_JAVASCRIPT_LOCATION' . 'change_language.js'));
}
public function render()
{
$data['languages'] = $this->language->getOtherLanguageArray();
$this->load->view('TopBar_view', $data);
}
}
メソッド prepend_metadata() が存在するため、出力バッファリングの問題のようです。