OpenCart模板输出空白原因及解决

时间:12-10-31 栏目:问题及解决 作者:admin 评论:0 点击: 11,439 次

有一段代码这样的:

 

//省略...

$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模板输出空白原因及解决

OpenCart模板输出空白原因及解决:等您坐沙发呢!

发表评论


------====== 本站公告 ======------
联系信息:
电话:19970108113(微信同号) QQ:3142401606
支付宝:https://me.alipay.com/lxq73061
相关插件程序等信息均会在站内发布,敬请关注。

读者排行