2017-03-05 115 views
1

首先,我应该说我无法登录到OC支持论坛莫名其妙,希望在这里得到解决方案。OpenCart获得产品查看

试图表明产品Viewes产品页面,我用Google搜索,发现了如何才能从OC数据库中获取其他数据并显示它的产品页面,所以这里是:

控制器 - product.php:

$data['viewed'] = $product_info['viewed']; 

模板 - product.php;

<?php echo $viewed; ?> 

,但得到的错误:

Undefined variable: viewed in

/homepages/5/xxxxxx/htdocs/xxxxx/catalog/view/theme/xxxxx/template/product/product.tpl

根据这一Post我做了正确的方式,但我不知道为什么得到了这个错误?任何想法?

这里是模板代码部分:

<h1><?php echo $heading_title; ?></h1> 
<?php echo $viewed; ?> 
<ul class="list-unstyled product-info"> 
<li><b><?php echo $text_stock; ?></b> <span class="Stock"><?php echo $stock; ?></span></li> 
<li><b><?php echo $text_model; ?></b> <span class="Model"><?php echo $model; ?></span></li> 
<?php if ($manufacturer) { ?> 
<li><b><?php echo $text_manufacturer; ?></b> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li> 
<?php } ?> 
<li><b><?php echo $text_category; ?></b> <span> 
<?php if($categories): ?> 
<?php foreach($categories as $category): ?> 
<a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a><span class="Comma"> ، </span> 
<?php endforeach; ?> 
<?php endif; ?> 
</span></li> 
<?php if ($reward) { ?> 
<li><b><?php echo $text_reward; ?></b> <span class="reward-points"><i class="fa fa-plus" aria-hidden="true"></i> <?php echo $reward; ?></span></li> 
<?php } ?> 
</ul> 
+0

这将是正常的做法。我不明白为什么在模板中回显$ thumb,但是询问控制器没有看到“已查看”键的错误。您是否已将$数据传递给模板?输出模板后,你可能会声明$ data ['viewing']吗?你有没有尝试使用echo $查看;? – Yolo

+0

对不起,anwer编辑,我删除所有的代码和写在这里的例子,这是我的错误,是的,我试图回声查看,而不是拇指。 @Yolo – Pedram

+0

以及似乎一切正确。你可以发布你输出模板的部分吗? – Yolo

回答

2

如果您收到该错误的唯一可能的解释是,变量没有定义,这在逻辑上使我的结论是,你编辑的文件不是调用模板的那个控制器。如果您使用的任何OCMOD在缓存中具有未改变的product.php版本,就会发生这种情况,因为OCMOD不知道在刷新之前所做的更改。你有没有安装任何OCMOD?您是否尝试过刷新OCMOD缓存?

+0

是的,我有很多MOD,但没有任何更改'product.php',没有我没有尝试在这些更改后清除缓存。我会尽力。我有点确定我编辑了正确的控制器,因为像'model'这样的其他变量获得的数据与我所做的相同。我不知道......但是如果你根据答案阅读评论,卢卡斯也是这样做的,并且对他工作得很好,但对我来说并不合适,两人都是OC的同一版本。我将安装新的OC并对其进行测试,并找出问题所在。 – Pedram

+2

你为什么不清除ocmod缓存并让我知道会发生什么。这是您的更改没有出现的原因中的9次。你可以做的另一件简单的事情就是在控制器中添加'die;'并查看它是否死亡。这是知道你的代码是否得到执行的一种可靠的方法。 – billynoah

+0

谢谢billynoah,问题解决了,我清除了OCMOD缓存,它工作正常..你做了我的一天。 – Pedram