Fixing Browser Sniff Plugin

17 Januari 2010

Pada tulisan sebelumnya beberapa waktu lalu, saya sempat mengeluhkan mengenai plugin Browser Sniff yang tidak bisa mendeteksi peramban (browser) Google Chrome saya, setiap kali menggunakan Google Chrome, plugin tersebut mendeteksinya sebagai Safari yang berjalan pada sistem operasi Mac OS X, padahal kadang saya menggunakan Google Chrome versi Linux atau Windows. Hal ini terjadi karena sang pembuat plugin yaitu om Priyadi tidak memperbaharui plugin buatannya itu, sehingga belum bisa mendeteksi peramban Google Chrome yang terhitung baru, dia mendeteksi sebagai Safari karena masih menggunakan render engine yang sama yaitu WebKit. Selain itu, sistem operasi terbaru dari Microsoft yaitu Windows 7 belum terdeteksi oleh plugin ini.

Barusan saya iseng-iseng buka berkas plugin Browser Sniff yang hanya terdiri dari satu buah berkas PHP, ceritanya pengen nyobain otak-atik, siapa tahu bisa  memperbaiki ‘bug’ tersebut, setelah beberapa menit melototin kode PHP (yang sama sekali tidak saya mengerti), bermodal logika kecil-kecilan saya simpulkan saja kalau ingin mendeteksi suatu sistem operasi maupun peramban baru, tinggal menambahkan saja entri baru ke barisan kode tersebut, bedanya tinggal bedakan saja “identifier” dari entri tersebut. Setiap peramban memiliki user agent yang bisa memberitahukan jenis peramban, versi maupun sistem operasi yang digunakan, dari data user agent inilah plugin Browser Sniff mengambil data untuk ditampilkan di bagian komentar pada suatu blog berbasis WordPress. nah jika kita ingin menambahkan entri baru, tinggal masukan saja identifier peramban dan sistem operasi yang baru ke entri tersebut, sehingga peramban dan sistem operasi baru bisa dikenali oleh plugin ini.

Langsung saja ke langkah editing, untuk menambahkan fungsi agar bisa mendeteksi peramban Google Chrome, cukup menambahkan baris kode berikut ke berkas:

1
2
3
4
5
6
7
8
9
} elseif (preg_match('#Chrome/([a-zA-Z0-9.]+)#i', $ua, $matches)) {
		$browser_name = 'Google Chrome';
		$browser_code = 'chrome';
		$browser_ver = $matches[1];
		if (preg_match('/Windows/i', $ua)) {
			list($os_name, $os_code, $os_ver) = pri_windows_detect_os($ua);
		} else {
			list($os_name, $os_code, $os_ver) = pri_unix_detect_os($ua);
		}

Nah sekarang tinggal memasukan kode agar plugin tersebut juga bisa mendeteksi sistem operasi Windows 7, kodenya sebagai berikut:

1
2
3
4
} elseif (preg_match('/Windows NT 6.1/i', $ua)) {
		$os_name = "Windows";
		$os_code = "windows";
		$os_ver = "7";

Perhatikan identifier kernel untuk Windows 7 adalah Windows NT 6.1, sehingga apabila user agent peramban memberikan data kernel tersebut, maka akan dikenali sebagai Windows 7. sekarang mari kita lihat hasilnya, setelah di otak atik kodenya, ternyata Browser Sniff berhasil mendeteksi peramban Google Chrome dan sistem operasi Windows 7 seperti terlihat di gambar berikut:

Browser Sniff bisa mendeteksi Google Chrome dan Windows 7

Cukup mudah bukan? anda bisa memasukan/mengetikan kode-tersebut di berkas plugin Browser Sniff dengan menggunakan plugin editor yang ada di WordPress maupun editor teks lainnya, atau jika masih bingung dan takut salah mau menyisipkannya dimana? silakan unduh berkasnya yang telah saya perbaharui disini. selamat mencoba.

Beri tahu teman :
  • Facebook
  • Twitter
  • del.icio.us
  • Ping.fm
  • Tumblr
  • Posterous
  • Technorati
  • email

Tulisan lain yang mungkin berkaitan:

10 komentar pada “Fixing Browser Sniff Plugin”

  1. 1 aldy berkomentar:
    Pada 17 Januari 2010 pukul 23:56 WIB
    menggunakan Mozilla Firefox 3.5.7 pada Windows XP

    Mas Hielmy bilang mudah saja, lha ngeliat snipletnya saja udah nyut-nyutan duluan. Apalagi masih belum pulih sepenuhnya.

  2. 2 Hielmy berkomentar:
    Pada 17 Januari 2010 pukul 23:59 WIB
    menggunakan Mozilla Firefox 3.5.7 pada Windows 7

    @aldy
    saya aja pusing, maklum bukan programmer juga, tu hasil asal aja, dikira2 ala newbie, hehe… tp ternyata berhasil dan cukup mudah kok :)
    kalau kesulitan, unduh saja berkas yang sudah jadi, hehe…

  3. 3 khan berkomentar:
    Pada 18 Januari 2010 pukul 00:09 WIB
    menggunakan Mozilla Firefox 3.0.14 pada Windows XP

    mantab mas

  4. 4 dani berkomentar:
    Pada 18 Januari 2010 pukul 08:07 WIB
    menggunakan Mozilla Firefox 3.5.7 pada Gentoo Linux

    Padahal sekarang sudah banyak plugin wordpress tinggal pake yang lebih gampang update-nya. Saya hitung ada setidaknya 3-4 plugin sejenis browser-sniff ini sekarang. Kode PHP mereka memang lebih simpel. :)

  5. 5 Hielmy berkomentar:
    Pada 18 Januari 2010 pukul 08:49 WIB
    menggunakan Mozilla Firefox 3.0.2 pada Windows XP

    @Dani
    iya kemarin juga saya sudah coba beberapa (tp ngga semua), memang bagus dan bisa mendeteksi lebih banyak, tapi sayangnya untuk penempatannya tidak fleksibel seperti Browser Sniff, rata2 sudah otomatis tersisipkan, sedangkan browser sniff bisa ditempatkan sesuai keinginan kita. atau mungkin sebenarnya bisa tapi saya malas otak-atik saja. hehe…

  6. 6 Cahya berkomentar:
    Pada 18 Januari 2010 pukul 13:36 WIB
    menggunakan Mozilla Firefox 3.5.6 pada SuSE Linux

    Saya dulu menggunakan pengaya WP-UserAgent, soalnya ga ngerti tentang pembahasaan PHP.

    Sekarang sejak pakai DISQUS, tidak bisa diterapkan lagi :)

  7. 7 Hielmy berkomentar:
    Pada 18 Januari 2010 pukul 15:42 WIB
    menggunakan Mozilla Firefox 3.0.2 pada Windows XP

    @cahaya
    saya kemarin kalo ga salah sempet juga coba itu…

    kalau disqus saya cuma pakai di tumblr aja, karena dari blog engine-nya sendiri tidak tersedia fasilitas komentar, kalau di WP, saya lebih senang comment bawaan wp saja :)

  8. 8 Den Hanafi berkomentar:
    Pada 23 Januari 2010 pukul 20:56 WIB
    menggunakan Mozilla Firefox 3.5.7 pada Windows XP

    Blm pernah nyoba nih plugin yang satu ini. izin nyimak dulu kang.

  9. 9 dani berkomentar:
    Pada 30 Januari 2010 pukul 22:21 WIB
    menggunakan Minefield 3.7a1pre pada Linux

    tes pake fx 3.7a1pre di linux

  10. 10 Hielmy berkomentar:
    Pada 31 Januari 2010 pukul 00:12 WIB
    menggunakan Google Chrome 4.0.249.43 pada Linux

    @dani
    sudah fixed, tertampil sebagai Minefield :)


Tulis komentar


Blog ini menerapkan "DoFollow", silakan berkomentar.
Get Adobe Flash playerPlugin by wpburn.com wordpress themes