Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

#26044
Este VQMod faz com que Opencart realiza buscas de produtos indiferente da acentuação, tanto na loja quanto na área de administração.
Peguei a idéia do Folken Laccour Fanel nesse fórum http://phpbrasil.com/phorum/read.php?5,146360
Código: Selecionar todos
<modification>
        <id>Busca indiferente da acentuacao</id>
        <version>1.0</version>
        <vqmver>1.1.0</vqmver>
        <author>Lien Kuan Min</author>
        <file name="catalog/model/catalog/product.php">
                <operation>
                        <search position="after" index="1,2"><![CDATA[$words = explode(' ', trim(preg_replace('/\s\s+/', ' ', $data['filter_name'])));]]></search>
                        <add><![CDATA[
                         $padrao=array("/(a|á|à|ã|â)/" ,"/(e|é|ê)/","/(i|í|î)/","/(o|ó|õ|ô)/","/(u|ú|û|ü)/","/(c|ç)/");
                         $substituicao=array("(a|á|à|ã|â)" ,"(e|é|ê)" ,"(i|í|î)" ,"(o|ó|õ|ô)" ,"(u|ú|û|ü)" ,"(c|ç)" );
                        ]]></add>
                </operation>
                <operation>
                        <search position="replace" index="1,2"><![CDATA[$implode[] = "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($word)) . "%' OR LCASE(pd.description) LIKE '%" . $this->db->escape(utf8_strtolower($word)) . "%'";]]></search>
                        <add><![CDATA[
                        $implode[] = 'LCASE(pd.name) REGEXP "'.preg_replace($padrao, $substituicao, $this->db->escape(utf8_strtolower($word))).'" OR LCASE(pd.description) REGEXP "'.preg_replace($padrao, $substituicao, $this->db->escape(utf8_strtolower($word))) .'"';
                        ]]></add>
                </operation>
                <operation>
                        <search position="replace" index="1,2"><![CDATA[$implode[] = "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($word)) . "%'";]]></search>
                        <add><![CDATA[
                         $implode[] = 'LCASE(pd.name) REGEXP "'.preg_replace($padrao, $substituicao, $this->db->escape(utf8_strtolower($word))).'"';
                        ]]></add>
                </operation>
        </file>
        <file name="admin/model/catalog/product.php">
                <operation>
                        <search position="replace" index="1,2"><![CDATA[$sql .= " AND LCASE(pd.name) LIKE '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";]]></search>
                        <add><![CDATA[
                         $padrao=array("/(a|á|à|ã|â)/" ,"/(e|é|ê)/","/(i|í|î)/","/(o|ó|õ|ô)/","/(u|ú|û|ü)/","/(c|ç)/");
                         $substituicao=array("(a|á|à|ã|â)" ,"(e|é|ê)" ,"(i|í|î)" ,"(o|ó|õ|ô)" ,"(u|ú|û|ü)" ,"(c|ç)" );
                         $sql .= " AND LCASE(pd.name) REGEXP '" .preg_replace($padrao, $substituicao, $this->db->escape(utf8_strtolower($data['filter_name']))) . "'";
                         ]]></add>
                </operation>
        </file>
</modification>
Copie o código, crie um arquivo XML e coloque na pasta vqmod/xml.
Esse VQmod Funciona na versão 1.5.3.1 :D
#28364
Desculpem minha ignorância. Mas simplesmente eu crio um xml, colo esse conteúdo, dou um nome qualquer e coloco na pasta vqmod/xml e já deveria funcionar? Como o sistema vai saber que coloquei o xml lá? Precisa ativar algo através do admin?
obrigado
#28992
Lien escreveu:Instalei o VQMOD para ver se tem algum erro, mas não estou vendo nada... qual foi a mensagem de erro?
Testei aqui e também deu zica, tema com css customizado em cima do default 1.5.4.1

procurando móuse no site

Log de erros do sistema
Código: Selecionar todos
2012-10-08 21:54:22 - PHP Warning:  simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]:                          $padrao=array("/(a|?|?|?|?)/" ,"/(e|?|?)/","/(i|?|?)/", in /home/SITE/public_html/admin/model/tool/vqmod.php on line 12
2012-10-08 21:54:22 - PHP Warning:  simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]:                                             ^ in /home/SITE/public_html/admin/model/tool/vqmod.php on line 12
2012-10-08 21:57:17 - PHP Warning:  simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: ../vqmod/xml/Busca indiferente da acentuacao.xml:10: parser error : Input is not proper UTF-8, indicate encoding !
Bytes: 0xE1 0x7C 0xE0 0x7C in /home/SITE/public_html/admin/model/tool/vqmod.php on line 12
2012-10-08 21:57:17 - PHP Warning:  simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]:                          $padrao=array("/(a|?|?|?|?)/" ,"/(e|?|?)/","/(i|?|?)/", in /home/SITE/public_html/admin/model/tool/vqmod.php on line 12
2012-10-08 21:57:17 - PHP Warning:  simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]:                                             ^ in /home/SITE/public_html/admin/model/tool/vqmod.php on line 12
Log do VqModerator
Código: Selecionar todos
REQUEST URI : /index.php?route=product/search&filter_name=m%C3%B3use
DOM UNABLE TO LOAD: /home/SITE/public_html/vqmod/xml/Busca indiferente da acentuacao.xml
Abraços e boa semana, Marcos

EDITADO ... , MUDEI PRA UTF8 NO NOTEPAD++ , VER PRÓXIMA RESPOSTA DO TÓPICO
Editado pela última vez por guest em 09 Out 2012, 08:31, em um total de 1 vez.

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]