0
我使用Phil Sturgeon的模塊化擴展HMVC和模板庫。 如何在模塊的控制器中使用$ this-> template。我想用append_metadata()方法在html佈局的頭部加載一些模塊的javascript文件。在模塊控制器中使用append_metadata()方法
在執行順序的例子:
控制器/家/ home.php - 主控制器
class Home extends MX_Controller {
function index()
{
$this->template->build('login');
}
}
視圖\佈局\ 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()方法存在。
取代它不行,法append_js()在庫中不存在。 append_metadata()在其他文件中工作,但這裏的問題是範圍 - $ this->模板在此上下文中不可見。 – 2012-08-10 15:45:54