Como não achei nenhum free, acabei fazendo na mão mesmo... menos complicado que eu imaginava.
No
catalog/view/theme/LOJA/template/product/search.tlp repliquei o checkbox que tem para "busca na descrição" e renomeei para filter_option:
Código: Selecionar todos<?php if ($filter_option) { ?>
<input type="checkbox" name="filter_option" value="1" id="option" checked="checked" />
<?php } else { ?>
<input type="checkbox" name="filter_option" value="1" id="option" />
<?php } ?>
<label for="option">Busca nas opções</label>
No
catalog/controller/product/search.php repliquei todas as linhas onde usava filter_description e renomiei para filter_option... exemplo:
Código: Selecionar todosif (isset($this->request->get['filter_description'])) {
$filter_description = $this->request->get['filter_description'];
} else {
$filter_description = '';
}
if (isset($this->request->get['filter_option'])) {
$filter_option = $this->request->get['filter_option'];
} else {
$filter_option = '';
}
E no
catalog/model/catalog/product.php, na function getProducts adicionei este código junto aos outros left joins :
Código: Selecionar todosif (!empty($data['filter_option'])) {
$sql .= " LEFT JOIN " . DB_PREFIX . "product_option_value pov ON (p.product_id = pov.product_id) LEFT JOIN " . DB_PREFIX . "option_value_description ovd ON (pov.option_value_id = ovd.option_value_id)";
}
e este dentro do foreach ($words as $word), logo após o else do filter_description:
Código: Selecionar todosif (!empty($data['filter_option'])) {
$implode[] = "LCASE(ovd.name) LIKE '%" . $this->db->escape(utf8_strtolower($word)) . "%'";
}
No resultado final, ficou um checkbox igual ao de "busca na descrição" mas para as opções do produto.
