我将特色模块设置为显示8个产品。我在特色模块中加载了16个产品。当我禁用网页上显示的某个产品时,它不会将其替换为已启用的产品。所以网页上有一个空白点。
我不知道如何解决这个问题。我在第24行的目录/ controller / module / featured.php中查找:
foreach ($products as $product_id) {
$product_info = $this->model_catalog_product->getProduct($product_id);
我正在考虑使用if else语句来包装这个foreach:
If ($product is disabled) {
skip to next product
}
else {
foreach ($products as $product_id) {
$product_info = $this->model_catalog_product->getProduct($product_id);
...
...
...
}
我想尝试这样的事情:
if ($product_id['status'] == 0) {
no idea here
}
else{
foreach ($products as $product_id) {
$product_info = $this->model_catalog_product->getProduct($product_id);
...
...
...
}
但同样,不确定if ($product_id['status'] == 0)
是否正确,甚至不知道if语句中的产品是如何处理的。
感谢。
答案 0 :(得分:3)
我明白你在说什么。这是对编写本单元的人的疏忽。
您需要在设置限制之前过滤已停用的产品,即:在catalog/controller/module/featured.php
中找到此行:
$products = array_slice($products, 0, (int)$setting['limit']);
之前,添加:
// filter out disabled products befor setting limit
foreach ($products as $k => $v){
$p_info = $this->model_catalog_product->getProduct($v);
if ($p_info['status']==0) {
unset ($products[$k]);
}
}
这就是全部。 顺便发现这个缺点的好工作。