Esempio n. 1
0
 public function __construct()
 {
     require_once WURFL_DIR . 'Application.php';
     /* $persistenceDir = RESOURCES_DIR.'storage/persistence';
     		$cacheDir = RESOURCES_DIR.'storage/cache'; */
     $persistenceDir = Yii::app()->getRuntimePath() . '/WURFL/storage/persistence';
     $cacheDir = Yii::app()->getRuntimePath() . '/WURFL/storage/cache';
     $cacheServer = Yii::app()->cache->getServers();
     $cache_host = $cacheServer[0]->host;
     $cache_port = $cacheServer[0]->port;
     $wurflConfig = new WURFL_Configuration_InMemoryConfig();
     $wurflConfig->wurflFile(RESOURCES_DIR . 'wurfl.zip');
     $wurflConfig->matchMode('performance');
     $wurflConfig->persistence('file', array('dir' => $persistenceDir));
     //$wurflConfig->cache('memcache', array('host' => $cache_host,'port'=>$cache_port, 'namespace'=>'wurfl', 'expiration' => 36000));
     $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000));
     $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig);
     $this->wurflManager = $wurflManager = $wurflManagerFactory->create();
     if (isset($_REQUEST['userAgent'])) {
         $userAgent = $_REQUEST['userAgent'];
         $this->_device = $wurflManager->getDeviceForUserAgent($userAgent);
     } elseif (isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])) {
         $userAgent = $_SERVER['HTTP_X_OPERAMINI_PHONE_UA'];
         $this->_device = $wurflManager->getDeviceForUserAgent($userAgent);
     } else {
         $this->_device = $wurflManager->getDeviceForHttpRequest($_SERVER);
     }
     $this->brand = strtolower($this->_device->getCapability('brand_name'));
     $this->model = strtolower($this->_device->getCapability('model_name'));
 }
Esempio n. 2
0
 private function _load_wrfl()
 {
     if ($this->device == null) {
         $wurflDir = Yii::getPathOfAlias($this->wurflDir);
         $persistenceDir = Yii::getPathOfAlias($this->persistenceDir);
         $cacheDir = Yii::getPathOfAlias($this->cacheDir);
         require_once realpath($wurflDir . '/Application.php');
         Yii::registerAutoloader(array('WURFL_ClassLoader', 'loadClass'));
         // Create WURFL Configuration
         $wurflConfig = new WURFL_Configuration_InMemoryConfig();
         // Set location of the WURFL File
         $wurflConfig->wurflFile(realpath(Yii::getPathOfAlias($this->wurflFileDir) . '/wurfl.zip'));
         // Set the match mode for the API ('performance' or 'accuracy')
         $wurflConfig->matchMode($this->matchMode);
         // Setup WURFL Persistence
         $wurflConfig->persistence('file', array('dir' => $persistenceDir));
         // Setup Caching
         $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => $this->expiration));
         // Create a WURFL Manager Factory from the WURFL Configuration
         $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig);
         // Create a WURFL Manager
         /* @var $wurflManager WURFL_WURFLManager */
         $wurflManager = $wurflManagerFactory->create();
         $this->device = $wurflManager->getDeviceForHttpRequest($_SERVER);
     }
 }
Esempio n. 3
0
 public static function isSmartphone()
 {
     $wurflDir = OW_DIR_LIB . 'wurfl' . DS;
     $resourcesDir = OW_DIR_PLUGINFILES . 'base' . DS . 'wurfl' . DS;
     if (defined('OW_PLUGIN_XP') && OW_PLUGIN_XP) {
         $resourcesDir = OW_DIR_STATIC_PLUGIN . 'base' . DS . 'wurfl' . DS;
     }
     require_once $wurflDir . 'Application.php';
     $persistenceDir = $resourcesDir . 'persistence' . DS;
     $cacheDir = $resourcesDir . 'cache' . DS;
     //        if ( !file_exists($wurflDir) )
     //        {
     //            mkdir($wurflDir);
     //            chmod($wurflDir, 0777);
     //            mkdir($persistenceDir);
     //            chmod($persistenceDir, 0777);
     //            mkdir($cacheDir);
     //            chmod($cacheDir, 0777);
     //        }
     $wurflConfig = new WURFL_Configuration_InMemoryConfig();
     $wurflConfig->wurflFile($wurflDir . 'wurfl.zip');
     $wurflConfig->matchMode('accuracy');
     $wurflConfig->allowReload(true);
     $wurflConfig->capabilityFilter(array("device_os", "device_os_version", "is_tablet", "is_wireless_device", "mobile_browser", "mobile_browser_version", "pointing_method", "preferred_markup", "resolution_height", "resolution_width", "ux_full_desktop", "xhtml_support_level"));
     $wurflConfig->persistence('file', array('dir' => $persistenceDir));
     $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000));
     $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig);
     $wurflManager = $wurflManagerFactory->create();
     $requestingDevice = $wurflManager->getDeviceForHttpRequest($_SERVER);
     return filter_var($requestingDevice->getVirtualCapability('is_smartphone'), FILTER_VALIDATE_BOOLEAN);
 }
Esempio n. 4
0
 public function __construct()
 {
     /*
      * This is an example of configuring the WURFL PHP API
      */
     // Enable all error logging while in development
     ini_set('display_errors', 'on');
     error_reporting(E_ALL);
     $wurflDir = dirname(__FILE__) . '/wurfl/WURFL';
     $resourcesDir = dirname(__FILE__) . '/wurfl/resources';
     require_once $wurflDir . '/Application.php';
     $persistenceDir = $resourcesDir . '/storage/persistence';
     $cacheDir = $resourcesDir . '/storage/cache';
     // Create WURFL Configuration
     $wurflConfig = new WURFL_Configuration_InMemoryConfig();
     // Set location of the WURFL File
     $wurflConfig->wurflFile($resourcesDir . '/wurfl.zip');
     // Set the match mode for the API ('performance' or 'accuracy')
     $wurflConfig->matchMode('performance');
     // Setup WURFL Persistence
     $wurflConfig->persistence('file', array('dir' => $persistenceDir));
     // Setup Caching
     $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000));
     // Create a WURFL Manager Factory from the WURFL Configuration
     $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig);
     // Create a WURFL Manager
     /* @var $wurflManager WURFL_WURFLManager */
     $this->wurflManager = $wurflManagerFactory->create();
     $this->wurflDevice = $this->wurflManager->getDeviceForHttpRequest($_SERVER);
 }
Esempio n. 5
0
/**
 * Initialize WURFL
 *
 */
function wurfl_init($args = array())
{
    if (!isset($args['mode'])) {
        $args['mode'] = 'performance';
    }
    sys::import('modules.wurfl.xarincludes.WURFL.Application');
    $resourcesDir = sys::code() . 'modules/wurfl/xarincludes/resources';
    $persistenceDir = $resourcesDir . '/storage/persistence';
    $cacheDir = $resourcesDir . '/storage/cache';
    // Create WURFL Configuration
    $wurflConfig = new WURFL_Configuration_InMemoryConfig();
    // Set location of the WURFL File
    $wurflConfig->wurflFile($resourcesDir . '/wurfl.xml');
    // Set the match mode for the API ('performance' or 'accuracy')
    $wurflConfig->matchMode($args['mode']);
    // Setup WURFL Persistence
    $wurflConfig->persistence('file', array('dir' => $persistenceDir));
    // Setup Caching
    $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000));
    // Create a WURFL Manager Factory from the WURFL Configuration
    $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig);
    // Create a WURFL Manager
    /* @var $wurflManager WURFL_WURFLManager */
    $wurflManager = $wurflManagerFactory->create();
    return $wurflManager;
}
Esempio n. 6
0
 public static function getInfo()
 {
     $deviceId = $modelName = "";
     // AMF was installed
     if (isset($_SERVER['AMF_ID'])) {
         $deviceId = isset($_SERVER['AMF_ID']) ? $_SERVER['AMF_ID'] : "";
         $modelName = isset($_SERVER['AMF_MODEL_NAME']) ? $_SERVER['AMF_MODEL_NAME'] : "";
     } else {
         if (!defined("WURFL_DIR")) {
             define("WURFL_DIR", Yii::getPathOfAlias("application.vendors.WURFL_CHACHA") . "/");
             define("RESOURCES_DIR", WURFL_DIR . "Resources/");
         }
         require_once WURFL_DIR . 'Application.php';
         //$wurflConfigFile = RESOURCES_DIR . 'wurfl-config.xml';
         //$wurflConfig = new WURFL_Configuration_XmlConfig($wurflConfigFile);
         $persistenceDir = RESOURCES_DIR . 'storage/persistence';
         $cacheServer = Yii::app()->cache->getServers();
         $cache_host = $cacheServer[0]->host;
         $cache_port = $cacheServer[0]->port;
         $wurflConfig = new WURFL_Configuration_InMemoryConfig();
         $wurflConfig->wurflFile(RESOURCES_DIR . 'wurfl.zip');
         $wurflConfig->matchMode('performance');
         $wurflConfig->persistence('file', array('dir' => $persistenceDir));
         $wurflConfig->cache('memcache', array('host' => $cache_host, 'port' => $cache_port, 'namespace' => 'wurfl', 'expiration' => 36000));
         $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig);
         $wurflManager = $wurflManagerFactory->create();
         $device = $wurflManager->getDeviceForHttpRequest($_SERVER);
         $modelName = $device->getCapability("model_name");
         if (Utils::appleDevice('iPad')) {
             $deviceId = 'apple_ipad_ver1_sub42';
         } else {
             $deviceId = $device->id;
         }
     }
     return array('deviceId' => $deviceId, 'modelName' => $modelName);
 }
Esempio n. 7
0
 protected function createWurflClass()
 {
     if ($this->arguments->altClass) {
         $class_name = $this->arguments->altClass->value;
         if (class_exists($class_name, false) && is_subclass_of($class_name, 'WURFL_WURFLManager')) {
             $this->wurfl = new $class_name();
         } else {
             throw new WURFL_WURFLCLIInvalidArgumentException("Error: {$class_name} must extend WURFL_WURFLManager.");
         }
     } else {
         $persistenceDir = RESOURCES_DIR . '/storage/persistence';
         $cacheDir = RESOURCES_DIR . '/storage/cache';
         // Create WURFL Configuration
         $wurflConfig = new WURFL_Configuration_InMemoryConfig();
         // Set location of the WURFL File
         $wurflConfig->wurflFile(RESOURCES_DIR . '/wurfl.zip');
         // Set the match mode for the API ('performance' or 'accuracy')
         $wurflConfig->matchMode('performance');
         // Setup WURFL Persistence
         $wurflConfig->persistence('file', array('dir' => $persistenceDir));
         // Setup Caching
         $wurflConfig->cache('null');
         $wurflConfig->allowReload(true);
         // Create a WURFL Manager Factory from the WURFL Configuration
         $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig);
         // Create a WURFL Manager
         $this->wurfl = $wurflManagerFactory->create();
     }
 }
Esempio n. 8
0
<?php

// Enable all error logging while in development
ini_set('display_errors', 'on');
error_reporting(E_ALL);
$wurflDir = dirname(__FILE__) . '/../../WURFL';
$resourcesDir = dirname(__FILE__) . '/../resources';
require_once $wurflDir . '/Application.php';
$persistenceDir = $resourcesDir . '/storage/persistence';
$cacheDir = $resourcesDir . '/storage/cache';
$wurflConfig = new WURFL_Configuration_InMemoryConfig();
$wurflConfig->wurflFile($resourcesDir . '/wurfl.zip');
$wurflConfig->matchMode('performance');
$wurflConfig->persistence('file', array('dir' => $persistenceDir));
$wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000));
$wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig);
$wurflManager = $wurflManagerFactory->create();
$wurflInfo = $wurflManager->getWURFLInfo();
define("XHTML_ADVANCED", "xhtml_advanced.php");
define("XHTML_SIMPLE", "xhtml_simple.php");
define("WML", "wml.php");
$device = $wurflManager->getDeviceForHttpRequest($_SERVER);
$xhtml_lvl = $device->getCapability('xhtml_support_level');
$contentType = $device->getCapability('xhtmlmp_preferred_mime_type');
$page = getPageFromMarkup($xhtml_lvl);
renderPage($page, $contentType);
function getPageFromMarkup($xhtml_lvl)
{
    /* xhtml_support_level possible values:
     * -1: No XHTML Support
     *  0: Poor XHTML Support
if (count($arr_files) == 0) {
    exit;
}
asort($arr_files);
$arr_files = array_slice($arr_files, 0, $process_at_once);
if (extension_loaded('xmlreader')) {
    // Init WURFL library for mobile device detection
    $wurflDir = _TRACK_LIB_PATH . '/wurfl/WURFL';
    $resourcesDir = _TRACK_LIB_PATH . '/wurfl/resources';
    require_once $wurflDir . '/Application.php';
    $persistenceDir = _CACHE_COMMON_PATH . '/wurfl-persistence';
    //$persistenceDir = dirname(__FILE__).'/cache/wurfl-persistence';
    $cacheDir = _CACHE_COMMON_PATH . '/wurfl-cache';
    $wurflConfig = new WURFL_Configuration_InMemoryConfig();
    $wurflConfig->wurflFile(_TRACK_STATIC_PATH . '/wurfl/wurfl_1.5.3.xml');
    $wurflConfig->matchMode('accuracy');
    $wurflConfig->allowReload(true);
    $wurflConfig->persistence('file', array('dir' => $persistenceDir));
    $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000));
    $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig);
    $wurflManager = $wurflManagerFactory->create();
}
//dmp($arr_files);
foreach ($arr_files as $cur_file) {
    echo $cur_file . ' : ';
    $name_parts = explode('_', $cur_file);
    if (count($name_parts) > 2 && !empty($tracklist[$name_parts[2]]['timeshift'])) {
        $slave_timeshift = $tracklist[$name_parts[2]]['timeshift'];
    } else {
        $slave_timeshift = 0;
    }
function load_wurfl_manager()
{
    global $wurflManager;
    if (defined('_XMLREADER_INSTALLED') && _XMLREADER_INSTALLED || extension_loaded('xmlreader')) {
        // Init WURFL library for mobile device detection
        $wurflDir = _TRACK_LIB_PATH . '/wurfl/WURFL';
        $resourcesDir = _TRACK_LIB_PATH . '/wurfl/resources';
        require_once $wurflDir . '/Application.php';
        $persistenceDir = _CACHE_COMMON_PATH . '/wurfl-persistence';
        $cacheDir = _CACHE_COMMON_PATH . '/wurfl-cache';
        $wurflConfig = new WURFL_Configuration_InMemoryConfig();
        $wurflConfig->wurflFile(_TRACK_STATIC_PATH . '/wurfl/wurfl_1.5.3.xml');
        $wurflConfig->matchMode('accuracy');
        $wurflConfig->allowReload(true);
        $wurflConfig->persistence('file', array('dir' => $persistenceDir));
        $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000));
        $wurflManagerFactory = new WURFL_WURFLManagerFactory($wurflConfig);
        $wurflManager = $wurflManagerFactory->create();
    }
}
Esempio n. 11
0
 */
if (!class_exists('WURFL_ClassLoader', false)) {
    require_once dirname(__FILE__) . '/../WURFL/Application.php';
}
if (!isset($wurflConfig)) {
    ///////////////////////////////////////////////////////////////
    // START WURFL API CONFIGURATION
    // You must have a $wurflConfig variable with your WURFL API
    // configuration in this block so the Introspector can use it
    ///////////////////////////////////////////////////////////////
    $resourcesDir = dirname(__FILE__) . '/resources';
    $persistenceDir = $resourcesDir . '/storage/persistence';
    $cacheDir = $resourcesDir . '/storage/cache';
    $wurflConfig = new WURFL_Configuration_InMemoryConfig();
    $wurflConfig->wurflFile($resourcesDir . '/wurfl.zip');
    $wurflConfig->matchMode(WURFL_Configuration_Config::MATCH_MODE_PERFORMANCE);
    //$wurflConfig->matchMode(WURFL_Configuration_Config::MATCH_MODE_ACCURACY);
    $wurflConfig->persistence('file', array('dir' => $persistenceDir));
    $wurflConfig->cache('file', array('dir' => $cacheDir, 'expiration' => 36000));
    ///////////////////////////////////////////////////////////////
    // END WURFL API CONFIGURATION
    // Do not edit anything below this line
    ///////////////////////////////////////////////////////////////
}
class ScientiaMobileIntrospector_Controller
{
    protected $action;
    protected $http_headers = array();
    protected $capabilities = array();
    protected $matcher_history = false;
    protected $response = array('success' => false);