[英]How to display manufacturer name in category.tpl?
我试图在除产品以外的其他视图中显示一些产品信息,但出现问题。
我试图在我的类别控制器文件中添加以下代码:
$this->data['manufacturer'] = $product['manufacturer'];
并添加内部产品数组:
'manufacturer' => $result['manufacturer'],
并在我的Category.tpl视图文件中:
<?php if ($manufacturer) { ?>
<span><?php echo $manufacturer; ?></span>
<?php } ?>
我没有任何错误,但标签为空。 任何帮助将不胜感激
谢谢。
正如您正确指出的那样,您将需要将此内容以及对category.tpl
文件可用的所有其他信息添加到$this->data['products']
数组中。 $this->data['manufacturer'] ...
是不需要的,什么也不会显示。 无需在盘面上给出答案,而是查看控制器中的rating
并查看文件以查看其分配和使用方式,并尝试将其复制
在catalog/controller/product/category.php
找到以下行:
$this->data['products'][] = array(
(对于OC 1.5.6,应为238行)->在此,将处理产品并将其分配给模板变量。 在这个数组中,在例如rating之后添加一个新索引:
'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文件进行这些编辑,那就更好了……
请享用!
如果我不迟到。 只需在产品数组中发送制造商数组
'manufacturer' => $result['manufacturer']
在category.tpl
文件中循环内回显
<div class="manufacturer"><?php if($product['manufacturer']){
echo ($product['manufacturer']);
}?>
</div>
它仍然没有出现在前面,但是您可以通过查看源代码来查看数据。
因为Opencart使用脚本函数function Display()
来显示产品(视图和列表)
(请参阅content_bottom div之后的脚本标记内的代码)
它覆盖了显示类(product-list和product-grid),因此在脚本中添加它
var manufacturer= $(element).find('.manufacturer').html();
if (manufacturer != null) {
html += '<div class="rating">' + manufacturer + '</div>';
}
将代码保持在if和else条件中,以便制造商同时出现在“列表”和“网格”视图中。 希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.