时间:12-10-31 栏目:问题及解决 作者:admin 评论:0 点击: 11,837 次
有一段代码这样的:
//省略...
$this->data['payment_method'] = $data['payment_method'];
$this->data['comment'] = $data['comment'];
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/checkout/confirm.tpl')) {
$this->template = $this->config->get('config_template') . '/template/checkout/confirm.tpl';
} else {
$this->template = 'default/template/checkout/confirm.tpl';
}
$json['output'] = $this->render();
render返回的结果是空的,confirm.tpl文件是有内容的。
通过分析render()方法可以知道:
protected function render() {
foreach ($this->children as $child) {
$this->data[basename($child)] = $this->getChild($child);
}
if (file_exists(DIR_TEMPLATE . $this->template)) {
extract($this->data);
ob_start();
require(DIR_TEMPLATE . $this->template);
$this->output = ob_get_contents();
ob_end_clean();
return $this->output;
} else {
exit('Error: Could not load template ' . DIR_TEMPLATE . $this->template . '!');
}
}
该方法是通过:ob_start(), ob_get_contents();的方式取模板显示内容
把 $this->output输出来看到有内容,而return时却为空。百思不得其解,最后细心一下发现,输入模板中的产品名称有乱码。
乱码产生的原因是数据变量给出时使用了substr函数截断,并且网站是一个俄语站,所以截取出来不完整字符乱码问题。
之后,使用mb_substr函数处理下就好了。
声明: 本文由( admin )原创编译,转载请保留链接: OpenCart模板输出空白原因及解决
------====== 本站公告 ======------
联系信息:
电话:19970108113(微信同号) QQ:3142401606
支付宝:https://me.alipay.com/lxq73061
相关插件程序等信息均会在站内发布,敬请关注。