我是Joomla和VirtueMart的新手。我被困在“相关产品”列表部分。由于可以从VirtueMart管理面板手动添加相关产品,因此我希望在前端显示时为这些产品提供一些过滤器或条件(就像产品售罄时不应显示产品等)。请有人建议我出路或告诉我满足我需要的文件。非常感谢提前
答案 0 :(得分:0)
检查VM版本2.6.14的文件相关产品的视图文件位于:components/com_virtuemart/views/productdetails/tmpl/default_relatedproducts.php
。
显示代码为:
if(!empty($field->display)) {
?><div class="product-field product-field-type-<?php echo $field->field_type ?>">
<span class="product-field-display"><?php echo $field->display ?></span>
</div>
<?php }
}
检查产品库存需要做的调整是:
$productModel = VmModel::getModel('Product');
$this_product = $productModel->getProduct($field->customfield_value, true, false);
if(!empty($field->display) && !empty($this_product->product_in_stock)) {
?><div class="product-field product-field-type-<?php echo $field->field_type ?>">
<span class="product-field-display"><?php echo $field->display ?></span>
</div>
<?php }
}
请记住创建模板覆盖以确保在将来的更新中不会覆盖它。您应将修改后的文件放在:templates/*your_template/html/com_virtuemart/productdetails/default_relatedproducts.php
。
关于Virtuemart 3 相关产品合并在customfields模板中,可位于:components/com_virtuemart/sublayouts/customfields.php
下。
所以这部分应该调整:
if (!empty($field->display)){
?><div class="product-field-display"><?php echo $field->display ?></div><?php
}
要:
if($field->field_type == "R"){
$productModel = VmModel::getModel('Product');
$this_product = $productModel->getProduct($field->customfield_value, true, false);
if (!empty($field->display) && !empty($this_product->product_in_stock)){
?><div class="product-field-display"><?php echo $field->display ?></div><?php
}
} elseif (!empty($field->display)){
?><div class="product-field-display"><?php echo $field->display ?></div><?php
}
在这种情况下,覆盖文件必须放在:templates/*your_template/html/com_virtuemart/sublayouts/customfields.php
。