2013-12-10 32 views
0

我試圖在其他視圖中顯示一些產品信息而不是產品,但我遇到了問題。如何在category.tpl中顯示製造商名稱?

我想在我的類別控制器文件添加以下代碼:

$this->data['manufacturer'] = $product['manufacturer']; 

,並添加產品陣列裏:

'manufacturer' => $result['manufacturer'], 

,並在我的Category.tpl查看文件:

<?php if ($manufacturer) { ?> 
    <span><?php echo $manufacturer; ?></span> 
<?php } ?> 

我沒有錯誤,但標籤是空的。 任何幫助將不勝感激

謝謝。

+0

你想達到什麼目的?您是否想要顯示類別中列出的每種產品的製造商? – shadyyx

+0

hi @shadyyx,是的。我只想顯示製造商名稱以及分類列表中每個產品已存在的信息。 – Carol

回答

0

您需要將其添加到$this->data['products']陣列中,以及您正確指出的所有其他可用於category.tpl文件的信息。 $this->data['manufacturer'] ...是不需要的,將不會顯示任何內容。而不是給你一盤的答案,看看在控制器和視圖文件rating值,看看他們是如何分配和使用,並嘗試複製該

+0

對不起,但我不明白。 – Carol

0

catalog/controller/product/category.php找到這一行:

$this->data['products'][] = array(

(對於OC 1.5.6,應該是第238行) - >這裏產品將被處理並分配給模板變量。在這個數組中,添加一個新的索引,例如評級

'rating' => $result['rating'], 
'manufacturer' => $result['manufacturer'], // <= YOUR NEW LINE 

因爲這個控制器使用方法ModelCatalogProduct::getProducts()這種方法不填充製造商的信息,您需要同時修改catalog/model/catalog/product.php並添加

m.name as manufacturer 

到查詢的SELECT部分(如果不是SELECT子句的最後一項,則加,)然後加

$sql .= "LEFT JOIN " . DB_PREFIX . "manufacturer m ON p.manufacturer_id = m.manufacturer_id"; 

此行之後:

$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"; 
在您的類別產品模板

現在上市您可以使用

<?php echo $product['manufacturer']; ?> 

foreach($products as $product)循環中。更多的編輯,而不是直截了當。更好,如果你只是可以通過vQmod文件做這些編輯...

享受!

0

如果我不遲到。只是

'manufacturer' => $result['manufacturer'] 

發送產品陣列製造商的陣列中category.tpl文件回聲內環路

<div class="manufacturer"><?php if($product['manufacturer']){ 
      echo ($product['manufacturer']); 
     }?> 
</div> 

它仍然沒有出現在面前,你可以通過查看源代碼中看到的數據。

因爲Opencart的使用腳本功能function Display()顯示產品(查看&列表)

(見腳本標籤中的代碼,content_bottom DIV後)

它覆蓋在顯示類(產品清單和產品 - 格) 所以在腳本

var manufacturer= $(element).find('.manufacturer').html(); 

if (manufacturer != null) { 
    html += '<div class="rating">' + manufacturer + '</div>'; 
} 

添加此保持代碼,如果和其他條件都在使製造商就會出現在列表和網格視圖。 希望這可以幫助

相關問題