TeraWurflUserAgentMatchers
[ class tree: TeraWurflUserAgentMatchers ] [ index: TeraWurflUserAgentMatchers ] [ all elements ]

Source for file BlackBerryUserAgentMatcher.php

Documentation is available at BlackBerryUserAgentMatcher.php

  1. <?php
  2. /**
  3.  * Tera_WURFL - PHP MySQL driven WURFL
  4.  * 
  5.  * Tera-WURFL was written by Steve Kamerman, and is based on the
  6.  * Java WURFL Evolution package by Luca Passani and WURFL PHP Tools by Andrea Trassati.
  7.  * This version uses a MySQL database to store the entire WURFL file, multiple patch
  8.  * files, and a persistent caching mechanism to provide extreme performance increases.
  9.  * 
  10.  * @package TeraWurflUserAgentMatchers
  11.  * @author Steve Kamerman <stevekamerman AT gmail.com>
  12.  * @version Stable 2.1.3 $Date: 2010/09/18 15:43:21
  13.  * @license http://www.mozilla.org/MPL/ MPL Vesion 1.1
  14.  */
  15. /**
  16.  * Provides a specific user agent matching technique
  17.  * @package TeraWurflUserAgentMatchers
  18.  */
  19.     
  20.     public static $constantIDs array(
  21.         "blackberry_generic_ver2",
  22.         "blackberry_generic_ver3_sub2",
  23.         "blackberry_generic_ver3_sub30",
  24.         "blackberry_generic_ver3_sub50",
  25.         "blackberry_generic_ver3_sub60",
  26.         "blackberry_generic_ver3_sub70",
  27.         "blackberry_generic_ver4",
  28.     );
  29.     
  30.     public function __construct(TeraWurfl $wurfl){
  31.         parent::__construct($wurfl);
  32.     }
  33.     public function applyConclusiveMatch($ua){
  34.         $ua preg_replace('/^BlackBerry (\d+.*)$/','BlackBerry$1',$ua);
  35.         $tolerance UserAgentUtils::firstSlash($ua);
  36.         $this->wurfl->toLog("Applying ".get_class($this)." Conclusive Match: RIS with threshold  $tolerance",LOG_INFO);
  37.         //TODO: evaluate RIS vs. LD for this matcher
  38.         return $this->risMatch($ua$tolerance);
  39.     }
  40.     public function recoveryMatch($ua){
  41.         // BlackBerry
  42.         $ua preg_replace('/^BlackBerry (\d+.*)$/','BlackBerry$1',$ua);
  43.         $this->wurfl->toLog("Applying ".get_class($this)." recovery match ($ua)",LOG_INFO);
  44.         if(self::startsWith($ua,"BlackBerry")){
  45.             $position UserAgentUtils::firstSlash($ua);
  46.             if($position !== false && ($position 4<= strlen($ua)){
  47.                 $version substr($ua,$position+1,$position+4);
  48.                 $this->wurfl->toLog("BlackBerry version substring is $version",LOG_INFO);
  49.                 if (self::startsWith($version,"2.")) {
  50.                     return "blackberry_generic_ver2";
  51.                 }
  52.                 if (self::startsWith($version,"3.2")) {
  53.                     return "blackberry_generic_ver3_sub2";
  54.                 }
  55.                 if (self::startsWith($version,"3.3")) {
  56.                     return "blackberry_generic_ver3_sub30";
  57.                 }
  58.                 if (self::startsWith($version,"3.5")) {
  59.                     return "blackberry_generic_ver3_sub50";
  60.                 }
  61.                 if (self::startsWith($version,"3.6")) {
  62.                     return "blackberry_generic_ver3_sub60";
  63.                 }
  64.                 if (self::startsWith($version,"3.7")) {
  65.                     return "blackberry_generic_ver3_sub70";
  66.                 }
  67.                 if (self::startsWith($version,"4.")) {
  68.                     return "blackberry_generic_ver4";
  69.                 }
  70.                 $this->wurfl->toLog("No version matched, User-Agent: $ua version: $version",LOG_INFO);
  71.             }   
  72.         }     
  73.         return WurflConstants::$GENERIC;
  74.     }
  75. }

Documentation generated on Sun, 19 Sep 2010 00:15:47 +0000 by phpDocumentor 1.4.3