dmsAutoComplete versão 1.3

Após alguns meses de atraso devido a coisas mil (PHPDF Roadshow, BlogBlogs…) tive tempo de voltar ao meu script de autocomplete para a manutenção rotineira dele.

O primeiro passo que tomei foi re-organizar meu gerenciador de projetos pois ela havia sido “vandalizado” por robôs spammers que bagunçaram tudo, mas graças ao conceito de “history” consegui corrigir tudo.

O que mudou?

Esta versão é um marco muito legal para o projeto, IMHO, pois ele é quase que 100% composto de alterações, requisitadas e as vezes até realizadas por usuários do script de vários cantos do planeta. Embora no corte final o código submetido tenha sido em grande parte re-escrito, acredito que devo algo aos que contribuiram e vou mencionar seus nomes aqui neste post e listas as contribuições no script. Estas contribuições eu recebi por email e tinha em meu registro, então se eu esqueci de alguém, manifeste-se e darei o justo crédito.

Bug #1: Erro com acentos

Alguns usuários reportaram que ao fazer buscas com acentos nenhum resultado era retornado. Isto ocorria devido à problemas de codificação no lado PHP do script, e um simples utf8_decode resolveu este problema. O Marcus Ellend (www.uniqa.com.br ) contribuiu com esta solução de forma muito similar usando o encode no texto comparado, mas preferi manter o decode no texto que é enviado.

Bug #2: DIV cobre SELECTs

Este erro ocorre apenas no IE, antes da versão 7. Quando o DIV é chamado com um SELECT logo abaixo, o SELECT fica sobre o DIV. Para isso o script executa uma rotina simples que esconde todos SELECTS da pagina. Para que isso não afete soluções que não sofrem deste problema, esta rotina só é executada se a propriedade hideSelects estiver setada para true. Mais uma vez neste bug recebi o apoio do Marcus, apenas adaptando o código submetido para usar a propriedade acima.

Melhoria #1: Tamanho mínimo

Esta sugestão venho do outro lado do Atlântico, enviada pelo Simon Franz (www.tanzmusik-online.de ) sa Alemanha (aah, a globalização). Sua solução pedia que o script apenas começasse a “chutar” valores depois de 3 ou 4 letras digitadas, por isso adaptei uma propriedade, chamada minLength que define qual deve ser este número, sendo necessário apenas alterar seu valor padrão de “1” para o valor desejado.

Melhoria #2: Limpar (ou não) campo após escolha

Esta melhoria foi recomendada por várias pessoas e embora dependesse de apenas comentar-se uma linha, decidi implementar ela de uma forma mais limpa, usando a propriedade cleanField. se esta propriedade for setara para verdadeiro (valor padrão) o texto do campo será limpo após a seleção, caso não, o valor permanece no campo.

Melhoria #3: Compatibilidade com PHP4

Embora o exemplo seja apenas uma dica de utilização percebo que muitas pessoas se baseiam nele para seus scripts e muitos ainda usam PHP4, portanto ficavam sem rumo quando o script não retornava nada, devido ao uso de funções do PHP5. Recebi algumas sugestões para esta solução, do Marcus e do Jon Bernhardt (www.wobblymusic.com ) que co seu ultimo contato me estimulou a fazer a atualização do script. Com estas soluções em mãos optei por usar um truque chamado class_exists para verificar se a classe de DOMDocument esta presente, e caso não esteja, utilizar a criação do XML “na mão”. Desta forma o script se adapta ao servidor e os problemas de versão doPHP desaparecem.

Bem, estas são as melhorias, espero que possam ajudar a todos que usam o script hoje em dia, e obrigado a todos que enviaram sugestões. Estou iniciando na página do meu gerênciador de projetos a documentação do script, para poder dar mais auxílio a todos.

comments powered by Disqus

Related Posts

Installing Composer Packages

Installing Composer Packages

  • October 13, 2014

I have been putting together a new talk about Composer, and that means looking around the community, doing loads of research and trying to identify the items that need to be covered in a talk.

Read More
OpenAds vira OpenX e fala português

OpenAds vira OpenX e fala português

  • February 22, 2008

Em mais uma reviravolta, a plataforma que começou sua vida como phpAds (1998), virou phpAdsNew, progrediu para OpenAds (passando pelo fork MaxMediaManager) finalmente se formalizou em uma grande plataforma chamada OpenX .

Read More
Feedalizr 1.1.0 alpha

Feedalizr 1.1.0 alpha

  • May 27, 2008

A semana passada marcou o lançamento da nova versão do feedalizr.

Read More