[ Index ]
 

Code source de Seagull 0.6.1

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/themes/ -> helpers.php (source)

   1  <?php
   2  
   3  /**
   4   * Compares the specified version of browser with current one.
   5   *
   6   * Examples:
   7   *   browser('MSIE7', 'ge') - all 7.x family and younger,
   8   *   browser('Gecko') - gecko family,
   9   *   browser('MSIE') - MSIE family,
  10   *   browser('MSIE6', '<') - MSIE 5.x and older
  11   *   browser('MSIE6.0', 'eq') - exactly MSIE 6.0
  12   *   browser('MSIE5.5', 'ge') && browser('MSIE6', '<') - MSIE 5.5
  13   *
  14   * @param  string  $currentVersion  version to compare e.g. 'MSIE5.5'
  15   * @param  string  $operator        comparison operator
  16   * @return boolean
  17   */
  18  function isBrowserFamily($currentVersion, $operator = null, $reload = false)
  19  {
  20      static $browserFamily;
  21      if ($reload) {
  22          $browserFamily = null;
  23      }
  24      if (!isset($browserFamily)) {
  25          $ua = isset($_SERVER['HTTP_USER_AGENT'])
  26              ? $_SERVER['HTTP_USER_AGENT'] : '';
  27          // get browser family and version
  28          $browserFamily = 'None';
  29          if (!empty($ua)) {
  30              if (strstr($ua, 'Opera')) {
  31                  $browserFamily = 'Opera';
  32              } elseif (strstr($ua, 'MSIE')) {
  33                  $browserFamily = 'MSIE';
  34                  preg_match("/$browserFamily (.+?);/", $ua, $aMatches);
  35                  // append browser version for MSIE
  36                  $browserFamily .= $aMatches[1];
  37              } else {
  38                  $browserFamily = 'Gecko';
  39              }
  40          }
  41      }
  42  
  43      // family check, first letters: 'M', 'G', 'O' or 'N'
  44      if ($currentVersion[0] != $browserFamily[0]) {
  45          return false;
  46      }
  47  
  48      // family comparison without a version
  49      // for families other than MSIE we force this check, 'cos browser
  50      // versioning is not implemented for them yet
  51      if (false === strpos($browserFamily, 'MSIE')) {
  52          if (strpos($currentVersion, $browserFamily) !== false) {
  53              return true;
  54          } else {
  55              return false;
  56          }
  57      } elseif (is_null($operator)) {
  58          if (strpos($browserFamily, $currentVersion) !== false) {
  59              return true;
  60          } else {
  61              return false;
  62          }
  63      }
  64      return version_compare($browserFamily, $currentVersion, $operator);
  65  }
  66  
  67  ?>


Généré le : Fri Mar 30 01:27:52 2007 par Balluche grâce à PHPXref 0.7