Browser Sniff

DOWLOAD LINK: [ Browser Sniff 2.1 (~82.2KB) ]

You can blame me for distributing Wordpress plugins when my site is Drupal based. Yes, I don't mind. In fact I use Drupal here, but Wordpress in other places.

The original Browser Sniff plugin has been discontinued from the original author, Priyadi, so I contacted him and he let me maintain the plugin code, and here I am.

Most of the text below is from Priyadi(well, it's the plugin description), and I'll keep the original Changelog history, just adding new entries, after all the plugin just changed the maintaner.

REMEMBER: the plugin is for Wordpress users, not Drupal, and the original idea is Priyadi's, not mine.

FEATURES

  • Detects and shows commenters web browser/operating system (used in the comment loop)
  • Describe an arbitrary user agent string (for general use)
  • Can show web browser/operating system icons
  • If the user is "cookied" - a.k.a blog admin visiting the blog - , it also displays an asterisk titled with the full user agent string(just mouse hover the asterisk to see the string). Regular visitors can't see this feature.
  • All mainstream browsers and SOs are detected, blogging softwares(trackbacks/pingbacks), text based browsers, antiquated browsers, cell phones and pdas
  • It can be "automagically" added in your theme if you do not want/like to edit templates

REQUIREMENTS

Wordpress 1.5+(tested up to Wordpress 2.9.2)

This plugin is around since Wordpress 1.2, but WP 1.2 do not store the commenter user agent, so comments migrated from 1.2 will no work. I'm sure nobody use WP1.2 nor 1.5 anymore, but it's good to know.
You'll have to edit your template, so basic PHP knowledge is necessary. But it's quite a simple line to edit, really easy.

INSTALLATION

  1. Download the plugin from here.
  2. Install like any other Wordpress plugin, just unzip and put the folder in your wp-content/plugins folder.
  3. Go to the Wordpress Plugins administration menu and activate it.
  4. Go to the Plugins->Browser Sniff menu and set your options
  5. (optional) Place <?php pri_print_browser(); ?> in your templates, especifically on the comment loop. See the Usage section for more info
  6. (optional) You can change how the icon look in your CSS by modifying style for selector img.browsericon .

USAGE

Usage is pretty simple.

If you choose the "automagically" option, no need to worries, but it can be placed where you do not want it to be.

If you want to place the code into your theme, just use the function pri_print_browser("Using ", "", true, 'on'); wherever you want in the comment loop. Also you can simply use pri_print_browser(); and the options will be loaded from database. The parameters here are:

  1. String to be printed before description("Using" in this case)
  2. String to be printed after description(nothing i.t.c)
  3. true or false to display icons or not
  4. String to be printed between web broser and operating system. Default is 'on'.

The default use of the plugin show something like this:

Using Mozilla Firefox Mozilla Firefox 3.6.3 on Windows Windows XP

If there's no recorded user agent string(WP1.5-), strings before and after will no be printed.
If you are logged as administrator of the WP-based site("cookied"), you'll see an asterisk after the print, with the full user agent string detected by Wordpress. Just hover the asterisk to see it. This is useful to see if the plugin is working correctly.

You can also find browser description from an arbitrary user agent string, using the function pri_browser_string("Mozilla/1.0", true, 'on'); . It'll return a string with the browser description. The parameters are:

  1. The user agent string to be detected.("Mozilla/1.0" i.t.c)
  2. true of false to display icons or not
  3. String to be printed between web broser and operating system. Default is 'on'.

FINDING THE COMMENT LOOP

If your template is made to newer versions of Wordpress(2.7+), normally the comment loop will be located in the file wp-content/themes/your-theme/comments.php . Just look for clues like "comment loop", or text printed on every comment, like "commented by", or you can just put the function pri_print_browser("Using ", "", true, 'on'); and see where it prints, then try to locate where you want it to be.

Although normally the wp-content/themes/your-theme/comments.php file is used, sometimes it can be the wp-content/themes/your-theme/comments-popup.php, or even the wp-content/themes/your-theme/functions.php. If this last one is used, look for a function custom_comment() or something like this.

I'll not dig deeper in this, but with some time and will, you can find the comment loop. Once you find it, you won't forget it :)

NOTES

  • For now, send me any user agent detected incorrectly, or any better icons you find.
  • You can see the plugin in use at Priyadi's comments or Nódoa do Universo.

CHANGELOG

1.0:

  • First release

1.1:

1.2:

  • Fixes for eLinks

1.3:

  • Detects Shiira. Thanks to CH Chan.

1.4:

1.5:

1.6:

1.7:

1.8:

1.10:

  • Detects all Ubuntu derivatives: Kubuntu, Xubuntu and Edubuntu.
  • Detects Debian Iceweasel and unbranded Firefox (BonEcho).
  • Fixes for Nintendo Wii.
  • Rearrange order for Debian derivatives.

1.11:

  • Maintaner changed to Bruno Pedrassani.
  • Detects Google Chrome
  • Added Icons for Google Chrome, Windows 7 and Windows Vista
  • WP compliant, no need to create a browsers directory anymore
  • browsers directory changed to icons(just the name)
  • First release on WP Plugins list!

1.12:

  • Added new Icons for MAC OS X, Internet Explorer and Safari, Thanks to Peter Upfold
  • Detects Opera Mini for iPhone
  • Fixed detecting for Safari on iPhone.
  • Detects iPhone OS Version if available.

1.13:

  • Detects Android phones
  • Detects Default Android browser
  • Added icons for Android, Android browser, webOS, ZuneHD and Windows Phone OS
  • Fixed Opera Mini/Mobile version detection
  • Detects iPad
  • Detects iPod
  • Detects iPad OS version if available
  • Detects Palm WebOS
  • Detects Safari on SymbianOS
  • Detects IE Mobile
  • Detects ZuneHD
  • Detects Windows Phone OS
  • Fixed Avant Browser detection

2.0:

  • Admin menu available at Plugins->Browser Sniff. Now you can set a lot of options, like size of icons, Strings to print, whether to show icons or not and to place the hook "automagically".

2.1:

  • Fixed bug a bug that showed Netscape under some Apple devices, thanks to ShaolinTiger
  • Changed iPod/iPhone OS to iOS

Thanks to Priyadi to let me continue his first work, and please send me any issues you're having.