Advertisement
manchumahara

Detect Mobile Device-UpPrev Plugin Common.php

May 31st, 2012
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 8.57 KB | None | 0 0
  1. <?php
  2.  
  3. require_once dirname( __FILE__ ).'/options.php';
  4. if ( !class_exists( 'IworksOptions' ) ) {
  5.     require_once dirname( __FILE__ ).'/iworks.options.class.php';
  6. }
  7. require_once dirname( __FILE__ ).'/show_thubnail_on_admin_post_list.php';
  8.  
  9. $iworks_upprev_options = new IworksOptions();
  10. $iworks_upprev_options->set_option_function_name( 'iworks_upprev_options' );
  11. $iworks_upprev_options->set_option_prefix( IWORKS_UPPREV_PREFIX );
  12.  
  13. function iworks_upprev_options_init()
  14. {
  15.     global $iworks_upprev_options;
  16.     $iworks_upprev_options->options_init();
  17.     add_filter( 'plugin_row_meta', 'iworks_upprev_plugin_links', 10, 2 );
  18.     $text = __("<p>upPrev settings allows you to set the proprites of user notification showed when reader scroll down the page.</p>");
  19.     add_contextual_help( 'upprev/admin/index', $text );
  20. }
  21.  
  22. function iworks_upprev_activate()
  23. {
  24.     require_once dirname(__FILE__).'/options.php';
  25.     $iworks_upprev_options = new IworksOptions();
  26.     $iworks_upprev_options->set_option_function_name( 'iworks_upprev_options' );
  27.     $iworks_upprev_options->set_option_prefix( IWORKS_UPPREV_PREFIX );
  28.     $iworks_upprev_options->activate();
  29. }
  30.  
  31. function iworks_upprev_deactivate()
  32. {
  33.     global $iworks_upprev_options;
  34.     $iworks_upprev_options->deactivate();
  35. }
  36.  
  37. function iworks_upprev_check_mobile_device()
  38. {
  39.     global $iworks_upprev_options;
  40.     if ( $iworks_upprev_options->get_option( 'mobile_hide' ) != 1 ) {
  41.         return false;
  42.     }
  43.     $user_agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
  44.     $accept     = strtolower( $_SERVER['HTTP_ACCEPT'] );
  45.     /**
  46.      * tablets
  47.      */
  48.     if ( preg_match( '/(ipad|kindle|nook)/', $user_agent ) ) {
  49.         if ( $iworks_upprev_options->get_option( 'mobile_tablets' ) ) {
  50.             return true;
  51.         }
  52.         return false;
  53.     }
  54.     /**
  55.      * Start off with smart phones or smart devices
  56.      */
  57.     if (
  58.         0
  59.         or preg_match( '/ip[ao]d/', $user_agent )
  60.         or preg_match( '/iphone/', $user_agent ) //iPhone or iPod
  61.         or preg_match( '/android/', $user_agent ) //Android
  62.         or preg_match( '/opera mini/', $user_agent ) //Opera Mini
  63.         or preg_match( '/blackberry/', $user_agent ) //Blackberry
  64.         or preg_match( '/series ?60/', $user_agent ) //Symbian OS
  65.         or preg_match( '/(pre\/|palm os|palm|hiptop|avantgo|plucker|xiino|blazer|elaine)/', $user_agent ) //Palm OS
  66.         or preg_match( '/(iris|3g_t|windows ce|opera mobi|iemobile)/', $user_agent ) //Windows OS
  67.         or preg_match( '/(maemo|tablet|qt embedded|com2)/', $user_agent ) //Nokia Tablet
  68.     ) {
  69.         return true;
  70.     }
  71.     /**
  72.      * Now look for standard phones & mobile devices
  73.      */
  74.     //Mix of standard phones
  75.     if ( preg_match( '/(mini 9.5|vx1000|lge |m800|e860|u940|ux840|compal|wireless| mobi|ahong|lg380|lgku|lgu900|lg210|lg47|lg920|lg840|lg370|sam-r|mg50|s55|g83|t66|vx400|mk99|d615|d763|el370|sl900|mp500|samu3|samu4|vx10|xda_|samu5|samu6|samu7|samu9|a615|b832|m881|s920|n210|s700|c-810|_h797|mob-x|sk16d|848b|mowser|s580|r800|471x|v120|rim8|c500foma:|160x|x160|480x|x640|t503|w839|i250|sprint|w398samr810|m5252|c7100|mt126|x225|s5330|s820|htil-g1|fly v71|s302|-x113|novarra|k610i|-three|8325rc|8352rc|sanyo|vx54|c888|nx250|n120|mtk |c5588|s710|t880|c5005|i;458x|p404i|s210|c5100|teleca|s940|c500|s590|foma|samsu|vx8|vx9|a1000|_mms|myx|a700|gu1100|bc831|e300|ems100|me701|me702m-three|sd588|s800|8325rc|ac831|mw200|brew |d88|htc\/|htc_touch|355x|m50|km100|d736|p-9521|telco|sl74|ktouch|m4u\/|me702|8325rc|kddi|phone|lg |sonyericsson|samsung|240x|x320|vx10|nokia|sony cmd|motorola|up.browser|up.link|mmp|symbian|smartphone|midp|wap|vodafone|o2|pocket|kindle|mobile|psp|treo|vnd.rim|wml|nitro|nintendo|wii|xbox|archos|openweb|mini|docomo)/', $user_agent ) ) {
  76.         return true;
  77.     }
  78.     //Any falling through the cracks
  79.     if (
  80.         0
  81.         or strpos( $accept, 'text/vnd.wap.wml' ) > 0
  82.         or strpos( $accept, 'application/vnd.wap.xhtml+xml' ) > 0
  83.         or isset( $_SERVER['HTTP_X_WAP_PROFILE'] )
  84.         or isset( $_SERVER['HTTP_PROFILE'] )
  85.     )
  86.     {
  87.         return true;
  88.     }
  89.     //Catch all
  90.     if (
  91.         in_array(
  92.             substr( $user_agent, 0, 4 ),
  93.             array(
  94.                 '1207', '3gso', '4thp', '501i', '502i', '503i', '504i', '505i', '506i', '6310',
  95.                 '6590', '770s', '802s', 'a wa', 'acer', 'acs-', 'airn', 'alav', 'asus', 'attw',
  96.                 'au-m', 'aur ', 'aus ', 'abac', 'acoo', 'aiko', 'alco', 'alca', 'amoi', 'anex',
  97.                 'anny', 'anyw', 'aptu', 'arch', 'argo', 'bell', 'bird', 'bw-n', 'bw-u', 'beck',
  98.                 'benq', 'bilb', 'blac', 'c55/', 'cdm-', 'chtm', 'capi', 'cond', 'craw', 'dall',
  99.                 'dbte', 'dc-s', 'dica', 'ds-d', 'ds12', 'dait', 'devi', 'dmob', 'doco', 'dopo',
  100.                 'el49', 'erk0', 'esl8', 'ez40', 'ez60', 'ez70', 'ezos', 'ezze', 'elai', 'emul',
  101.                 'eric', 'ezwa', 'fake', 'fly-', 'fly_', 'g-mo', 'g1 u', 'g560', 'gf-5', 'grun',
  102.                 'gene', 'go.w', 'good', 'grad', 'hcit', 'hd-m', 'hd-p', 'hd-t', 'hei-', 'hp i',
  103.                 'hpip', 'hs-c', 'htc ', 'htc-', 'htca', 'htcg', 'htcp', 'htcs', 'htct', 'htc_',
  104.                 'haie', 'hita', 'huaw', 'hutc', 'i-20', 'i-go', 'i-ma', 'i230', 'iac', 'iac-',
  105.                 'iac/', 'ig01', 'im1k', 'inno', 'iris', 'jata', 'java', 'kddi', 'kgt', 'kgt/',
  106.                 'kpt ', 'kwc-', 'klon', 'lexi', 'lg g', 'lg-a', 'lg-b', 'lg-c', 'lg-d', 'lg-f',
  107.                 'lg-g', 'lg-k', 'lg-l', 'lg-m', 'lg-o', 'lg-p', 'lg-s', 'lg-t', 'lg-u', 'lg-w',
  108.                 'lg/k', 'lg/l', 'lg/u', 'lg50', 'lg54', 'lge-', 'lge/', 'lynx', 'leno', 'm1-w',
  109.                 'm3ga', 'm50/', 'maui', 'mc01', 'mc21', 'mcca', 'medi', 'meri', 'mio8', 'mioa',
  110.                 'mo01', 'mo02', 'mode', 'modo', 'mot ', 'mot-', 'mt50', 'mtp1', 'mtv ', 'mate',
  111.                 'maxo', 'merc', 'mits', 'mobi', 'motv', 'mozz', 'n100', 'n101', 'n102', 'n202',
  112.                 'n203', 'n300', 'n302', 'n500', 'n502', 'n505', 'n700', 'n701', 'n710', 'nec-',
  113.                 'nem-', 'newg', 'neon', 'netf', 'noki', 'nzph', 'o2 x', 'o2-x', 'opwv', 'owg1',
  114.                 'opti', 'oran', 'p800', 'pand', 'pg-1', 'pg-2', 'pg-3', 'pg-6', 'pg-8', 'pg-c',
  115.                 'pg13', 'phil', 'pn-2', 'pt-g', 'palm', 'pana', 'pire', 'pock', 'pose', 'psio',
  116.                 'qa-a', 'qc-2', 'qc-3', 'qc-5', 'qc-7', 'qc07', 'qc12', 'qc21', 'qc32', 'qc60',
  117.                 'qci-', 'qwap', 'qtek', 'r380', 'r600', 'raks', 'rim9', 'rove', 's55/', 'sage',
  118.                 'sams', 'sc01', 'sch-', 'scp-', 'sdk/', 'se47', 'sec-', 'sec0', 'sec1', 'semc',
  119.                 'sgh-', 'shar', 'sie-', 'sk-0', 'sl45', 'slid', 'smb3', 'smt5', 'sp01', 'sph-',
  120.                 'spv ', 'spv-', 'sy01', 'samm', 'sany', 'sava', 'scoo', 'send', 'siem', 'smar',
  121.                 'smit', 'soft', 'sony', 't-mo', 't218', 't250', 't600', 't610', 't618', 'tcl-',
  122.                 'tdg-', 'telm', 'tim-', 'ts70', 'tsm-', 'tsm3', 'tsm5', 'tx-9', 'tagt', 'talk',
  123.                 'teli', 'topl', 'hiba', 'up.b', 'upg1', 'utst', 'v400', 'v750', 'veri', 'vk-v',
  124.                 'vk40', 'vk50', 'vk52', 'vk53', 'vm40', 'vx98', 'virg', 'vite', 'voda', 'vulc',
  125.                 'w3c ', 'w3c-', 'wapj', 'wapp', 'wapu', 'wapm', 'wig ', 'wapi', 'wapr', 'wapv',
  126.                 'wapy', 'wapa', 'waps', 'wapt', 'winc', 'winw', 'wonu', 'x700', 'xda2', 'xdag',
  127.                 'yas-', 'your', 'zte-', 'zeto', 'acs-', 'alav', 'alca', 'amoi', 'aste', 'audi',
  128.                 'avan', 'benq', 'bird', 'blac', 'blaz', 'brew', 'brvw', 'bumb', 'ccwa', 'cell',
  129.                 'cldc', 'cmd-', 'dang', 'doco', 'eml2', 'eric', 'fetc', 'hipt', 'http', 'ibro',
  130.                 'idea', 'ikom', 'inno', 'ipaq', 'jbro', 'jemu', 'java', 'jigs', 'kddi', 'keji',
  131.                 'kyoc', 'kyok', 'leno', 'lg-c', 'lg-d', 'lg-g', 'lge-', 'libw', 'm-cr', 'maui',
  132.                 'maxo', 'midp', 'mits', 'mmef', 'mobi', 'mot-', 'moto', 'mwbp', 'mywa', 'nec-',
  133.                 'newt', 'nok6', 'noki', 'o2im', 'opwv', 'palm', 'pana', 'pant', 'pdxg', 'phil',
  134.                 'play', 'pluc', 'port', 'prox', 'qtek', 'qwap', 'rozo', 'sage', 'sama', 'sams',
  135.                 'sany', 'sch-', 'sec-', 'send', 'seri', 'sgh-', 'shar', 'sie-', 'siem', 'smal',
  136.                 'smar', 'sony', 'sph-', 'symb', 't-mo', 'teli', 'tim-', 'tosh', 'treo', 'tsm-',
  137.                 'upg1', 'upsi', 'vk-v', 'voda', 'vx52', 'vx53', 'vx60', 'vx61', 'vx70', 'vx80',
  138.                 'vx81', 'vx83', 'vx85', 'wap-', 'wapa', 'wapi', 'wapp', 'wapr', 'webc', 'whit',
  139.                 'winw', 'wmlb', 'xda-'
  140.             )
  141.         )
  142.     ) {
  143.         return true;
  144.     }
  145.     return false;
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement