年/品牌/型号产品搜索Joomla / VirtueMart?

时间:2010-09-30 23:55:36

标签: joomla filter virtuemart

我正在使用Joomla和VirtueMart构建AutoParts商店。我想知道最终用户是否有办法按年份,品牌,汽车模型进行搜索,然后列出相应的汽车零件。

我意识到这是非常复杂的,并且不希望通过简单的快速修复来解决这个问题,但是任何建议或正确方向的推动都会受到赞赏。

感谢您的时间。

2 个答案:

答案 0 :(得分:1)

我讨厌做一个湿毯子,但事情并非那么简单。绝大多数汽车零件与它可能适合的汽车有一对多的关系。例如,福特在30多年的时间里在数十种型号上使用相同的机油滤清器,该滤清器也适用于一系列克莱斯勒应用。首先想到你需要做的是组合一个好的年/制造/模型表,列出你将销售零件的所有汽车。这实际上比它听起来要困难得多,因为你还必须考虑引擎,在某些情况下取决于零件,装饰包和其他重要选项。

好消息是您只需要向VM产品添加一个字段。该字段应该是该部件适合的每年/品牌/型号的所有ID的列表。

做一个好的年份/制作/模型实现是一个非常高的命令,祝你好运!

答案 1 :(得分:0)

这就是我要做的事情:

  • 将这些参数添加到“添加产品”表单下的virtuemart后端。您必须向数据库添加新列才能支持这些列。事实上,这个修复很容易。

您可以通过以下方式执行此操作:

将表单框添加到admin(administrator \ components \ com_virtuemart \ html \ product.product_form.php)中的产品表单中:

<tr class="row0"> 
  <td width="21%"><div style="text-align:right;font-weight:bold;">
    <div>Year:</div>
  </td>
  <td width="79%"> 
    <input type="text" class="inputbox"  name="year" value="<?php $db->sp("year"); ?>" size="2" maxlength="2" />
  </td>
</tr>

然后,您需要确保将这些值插入数据库中。在第273行的文件(administrator \ components \ com_virtuemart \ classes \ ps_product.php)中,您会发现类似这样的内容 - 添加不像其余部分那样缩进的行:

    $fields = array ( 'vendor_id' => $vendor_id,
                    'product_parent_id' => vmRequest::getInt('product_parent_id'),
                    'product_sku' => vmGet($d,'product_sku'),
                    'product_name' => vmGet($d,'product_name'),
        'year' => vmGet($d,'year'),
                    'product_desc' => vmRequest::getVar('product_desc', '', 'default', '', VMREQUEST_ALLOWHTML),
                    'product_s_desc' => vmRequest::getVar('product_s_desc', '', 'default', '', VMREQUEST_ALLOWHTML),
                    'product_thumb_image' => vmGet($d,'product_thumb_image'),
                    'product_full_image' => vmGet($d,'product_full_image'),
  • 然后您需要做的是在浏览页面中添加一个表单并分别在ps_product.php和shop.browse.php中创建函数,分别在admin / classes和admin / html中创建函数,以限制您显示的产品根据搜索选项浏览页面。我不会对此进行代码处理,因为它非常冗长,我个人喜欢为这类工作获得报酬。您也可以自定义Virtuemart搜索模块,这可能是一个更容易的选择,但我从来没有使用过搜索模块,所以我不知道。探索您的选择。祝你好运!