Bloco de pesquisa não reconhece acentos

  • Identifique-se para criar novos tópicos neste fórum
  • Visitantes anônimos não podem postar neste fórum
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
Criei algumas páginas com o Módulo CONTEUDO e lógico, algumas palavras tem acentos. Dai resolvi pesquisar por estas palavras com acento para ver se o bloco de pesquisa estava rodando corretamente.

Dai a surpresa, não está. Todas as palavras que NÃO tem acento ele encontra certo e faz a indexação por módulo.

Mas quando a palavra tem acento, qualquer acento ele não busca.

O meu .htaccess do módulo CONTEUDO está assim:

Options +FollowSymlinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-s RewriteRule ^c/([a-z, 0-9, A-Z, _-çã]+)$ modules/conteúdo/?tac=$1 [L] RewriteRule ^c/imprimir/([a-z, 0-9, A-Z, _-çã]+)$ modules/conteúdo/print.php?tac=$1 [L] RewriteRule ^c/recomendar/([a-z, 0-9, A-Z, _-çã]+)$ modules/conteúdo/recommend.php?tac=$1 [L]


Preciso saber se alguém tem a resolução deste problema.
Andrax  Ocasional   Postagens: 27
Lembro de ter visto esse mesmo problema já aqui no forum... lembro até de ter investigado o caso, mas não lembro se encontrei a solução... (ô falta de memória essa minha... )

Faz o seguinte, pesquisa aqui no fórum e se não encontrar nada avisa que a gente corre atrás para ver se encontra uma solução
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
Grande camarada... já vasculei pelo fórum já brother.

No Google e tudo mais.

Por enquanto nada.
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
Alguém PLEASE. \O/ \O/ \O/
Andrax  Ocasional   Postagens: 27
Estou um pouco off esses dias por conta de uma tendinite, mas darei uma investigada nisso no feriadão.
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
Opa... obrigado camarada.

Mas tem de ficar trankis, também aproveitar o feriadão, quando der você olha brother.
Andrax  Ocasional   Postagens: 27
quando eu digo, sabia que já tinha visto isso em algum lugar... a solicitação foi para um problema diferente, mas a solução é a mesma

Testa aí e volta para dar o feedback
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
já tinha feito esse comentário em linhas assim que instalei o módulo CONTEUDO. Mas a questão não é a reescrita da url, a questão é os caracteres especiais, percebi que tudo que tem "ç" o bloco pesquisa do XOOPS não retorna nenhum resultado. Penso eu que pode ser no .htaccess, não sei.
Andrax  Ocasional   Postagens: 27
Não testei para o Ç, apenas caracteres acentuados... Farei mais alguns testes e volto aqui.
Andrax  Ocasional   Postagens: 27
Acabei de testar aqui e está funcionando... reparei agora que você fez algumas alterações no .htaccess, você já tentou restaurar ele para o padrão? Segue abaixo:
 Options +FollowSymlinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-s RewriteRule ^c/([a-z, 0-9, A-Z, _-]+)$ modules/conteúdo/?tac=$1 [L] RewriteRule ^c/imprimir/([a-z, 0-9, A-Z, _-]+)$ modules/conteúdo/print.php?tac=$1 [L] RewriteRule ^c/recomendar/([a-z, 0-9, A-Z, _-]+)$ modules/conteúdo/recommend.php?tac=$1 [L] 
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
Essa ação em colocar çã dentro do .htaccess foi para resolver a reescrita URL amigável, pois quando tinha estes caracteres, o endereço ficava bugado e o XOOPS não abria a página. Dai ficou assim:

Options +FollowSymlinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-s RewriteRule ^c/([a-z, 0-9, A-Z, _-çã]+)$ modules/conteúdo/?tac=$1 [L] RewriteRule ^c/imprimir/([a-z, 0-9, A-Z, _-çã]+)$ modules/conteúdo/print.php?tac=$1 [L] RewriteRule ^c/recomendar/([a-z, 0-9, A-Z, _-çã]+)$ modules/conteúdo/recommend.php?tac=$1 [L]


Resolvi o problema das urls amigaveis. Mas o problema de o BLOCO PESQUISA não reconhecer "Ç" e tals estou achando estranho. Pois aqui no XOOPS ele pesquisa corretamente.

Mais um mistéééério. Hehe.
Edson Oliveira  Membro De: R. Liberdade, Centro, Atibaia - São Paulo, BR   Postagens: 730
Daniel e camarada. Eu sei qual é o problema, porem não consegui solucionar ainda. O erro é o seguinte, quando o editor salva o texto por exemplo " verificação" ele salva assim " verifica& ccedil;& atilde;o", no Banco de Dados Eu tentei alterar o arquivo /modules/conteúdo/include/busca.inc.php, porem o PHP não consegue exergar o verifica& ccedil;& atilde;o, ele sempre ver verificação.

Aí esta o problema, mas a solução sei pelo menos ainda não sei.
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
Ótimo camarada, aos poucos vamos longe.
Andrax  Ocasional   Postagens: 27
Ah, se o texto está sendo salvo com os html entites, aí realmente não tem como ele encontrar. A não ser... que seja feito um ajuste no código para que ele pesquise o texto também com eles, mas aí teria que fazer uma verificação para todos os entites.
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
Caso encerrado ou não?
Edson Oliveira  Membro De: R. Liberdade, Centro, Atibaia - São Paulo, BR   Postagens: 730
Acho que ainda não, o código que vou citar abaixo no momento só vai funcioanar se você instalou o XOOPS na codificação UTF-8. Abra o arquivo /modules/conteúdo/include/ busca.inc.php, na duas linhas 29 e 30
$query_str .= "&busca[]=".$queryarray[0]; $sql .= " AND ((mpb_35_conteúdo LIKE '%".$queryarray[0]."%'OR mpb_30_menu LIKE '%".$queryarray[0]."%'OR mpb_30_titulo LIKE '%".$queryarray[0]."%')";
altere elas para
// $query_str .= "&busca[]=".$queryarray[0]; $pattern = array("á", "à ", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç", "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "ÃŒ", "ÃŽ", "Ï", "Ó", "Ã’", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ãœ", "Ç"); $rep_pat = array("á", "à", "â", "ã", "ä", "é", "è", "ê", "ï", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç", "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ï", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç"); $conteúdo = str_replace($pattern, $rep_pat, $queryarray[0]); $sql .= " AND ((mpb_35_conteúdo LIKE '%".$conteúdo."%'OR mpb_30_menu LIKE '%".$queryarray[0]."%'OR mpb_30_titulo LIKE '%".$queryarray[0]."%')";
Lembrando só vai funcionar se o XOOPS estiver intalado em codificação UTF-8

camarada Obs.: depois eu vejo o do ISO8859-1
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
A versão instalada é sim em UTF-8, onde a super video aula do Angelo Rocha orienta à tal escolha.

A modificação que você orientou foi fantástica, as palavras que antes eu pesquisava e não encontrava, já estão sendo encontradas e indexadas corretamente. Maravilha Ag, muito obrigado e obrigado ao camarada e todos que sempre quebram a cabeça para ajudar a resolver alguns problemas desse CMS fantástico.

Caso resolvido! :) \o/
Andrax  Ocasional   Postagens: 27
Boa AG! Estava pensando em fazer quando chegasse em casa, mas é por essas e outras que gosto e acredito na força das comunidades, tem sempre alguém mais, disposto a meter a mão na massa e fazer a coisa acontecer

Vou falar com o Carlos para colocar o módulo no SVN, assim podemos acrescentar essas correções... e ver com ele pragente lançar uma nova versão já com as correções.
Edson Oliveira  Membro De: R. Liberdade, Centro, Atibaia - São Paulo, BR   Postagens: 730
Eu sou assim, enquanto eu não consigo resolver, vou metendo a cara e buscando códigos na internet a fora, e tudo na base de teste, é como citei em minha assinatura Citando:
Não sou programador, sou curioso... então posso estar errado ou não
às vezes fico off por um tempo, mas ajudo no que posso mesmo sem saber códigos PHP, HTML e outros
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
Olha eu reabrindo o fórum.

Foi resolvido a questão da acentuação de caracteres especiais.

Mas estou notando uma coisa.

Em uma página criada no módulo CONTEUDO existe as palavras "combate a incêndio"

Configurei o XOOPS para tamanho mínimo das palavras-chave = 1

Dai, quando mando pesquisar por combate a incêndio ele não retorna nenhum resultado. Quando pesquiso combate incêndio, ele NÃO retorna nada também.

Quando pesquiso combate, ele retorna o resultado correto. Quando pesquiso incêndio, ele também retorna o resultado correto.

Como fazer para o XOOPS entender que quero que seja pesquisado todas as palavras, mesmo tendo somente 01 caracter e juntar tudo e retornar o resultado com o conteúdo pesquisado.

Sei que isso vai exigir mais, mas hoje é uma necessidade.
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
Andrax  Ocasional   Postagens: 27
Por padrão a busca do módulo conteúdo faz uma consulta que só atende se retornar todos os termos informados... porem se você for a busca avançado e solicitar em tipo de busca pelas opções "Qualquer(ou)" ou "Exatamente", o sistema retornará o que se deseja... seria realmente uma questão de forçar o sistema a se comportar de determinada maneira... não sei dizer como fazer isso agora, se for necessário posso dar uma estudada nos códigos e recomendar algumas modificações.
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
Ficaria muito grato camarada, pois preciso muito que esse motor funcionasse corretamente.

Muito obrigado desde já.
Andrax  Ocasional   Postagens: 27
Só um detalhe... na verdade ele já funciona corretamente conforme a especificação padrão dele.

Assim que tiver um tempo dou uma olhada no código para ver como podemos mudar isso.
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
Estava eu fazendo mais teste e percebi uma coisa:

Quando pesquiso por acessórios ou espião ele retorna o resultado apesar de conter acentuação.

Quando pesquiso por (comprar acessórios) ou (chaveiro espião) ele não retorna nenhum resultado mesmo tendo as palavras dentro de cada página.

Conclusão:

Quando a expressão pesquisada tem uma palavra que tem acento o motor de pesquisa não funciona.

Se a expressão pesquisada não tiver nenhum acento ele retorna corretamente o resultado, independente de ter duas ou mais palavras.

Espero que ajude nas análises.
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
Andrax  Ocasional   Postagens: 27
Com relação a ele fazer por padrão a pesquisa com "OU" ao invés de "E", basta abrir o arquivo search.php, e na linha 50 trocar de:
$andor = "AND";
Para:
$andor = "OR";


Verifique se isso resolve o seu problema.
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150
"OR" ou vai fazer com que o XOOPS pesquise ou uma palavra ou outra palavra.

No caso de ÓCULOS DE SEGURANÇA que é uma expressão que tem dentro da sub página no módulo conteúdo.

O XOOPS vai pesquisar por uma OU por outra aleatóriamente, podendo retornar várias páginas que contenha a palavra SEGURANÇA.

Testei fazendo a mudança que você orientou e até então está se portando bem, mas o que temo é que quando o volume de informações for muito grande, o XOOPS começar lançar vários resultados irrelevantes por estar pesquisando por 2 ou mais palavras ao mesmo tempo.

Vou fazendo mais testes com essa mundaça e qualquer coisa volto a postar aqui.

Forte abraço e muito obrigado!

Daniel Araújo

"Comentários"

Fiz mais teste e realmente não seria isso que deveriamos fazer, pois mudar de AND para OR está fazendo buscar vários resultados.

Exemplo:

Quando pesquiso pela palavra COMPRAR COMPUTADOR me retorna todas as páginas que existe a palavra COMPRAR e todas que tem a palavra COMPUTADOR. Mas só que junto com a palavra COMPRAR aparece empresas que vendem ROUPAS. Dai a pesquisa fica inutil, pois o usuário pesquisou por COMPRAR COMPUTADOR.

Dai vai ter que ser AND mesmo só que o grande problema é que quando existe uma expressão com uma das palavras contendo acento ou caracter especial.

Faz o teste para você ver. Acesse: curveloonline.com.br

Na barra de pesquisa digite formatação computador Vai aparecer duas empresas que são parceiras. (SHOW DE BOLA)

Se você digitar computador formatação Não vai aparecer resultado nenhum. (FAIL... Hehe)

A pergunta é, quando tem acento e a palavra acentuada está no final da expressão, por que não retorna o resultado correto?

Essa é para vocês que são os caras em PHP.

Forte abraço. Ótima Semana à todos.
Daniel Araújo Souza  Participativo De: Curvelo  Postagens: 150

  Pesquisa avançada






Entrada

Codinome:


Senha:





Perdeu a senha?  |Cadastre-se!


Quem nos visita
Há 17 visitantes neste momento... (12 na seção Fóruns)

Associados: 0
Anônimos: 17

outros...

Banner XOOPS Cube