WordPress.org

Plugin Directory

Changeset 625534


Ignore:
Timestamp:
11/15/12 07:05:42 (5 years ago)
Author:
raulillana
Message:

tag 2.1 and add 2.2 to trunk

Location:
awebsome-browser-selector
Files:
3 added
2 edited

Legend:

Unmodified
Added
Removed
  • awebsome-browser-selector/trunk/awebsome-browser-selector.php

    r574266 r625534  
    44    Plugin URI: http://plugins.awebsome.com 
    55    Description: Empower your CSS selectors. Write specific CSS code for each Platform/Browser/Version the right way. 
    6     Version: 2.1 
     6    Version: 2.2 
    77    Author: Raul Illana <r@awebsome.com> 
    88    Author URI: http://raulillana.com 
     
    3939     
    4040    /** 
    41      * Parses the User Agent (UA) String 
    42      *  
    43      * Code based in https://github.com/raulillana/PhpUserAgent 
    44      *  
    45      * @param $ua string Server User Agent 
    46      * @return string    Human Readable String (platform + browser + version) 
     41     * Parses the user agent string into browser, version and platform 
     42     *  
     43     * @author Jesse G. Donat <donatj@gmail.com> 
     44     * @link https://github.com/donatj/PhpUserAgent 
     45     * @param string $ua 
     46     * @return array an array with browser, version and platform keys 
    4747     *  
    4848     * @since 2.0 
     
    5151    { 
    5252        if( is_null($ua) ) $ua = $_SERVER['HTTP_USER_AGENT']; 
    53      
     53         
    5454        $data = array( 
    5555            'platform' => '', 
     
    5757            'version'  => '', 
    5858        ); 
    59      
     59         
    6060        if( preg_match('/\((.*?)\)/im', $ua, $regs) ) 
    6161        { 
    62             # (?<platform>Android|iPhone|iPad|Windows|Linux|Macintosh|Windows Phone OS|Silk|linux-gnu|BlackBerry)(?: x86_64)?(?: NT)?(?:[ /][0-9._]+)*(;|$) 
    63             preg_match_all('%(?P<platform>Android|iPhone|iPad|Windows|Linux|Macintosh|Windows Phone OS|Silk|linux-gnu|BlackBerry)(?: x86_64)?(?: NT)?(?:[ /][0-9._]+)*(;|$)%im', $regs[1], $result, PREG_PATTERN_ORDER); 
     62            /* 
     63            (?P<platform>Android|CrOS|iPhone|iPad|Linux|Macintosh|Windows\ Phone\ OS|Windows|Silk|linux-gnu|BlackBerry|Xbox) 
     64            (?:\ [^;]*)? 
     65            (?:;|$) 
     66            */ 
     67            preg_match_all('/(?P<platform>Android|CrOS|iPhone|iPad|Linux|Macintosh|Windows\ Phone\ OS|Windows|Silk|linux-gnu|BlackBerry|Nintendo\ Wii|Xbox)(?:\ [^;]*)?(?:;|$)/imx', $regs[1], $result, PREG_PATTERN_ORDER); 
     68         
     69            $priority = array('Android', 'Xbox'); 
    6470             
    6571            $result['platform'] = array_unique($result['platform']); 
     
    6773            if( count($result['platform']) > 1 ) 
    6874            { 
    69                 if( ($key = array_search('Android', $result['platform'])) !== false ) $data['platform']  = $result['platform'][$key]; 
    70             } 
    71             elseif( isset($result['platform'][0]) ) 
    72             { 
    73                 $data['platform'] = $result['platform'][0]; 
    74             } 
    75         } 
    76          
    77         # (?<browser>Camino|Kindle|Firefox|Safari|MSIE|AppleWebKit|Chrome|IEMobile|Opera|Silk|Lynx|Version|Wget)(?:[/ ])(?<version>[0-9.]+) 
    78         preg_match_all('%(?P<browser>Camino|Kindle|Firefox|Safari|MSIE|AppleWebKit|Chrome|IEMobile|Opera|Silk|Lynx|Version|Wget|curl)(?:[/ ])(?P<version>[0-9.]+)%im', $ua, $result, PREG_PATTERN_ORDER); 
     75                if( $keys = array_intersect($priority, $result['platform']) ) $data['platform'] = reset($keys); 
     76                else $data['platform'] = $result['platform'][0]; 
     77            } 
     78            elseif( isset($result['platform'][0]) ) $data['platform'] = $result['platform'][0]; 
     79        } 
    7980         
    8081        if( $data['platform'] == 'linux-gnu' ) $data['platform'] = 'Linux'; 
    81          
    82         if( ($key = array_search('Kindle', $result['browser'])) !== false || ($key = array_search('Silk', $result['browser'])) !== false ) 
     82        if( $data['platform'] == 'CrOS' ) $data['platform'] = 'Chrome OS'; 
     83     
     84        /* 
     85        (?<browser>Camino|Kindle|Kindle\ Fire\ Build|Firefox|Safari|MSIE|AppleWebKit|Chrome|IEMobile|Opera|Silk|Lynx|Version|Wget|curl|PLAYSTATION\ \d+) 
     86        (?:;?) 
     87        (?:(?:[/\ ])(?<version>[0-9.]+)|/(?:[A-Z]*)) 
     88        */ 
     89        preg_match_all('%(?P<browser>Camino|Kindle|Kindle\ Fire\ Build|Firefox|Safari|MSIE|AppleWebKit|Chrome|IEMobile|Opera|Silk|Lynx|Version|Wget|curl|PLAYSTATION\ \d+)(?:;?)(?:(?:[/ ])(?P<version>[0-9.]+)|/(?:[A-Z]*))%x',  
     90            $ua, $result, PREG_PATTERN_ORDER); 
     91         
     92        $key = 0; 
     93         
     94        $data['browser'] = $result['browser'][0]; 
     95        $data['version'] = $result['version'][0]; 
     96         
     97        if( ($key = array_search('Kindle Fire Build', $result['browser'])) !== false || ($key = array_search('Silk', $result['browser'])) !== false ) 
     98        { 
     99            $data['browser']  = $result['browser'][$key] == 'Silk' ? 'Silk' : 'Kindle'; 
     100            $data['platform'] = 'Kindle Fire'; 
     101             
     102            if( !($data['version']  = $result['version'][$key]) ) $data['version'] = $result['version'][array_search( 'Version', $result['browser'] )]; 
     103        } 
     104        elseif( ($key = array_search('Kindle', $result['browser'])) !== false ) 
    83105        { 
    84106            $data['browser']  = $result['browser'][$key]; 
     
    88110        elseif( $result['browser'][0] == 'AppleWebKit' ) 
    89111        { 
    90             if( ($data['platform'] == 'Android' && !($key = 0)) || $key = array_search('Chrome', $result['browser']) ) 
     112            if( ( $data['platform'] == 'Android' && !($key = 0) ) || $key = array_search('Chrome', $result['browser']) ) 
    91113            { 
    92114                $data['browser'] = 'Chrome'; 
     
    100122                if( ($vkey = array_search('Version', $result['browser'])) !== false ) $key = $vkey; 
    101123            } 
    102             elseif( $key = array_search('Kindle', $result['browser']) ) $data['browser'] = 'Kindle'; 
    103124            elseif( $key = array_search('Safari', $result['browser']) ) 
    104125            { 
    105126                $data['browser'] = 'Safari'; 
    106127                 
    107                 if( ($vkey = array_search('Version', $result['browser'] )) !== false ) $key = $vkey; 
    108             } 
    109             else $key = 0; 
     128                if( ($vkey = array_search('Version', $result['browser'])) !== false ) $key = $vkey; 
     129            } 
    110130             
    111131            $data['version'] = $result['version'][$key]; 
     
    129149            $data['version'] = $result['version'][$key]; 
    130150        } 
    131         elseif( $key = array_search('Kindle', $result['browser']) ) 
    132         { 
    133             $data['browser'] = 'Kindle'; 
    134             $data['platform'] = 'Kindle'; 
    135         } 
    136         else 
    137         { 
    138             $data['browser'] = $result['browser'][0]; 
    139             $data['version'] = $result['version'][0]; 
     151        elseif( $key = array_search('PLAYSTATION 3', $result['browser']) !== false ) 
     152        { 
     153            $data['platform'] = 'PLAYSTATION 3'; 
     154            $data['browser']  = 'NetFront'; 
    140155        } 
    141156         
     
    172187        $p = ''; 
    173188         
     189        # Android|CrOS|iPhone|iPad|Linux|Macintosh|Windows\ Phone\ OS|Windows|Silk|linux-gnu|BlackBerry|Xbox 
    174190        switch($platform) 
    175191        { 
    176192            // desktop 
    177             case 'Windows'   : $p = 'win'; break; 
    178             case 'Linux'     : $p = 'lnx'; break; 
    179             case 'Macintosh' : $p = 'mac'; break; 
     193            case 'Windows'   : $p = 'win';  break; 
     194            case 'Linux'     : $p = 'lnx';  break; 
     195            case 'Macintosh' : $p = 'mac';  break; 
     196            case 'ChromeOS'  : $p = 'cros'; break; 
    180197             
    181198            // mobile 
     
    188205            case 'BlackBerry'       : $p = 'blackberry'; break; 
    189206             
     207            // consoles 
     208            case 'Xbox'          : $p = 'xbox'; break; 
     209            case 'PLAYSTATION 3' : $p = 'ps3';  break; 
     210            case 'Nintendo Wii'  : $p = 'wii'; break; 
     211             
    190212            default : break; 
    191213        } 
     
    206228        $b = ''; 
    207229         
     230        # Camino|Kindle|Kindle\ Fire\ Build|Firefox|Safari|MSIE|AppleWebKit|Chrome|IEMobile|Opera|Silk|Lynx|Version|Wget|curl|PLAYSTATION\ 
    208231        switch($browser) 
    209232        { 
  • awebsome-browser-selector/trunk/readme.txt

    r574266 r625534  
    11=== Awebsome! Browser Selector === 
    22Contributors: raulillana 
    3 Tags: awebsome, browser, selector, specific, CSS 
     3Tags: awebsome, browser, selector, specific, CSS, UA 
    44Requires at least: 3.0 
    55Tested up to: 3.4.1 
     
    1919* [JS CSS Browser Selector](http://rafael.adm.br/css_browser_selector) from [Rafael Lima](http://rafael.adm.br "Rafael Lima") 
    2020 
    21 Based in the code from [PHP User Agent Parser](http://donatstudios.com/PHP-Parser-HTTP_USER_AGENT "PHP User Agent Parser") from [Jesse Donat](http://donatstudios.com "Jesse Donat") and [fork'd by me](https://github.com/donatj/PhpUserAgent "PHP User Agent Parser fork by Raul Illana"). 
     21= Based in = 
     22 
     23* [PhpUserAgent](http://donatstudios.com/PHP-Parser-HTTP_USER_AGENT "PHP User Agent Parser") from [Jesse Donat](http://donatstudios.com "Jesse Donat"). 
    2224 
    2325= Available Platform Codes = 
     
    2830*   **lnx** - x11 and Linux distros 
    2931*   **mac** - MacOS 
     32*   **cros** - ChromeOS 
    3033 
    3134**Mobile** 
     
    3841*   **kindle** - Kindle 
    3942*   **kindlefire** - Kindle Fire 
     43 
     44**Consoles** 
     45 
     46*   **xbox** - Xbox 360 
     47*   **ps3** - PlayStation 3 
     48*   **wii** - Nintendo Wii 
    4049 
    4150= Available Browser Codes = 
     
    109118* Codes managing UI. 
    110119 
     120= 2.2 = 
     121 
     122* Updated PhpUserAgent. 
     123* Added consoles platform styles. 
     124 
    111125= 2.1 = 
    112126 
     
    147161== Upgrade Notice == 
    148162 
     163= 2.2 = 
     164 
     165Updated parser class. 
     166Added consoles platform styles. 
     167 
    149168= 2.1 = 
    150169 
Note: See TracChangeset for help on using the changeset viewer.