? nothing_worked.patch Index: browscap.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/browscap/browscap.module,v retrieving revision 1.5.2.1 diff -u -F^f -r1.5.2.1 browscap.module --- browscap.module 13 Apr 2006 15:45:05 -0000 1.5.2.1 +++ browscap.module 12 Nov 2006 08:37:36 -0000 @@ -27,12 +27,13 @@ function browscap_get_browser($useragent if ((!empty($cache)) and ($cache->created > time() - 60*60*24)) { // Found a fresh entry in the cache $browserinfo = unserialize($cache->data); - } else { + } + else { // Note the 'backwards' use of LIKE - the useragent column contains // the wildcarded pattern to match against our full-length string // The ORDER BY chooses the most-specific matching pattern $browserinfo = db_fetch_object(db_query_range( - "SELECT * from {browscap} WHERE '%s' LIKE useragent ORDER BY LENGTH(useragent) DESC", + "SELECT * FROM {browscap} WHERE '%s' LIKE useragent ORDER BY LENGTH(useragent) DESC", $useragent, 0, 1)); // A couple of fieldnames not in our database, provided for // compatibility with PHP's get_browser() @@ -43,7 +44,8 @@ function browscap_get_browser($useragent if ($return_array) { return get_object_vars($browserinfo); - } else { + } + else { return $browserinfo; } } @@ -101,7 +103,7 @@ function _browscap_import() { // If we can, download the zipped version and extract the file if (is_callable('zip_open')) { $browscapzipfile = "$path/csv_browscap_$server.zip"; - $browscapzip = drupal_http_request('http://www.garykeith.com/browsers/stream.asp?CSV_BrowsCapZIP'); + $browscapzip = drupal_http_request('http://browsers.garykeith.com/stream.asp?CSV_BrowsCapZIP'); if ($browscapzip->error or !trim($browscapzip->data)) { watchdog('browscap', "Couldn't retrieve updated browscap: ".$browscapzip->error); return; @@ -125,8 +127,9 @@ function _browscap_import() { } unlink($browscapzipfile); // Can't handle zip, get the unzipped version - } else { - $browscap = drupal_http_request('http://www.garykeith.com/browsers/stream.asp?BrowsCapCSV'); + } + else { + $browscap = drupal_http_request('http://browsers.garykeith.com/stream.asp?BrowsCapCSV'); if ($browscap->error or !trim($browscap->data)) { watchdog('browscap', "Couldn't retrieve updated browscap: ".$browscap->error); return; @@ -143,41 +146,53 @@ function _browscap_import() { // Ignore the first two rows (column headers & version info) fgetcsv($browscapfp, 1000); fgetcsv($browscapfp, 1000); while (($browserinfo = fgetcsv($browscapfp, 1000)) != FALSE) { + $parent = $browserinfo[0]; + $useragent = $browserinfo[1]; // Strip brackets - $useragent = substr($browserinfo[0], 1, -1); + $useragent = substr($useragent, 1, -1); // Replace wildcards with SQL equivalents - $useragent = strtr($useragent, '*?', '%_'); - $parent = $browserinfo[1]; - $browser = $browserinfo[2]; - $version = $browserinfo[3]; - $majorversion = $browserinfo[4]; - $minorversion = $browserinfo[5]; - $platform = $browserinfo[6]; - $authenticodeupdate = $browserinfo[7]; - if ($browserinfo[8] == 'default') { + $useragent = strtr($useragent, '*?', '%_'); + $browser = $browserinfo[2]; + $version = $browserinfo[3]; + $majorversion = $browserinfo[4]; + $minorversion = $browserinfo[5]; + $platform = $browserinfo[6]; + $alpha = _browscap_boolean($browserinfo[7]); //new + $beta = _browscap_boolean($browserinfo[8]); + $win16 = _browscap_boolean($browserinfo[91]); + $win32 = _browscap_boolean($browserinfo[10]); + $win64 = _browscap_boolean($browserinfo[11]); + $frames = _browscap_boolean($browserinfo[12]); + $iframes = _browscap_boolean($browserinfo[13]); + $htmltables = _browscap_boolean($browserinfo[14]); + $cookies = _browscap_boolean($browserinfo[15]); + $backgroundsounds = _browscap_boolean($browserinfo[16]); + $authenticodeupdate = $browserinfo[17]; + $cdf = _browscap_boolean($browserinfo[18]); + $vbscript = _browscap_boolean($browserinfo[19]); + $javaapplets = _browscap_boolean($browserinfo[20]); + $javascript = _browscap_boolean($browserinfo[21]); + $activexcontrols = _browscap_boolean($browserinfo[22]); + $stripper = _browscap_boolean($browserinfo[23]); + $isBanned = _browscap_boolean($browserinfo[24]); //new + $wap = _browscap_boolean($browserinfo[25]); + $isMobileDevice = _browscap_boolean($browserinfo[26]); //new + $isSyndicationReader = _browscap_boolean($browserinfo[27]); //new + $crawler = _browscap_boolean($browserinfo[28]); + $css = _browscap_boolean($browserinfo[29]); //new + if ($browserinfo[30] == 'default') { $cssversion = -1; - } else { + } + else { $cssversion = $browserinfo[8]; } - $frames = _browscap_boolean($browserinfo[9]); - $iframes = _browscap_boolean($browserinfo[10]); - $htmltables = _browscap_boolean($browserinfo[11]); - $cookies = _browscap_boolean($browserinfo[12]); - $backgroundsounds = _browscap_boolean($browserinfo[13]); - $vbscript = _browscap_boolean($browserinfo[14]); - $javascript = _browscap_boolean($browserinfo[15]); - $javaapplets = _browscap_boolean($browserinfo[16]); - $activexcontrols = _browscap_boolean($browserinfo[17]); - $cdf = _browscap_boolean($browserinfo[18]); - $aol = _browscap_boolean($browserinfo[19]); - $beta = _browscap_boolean($browserinfo[20]); - $win16 = _browscap_boolean($browserinfo[21]); - $crawler = _browscap_boolean($browserinfo[22]); - $stripper = _browscap_boolean($browserinfo[23]); - $wap = _browscap_boolean($browserinfo[24]); - $netclr = _browscap_boolean($browserinfo[25]); + $supportsCSS = _browscap_boolean($browserinfo[31]); //new + $aolversion = _browscap_boolean($browserinfo[32]); //new + $aol = _browscap_boolean($browserinfo[33]); + $netclr = _browscap_boolean($browserinfo[34]); + $clrversion = _browscap_boolean($browserinfo[35]); //new - db_query('REPLACE {browscap} (useragent,parent,browser,version,'. + db_query('REPLACE {browscap} (useragent, parent, browser, version,'. 'majorversion,minorversion,platform,authenticodeupdate,'. 'cssversion,frames,iframes,htmltables,cookies,backgroundsounds,'. 'vbscript,javascript,javaapplets,activexcontrols,cdf,aol,'. @@ -220,7 +235,7 @@ function _browscap_import() { // using cache_clear_all('browscap:', TRUE); variable_set('browscap_version', $browscapversion); - watchdog('browscap', "New version of browscap imported: $browscapversion"); + watchdog('browscap', t('New version of browscap imported: %browscapversion', array('%browscapversion' => $browscapversion))); } } @@ -404,5 +419,3 @@ function browscap_top_useragents($view = print theme('page', $output, $title); } - -?>