Opencart 为名称和型号启用自动完成
Opencart to enable autocomplete for name AND model
我正在使用 OC 2.2.0。在前端,我需要在名称和型号上自动完成。现在,只有名称自动完成。在catalog/model/catalog/product.php我改了
$sql .= " OR LCASE(p.model) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
至
$sql .= " OR LCASE(p.model) LIKE '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";
但仍然无法在模型上自动完成。相反,我总是必须输入整个模型名称,但它必须是自动完成的。有什么建议吗?
经过多天的研究和查看代码,我设法理解并解决了我的问题。我在看所有错误的地方。唯一需要更改的文件是 getdata.php
,它位于 OC 的根目录中。因此,默认自动完成仅适用于产品名称。它在这个文件中是这样定义的:
$sql = "SELECT pd.name FROM " . DB_PREFIX . "product p," . DB_PREFIX . "product_description pd WHERE p.status = 1 AND p.product_id = pd.product_id AND language_id = '".$id."' AND UPPER(pd.name) like UPPER('%$q%') GROUP BY pd.product_id ORDER BY pd.name ASC";
$res = mysql_query($sql);
if(mysql_num_rows($res)>0){
while($ro = mysql_fetch_assoc($res)){
$name = str_replace( array( '\'', '"', ',' , ';', '<', '>','"','&'), ' ', $ro['name']);
//$str[]= $name."\n";
echo $name."\n";
}
}
现在,您需要做的就是在 oc_product table 您需要自动完成的 oc_product table 中添加模型或任何数据库字段的确切查询。意思是,例如,复制名称查询并将 pd.name
替换为 p.model
,并将 ['name']
替换为 ['model']
。瞧!我真的希望这对某人有所帮助,因为直到今天我自己才意识到这一点。
我正在使用 OC 2.2.0。在前端,我需要在名称和型号上自动完成。现在,只有名称自动完成。在catalog/model/catalog/product.php我改了
$sql .= " OR LCASE(p.model) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
至
$sql .= " OR LCASE(p.model) LIKE '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";
但仍然无法在模型上自动完成。相反,我总是必须输入整个模型名称,但它必须是自动完成的。有什么建议吗?
经过多天的研究和查看代码,我设法理解并解决了我的问题。我在看所有错误的地方。唯一需要更改的文件是 getdata.php
,它位于 OC 的根目录中。因此,默认自动完成仅适用于产品名称。它在这个文件中是这样定义的:
$sql = "SELECT pd.name FROM " . DB_PREFIX . "product p," . DB_PREFIX . "product_description pd WHERE p.status = 1 AND p.product_id = pd.product_id AND language_id = '".$id."' AND UPPER(pd.name) like UPPER('%$q%') GROUP BY pd.product_id ORDER BY pd.name ASC";
$res = mysql_query($sql);
if(mysql_num_rows($res)>0){
while($ro = mysql_fetch_assoc($res)){
$name = str_replace( array( '\'', '"', ',' , ';', '<', '>','"','&'), ' ', $ro['name']);
//$str[]= $name."\n";
echo $name."\n";
}
}
现在,您需要做的就是在 oc_product table 您需要自动完成的 oc_product table 中添加模型或任何数据库字段的确切查询。意思是,例如,复制名称查询并将 pd.name
替换为 p.model
,并将 ['name']
替换为 ['model']
。瞧!我真的希望这对某人有所帮助,因为直到今天我自己才意识到这一点。