我使用Phil Sturgeon的Modular Extensions HMVC和模板库。 如何在模块的控制器中使用$ this->模板。我想用append_metadata()方法在html布局的头部加载一些模块的javascript文件。
执行顺序的一个例子:
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- topbar模块的控制器
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()方法存在。
答案 0 :(得分:0)
如果我没错,那么在PyroCMS中也使用的库的最后一个版本中,append_metadata方法已被appens_js取代。
要使用它,您需要:
$this->template
->appens_js('your file_name here')
->build('your view here');
如果append_js不起作用,只需将其替换为append_metadata