Então que desde (quase)sempre eu uso o plugin Browser Sniff, do Priyadi, aqui no blog. Só que desde, sei lá, 2005 que o plugin não é atualizado, e eu já tinha visto vários pequenos bugs no plugin, como detectar que o Google Chrome é o Safari.
Como eu gosto muito desse plugin, resolvi então ver o código dele e dar uma estudada no bixo. Fui lá, alterei, arrumei várias coisas e resolvi entrar em contato com o próprio Priyadi pra ver se ele me deixava continuar o projeto.
E não é que ele me respondeu e me “deu” o projeto?
Então senhores, esse post é pra falar basicamente sobre o plugin. Quem não gosta do plugin, ou não se interessa por essas partes do WordPress, pode sair agora.
Já fiz um post inaugural(em inglês) no meu website pessoal(o http://brunopedrassani.com), mas o Nódoa terá a versão em português do negócio.
Muita coisa que verão neste post é do post original do Priyadi, e decidi manter o changelog dele, somente continuando o desenvolvimento.
EDIT: O plugin foi aprovado pelo wordpress, yes baby, yes! Está lá na página de plugins, e pode ser instalado pelo painel também, bastante simples. O link aqui.
CARACTERÍSTICAS
- Detecta e mostra o navegador/sistema operacional de quem comentou(usado no loop de comentários)
- Descreve um user agent string qualquer(para uso geral)
- Mostra ícones do navegador/so se solicitado
- Se o usuário for cookied, ou seja, se for um administrador do site vendo os comentários, o plugin mostra um asterisco com o user agent string completo(é só passar o mouse por cima do asterisco). Serve pra ter certeza que o plugin está detectando o que deve. Visitantes normais não podem ver o asterisco
- Todos os navegadores e sistemas operacionais principais são detectados, bem como softwares de blogagem(serve para trackbacks e pingbacks), navegadores baseados em texto, celulares, pdas e outros
REQUISITOS
WordPress 1.5+ (testado até WordPress 2.9.2)
Esse plugin existe desde o WP 1.2 se não me engano, mas como o WP 1.2 não guara o user agent string, comentários migrados dessa plataforma não funcionarão com o plugin. Obviamente não acho que ninguém ainda use WP tão antigo, mas é só pra manter o registro aqui.
Você também terá que conhecer um pouco de PHP e como achar o loop de comentários no seu template. De fato é bem pouco, você só precisa adicionar um comando no lugar certo, bem fácil.
INSTALAÇÃO
- Faça o download do plugin aqui -> [ Browser Sniff 1.11 (~56.11KB) ]
- Instale o plugin como qualquer outro. Basta descompactar o arquivo e colocar a pasta no diretório wp-content/plugins.
- Vá para o Painel de administração de Plugins do WordPress e ative o plugin.
- Veja a seção USO abaixo pra saber como usar e onde colocar o comando.
- (opcional) Você pode mudar como os ícones aparecem na sua folha de estilos, alterando o seletor img.browsericon .
USO
O uso é bastante simples. Basta colocar a função pri_print_browser(“Usando “, “”, true, ‘no’); onde você quiser que apareça, dentro do loop de comentários. Os parâmetros aqui são:
- String para aparecer antes da descrição(no caso acima, “Usando “)
- String para aparecer depois da descrição(nada no caso acima)
- true ou false para mostrar ou não(respectivamente) ícones dos navegadores e SOs
- String para aparecer entre o navegador e o sistema operacional. Padrão é ‘on’, mas no caso aqui usei o ‘no’.
O uso acima imprime na sua página algo como:
Usando
Mozilla Firefox 3.6.3 no
Windows XP
Se não houver user agent string gravado(caso de WordPress 1.5-), as strings de antes e depois da descrição não serão impressas na página.
Se você estiver logado como administrador do site(ou seja, está cookied), você verá um asterisco no final da mensagem, mostrando o user agent string completo do usuário que comentou. Basta passar o mouse por cima do asterisco pra ver. Isso é muito útil pra ver se o plugin está detectando as coisas corretamente.
Você pode também ver a descrição de algum navegador qualquer através de um pedaço de user agent string qualquer, usando a função pri_browser_string(“Mozilla/1.0″, true, ‘no’); . A função retornará uma string com a descrição do navegador. Os parâmetros são:
- O user agent string a ser detectado(“Mozilla/1.0″ no caso acima)
- true ou false para mostrar ou não(respectivamente) ícones dos navegadores e SOs
- String para aparecer entre o navegador e o sistema operacional. Padrão é ‘on’, mas no caso aqui usei o ‘no’.
ENCONTRANDO O LOOP DE COMENTÁRIOS
Se o seu template é feito para versões mais novas do WordPress(ou se você tiver sorte), normalmente o loop de comentários está no arquivo wp-content/themes/your-theme/comments.php . Basta procurar por algo como “comment loop”, ou algum texto que é impresso em todos os comentários, como “fulano comentou isso:”. Se achar algo assim, deve ter achado o loop de comentários. Se não achar, simplesmente coloque a função pri_print_browser(“Usando “, “”, true, ‘no’); e vai por tentativa e erro, tentando achar o lugar ideal pra deixar a função.
Mesmo que normalmente o loop de comentários esteja no arquivo acima, algumas vezes já encontrei no arquivo wp-content/themes/your-theme/comments-popup.php (se seu tema o tiver), ou ainda no wp-content/themes/your-theme/functions.php. Esse último normalmente é usado quando o loop de comentários é reescrito. Esse é o meu caso, e há uma função custom_comment() nele. Foi onde fiz minhas alterações.
Não vou ficar discutindo mais sobre isso, porque cada tema é um tema, mas com algum tempinho e vontade você acha fácil o comment loop. Não feve fugir desses arquivos que citei. Uma vez que acha, não se esquece
NOTAS
- Eu sei que editar templates não é pra qualquer um, e muitos nem tem tempo pra isso, por isso versões futuras terão toda a administração do plugin via painel de administração. Assim só edita o template quem quiser mesmo.
- Se encontrarem qualquer erro nos strings, ou se não detectar algo corretamente, ou ainda se tiverem ícones melhores, é só me mandar.
- Você pode editar o arquivo browsersniff.php e ajustar a variável $pri_width_height pra arrumar o tamanho dos ícones. Por padrão eu diminuo eles pra 14×14 px.
- Você pode ver o uso do plugin nos comentários aqui do blog, ou no original do Priyadi.
CHANGELOG
1.0:
1.1:
- Adicionado o parâmetro $between. Agradecimentos para João Craveiro.
1.2:
1.3:
- Detecta Shiira. Agradecimentos para CH Chan.
1.4:
1.5:
1.6:
1.7:
1.8:
1.10:
- Detecta todos os derivados do Ubuntu: Kubuntu, Xubuntu e Edubuntu.
- Detecta Debian Iceweasel e Firefox unbranded (BonEcho).
- Ajustes para Nintendo Wii.
- Rearranjada ordem para derivados do Debian.
1.11:
- Mantenedor alterado para Bruno Pedrassani.
- Detecta Google Chrome
- Adicionados ícones para Google Chrome, Windows 7 e Windows Vista
- Melhor compatibilidade com WP, agora não é necessário mais criar o diretório browsers na raiz do site
- Diretório browsers mudou de nome para icons
Quero agradecer novamente ao Priyadi por ter permitido que eu continue seu trabalho nesse plugin, e a todos que testarem e enviarem quaisquer bugs/sugestões que encontrarem.
WordPress, Plugins, Browser Sniff