我正在研究一个将Smarty用于模板的系统(ActiveCollab)。我想输出一些JSON,所以我需要让它自己输出......没有其他的东西。但是,如果我没有为相应的操作提供Smarty模板文件,我会得到一个错误输出,它会破坏JSON。
有谁知道如何根据具体情况禁用Smarty输出?在伪代码中,类似
$this->smarty->disable();
如果失败了,是否有人知道如何让ActiveCollab不需要输出模板文件?或者甚至知道在ActiveCollab中输出JSON以供消费的更好方法吗?
我的主要目标是输出json供ActiveCollab中的jqgrid使用,以防万一。
感谢。
编辑:
事实证明,就像在所需输出后添加die();
一样简单。
function bar(){
echo $myoutput;
die();
}
就是这样。为什么我总是在寻找“硬”答案时解决方案如此基本我永远不会知道...... 叹息。
答案 0 :(得分:1)
activeCollab才会自动呈现页面内容的页面布局。此退出可能是:
$this->serveData()
download_file()
和download_content()
功能在您的情况下,您可以使用控制器的serveData()
方法来提供JSON:
function action() {
$my_json_data = array('something');
$this->serveData($my_json_data, null, FORMAT_JSON);
}
此函数将设置正确的HTTP标头并对您要发送的值进行编码。