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( '''', '"', ',' , ';', '<', '>','&quot','&'), ' ', $ro['name']);
       //$str[]= $name."'n";
       echo $name."'n";
       }
   } 

现在,您需要做的就是在oc_product表中为model或任何需要自动完成的数据库字段添加确切的查询。意思是,例如,复制名称查询并将pd.name替换为p.model,并在找到['name']的地方替换为['model']。瞧!我真的希望这能帮助到一些人,因为直到今天我自己都很难意识到这一点。