Plugin: Browser Sniff

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

  1. Faça o download do plugin aqui -> [ Browser Sniff 1.11 (~56.11KB) ]
  2. Instale o plugin como qualquer outro. Basta descompactar o arquivo e colocar a pasta no diretório wp-content/plugins.
  3. Vá para o Painel de administração de Plugins do WordPress e ative o plugin.
  4. Veja a seção USO abaixo pra saber como usar e onde colocar o comando.
  5. (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:

  1. String para aparecer antes da descrição(no caso acima, “Usando “)
  2. String para aparecer depois da descrição(nada no caso acima)
  3. true ou false para mostrar ou não(respectivamente) ícones dos navegadores e SOs
  4. 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 Mozilla Firefox 3.6.3 no Windows 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:

  1. O user agent string a ser detectado(“Mozilla/1.0″ no caso acima)
  2. true ou false para mostrar ou não(respectivamente) ícones dos navegadores e SOs
  3. 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:

  • Primeiro release

1.1:

  • Adicionado o parâmetro $between. Agradecimentos para João Craveiro.

1.2:

  • Ajustes para eLinks

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.

, ,

About Bruno Pedrassani

Nasci em 1985 na cidade de Curitiba - PR. Já antes de completar 2 anos, me mudei/mudaram pra Canoinhas - SC, onde vivi até os 17. Depois disso, voltei a Curitiba pra cursar Bacharelado em Ciência da Computação na Universidade Federal do Paraná. Atualmente terminando o trabalho de graduação e trabalhando na CELEPAR - Companhia de Informática do Paraná. Nas horas vagas, pseudo-blogueiro, jogador, e amante(aquele que ama).
This entry was posted in blogs, plugins and tagged , , . Bookmark the permalink.

14 Responses to Plugin: Browser Sniff

  1. Pingback:Bruno Pedrassani

  2. Pingback:Bruno Pedrassani

  3. Usando Opera Mini/Mobile Opera Mini/Mobile 5.0.019802 no iOS iOS

    Teste de Opera no iPhone

  4. Usando Android Browser Android Browser no Android Android 1.6

    Conforme prometido.
    Cara, não faço a mínima idéia do nome desse browser, mas acho q usa a engine do mozilla.
    Outra coisa, nao abriu em modo mobile, o http://tecnovicio.com.br sim. :P
    abraço.

  5. Usando Opera Opera 9.25 no Windows Windows Vista

    Opera Windows Vista

  6. Usando Safari Safari 125.8 no Mac OS Mac OS

    Safari no MAC OS

  7. Usando Blackberry Blackberry 8703

    Blackberry 8703

  8. Pingback:Meu nome é Procrastinar

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>