相关产品列表:Joomla与VirtueMart 2.6.14

时间:2015-06-06 20:10:48

标签: joomla joomla2.5 virtuemart

我是Joomla和VirtueMart的新手。我被困在“相关产品”列表部分。由于可以从VirtueMart管理面板手动添加相关产品,因此我希望在前端显示时为这些产品提供一些过滤器或条件(就像产品售罄时不应显示产品等)。请有人建议我出路或告诉我满足我需要的文件。非常感谢提前

1 个答案:

答案 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