Fixing Browser Sniff Plugin
17 Januari 2010Pada 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:
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.


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.
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…
Pada 18 Januari 2010 pukul 00:09 WIB
menggunakan Mozilla Firefox 3.0.14 pada Windows XP
mantab mas
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.
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…
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
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
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.
Pada 30 Januari 2010 pukul 22:21 WIB
menggunakan Minefield 3.7a1pre pada Linux
tes pake fx 3.7a1pre di linux
Pada 31 Januari 2010 pukul 00:12 WIB
menggunakan Google Chrome 4.0.249.43 pada Linux
@dani
sudah fixed, tertampil sebagai Minefield
Pada 16 Juli 2010 pukul 13:57 WIB
menggunakan Opera 9.80 pada Windows XP
salam kenal mas…
mantabbbs nih pluginnya.. ijin unduh dan dipasang ya mas