2017-03-05 62 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