Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Référence de la classe JBrowser

Liste de tous les membres

Fonctions membres publiques

 __construct ($userAgent=null, $accept=null)
 match ($userAgent=null, $accept=null)
 getPlatform ()
 setBrowser ($browser)
 getBrowser ()
 getMajor ()
 getMinor ()
 getVersion ()
 getAgentString ()
 getHTTPProtocol ()
 isViewable ($mimetype)
 isBrowser ($browser)
 isRobot ()
 isMobile ()
 isSSLConnection ()

Fonctions membres publiques statiques

static getInstance ($userAgent=null, $accept=null)

Fonctions membres protégées

 _setPlatform ()
 identifyBrowserVersion ()

Attributs protégés

 $majorVersion = 0
 $minorVersion = 0
 $browser = ''
 $agent = ''
 $lowerAgent = ''
 $accept = ''
 $acceptParsed = array()
 $platform = ''
 $robots
 $mobile = false
 $images = array('jpeg', 'gif', 'png', 'pjpeg', 'x-png', 'bmp')

Attributs protégés statiques

static $instances = array()

Description détaillée

Définition à la ligne 25 du fichier browser.php.


Documentation des constructeurs et destructeur

JBrowser::__construct (   $userAgent = null,
  $accept = null 
)

Create a browser instance (constructor).

Paramètres:
string$userAgentThe browser string to parse.
string$acceptThe HTTP_ACCEPT settings to use.
Depuis:
11.1

Définition à la ligne 157 du fichier browser.php.

{
$this->match($userAgent, $accept);
}

Documentation des fonctions membres

JBrowser::_setPlatform ( )
protected

Match the platform of the browser.

This is a pretty simplistic implementation, but it's intended to let us tell what line breaks to send, so it's good enough for its purpose.

Renvoie:
void
Depuis:
11.1

Définition à la ligne 416 du fichier browser.php.

{
if (strpos($this->lowerAgent, 'wind') !== false)
{
$this->platform = 'win';
}
elseif (strpos($this->lowerAgent, 'mac') !== false)
{
$this->platform = 'mac';
}
else
{
$this->platform = 'unix';
}
}
JBrowser::getAgentString ( )

Return the full browser agent string.

Renvoie:
string The browser agent string
Depuis:
11.1

Définition à la ligne 536 du fichier browser.php.

{
return $this->agent;
}
JBrowser::getBrowser ( )

Retrieve the current browser.

Renvoie:
string The current browser.
Depuis:
11.1

Définition à la ligne 488 du fichier browser.php.

{
}
JBrowser::getHTTPProtocol ( )

Returns the server protocol in use on the current server.

Renvoie:
string The HTTP server protocol version.
Depuis:
11.1

Définition à la ligne 548 du fichier browser.php.

{
if (isset($_SERVER['SERVER_PROTOCOL']))
{
if (($pos = strrpos($_SERVER['SERVER_PROTOCOL'], '/')))
{
return substr($_SERVER['SERVER_PROTOCOL'], $pos + 1);
}
}
return null;
}
static JBrowser::getInstance (   $userAgent = null,
  $accept = null 
)
static

Returns the global Browser object, only creating it if it doesn't already exist.

Paramètres:
string$userAgentThe browser string to parse.
string$acceptThe HTTP_ACCEPT settings to use.
Renvoie:
JBrowser The Browser object.
Depuis:
11.1

Définition à la ligne 173 du fichier browser.php.

{
$signature = serialize(array($userAgent, $accept));
if (empty(self::$instances[$signature]))
{
self::$instances[$signature] = new JBrowser($userAgent, $accept);
}
return self::$instances[$signature];
}
JBrowser::getMajor ( )

Retrieve the current browser's major version.

Renvoie:
integer The current browser's major version
Depuis:
11.1

Définition à la ligne 500 du fichier browser.php.

{
}
JBrowser::getMinor ( )

Retrieve the current browser's minor version.

Renvoie:
integer The current browser's minor version.
Depuis:
11.1

Définition à la ligne 512 du fichier browser.php.

{
}
JBrowser::getPlatform ( )

Return the currently matched platform.

Renvoie:
string The user's platform.
Depuis:
11.1

Définition à la ligne 439 du fichier browser.php.

{
}
JBrowser::getVersion ( )

Retrieve the current browser's version.

Renvoie:
string The current browser's version.
Depuis:
11.1

Définition à la ligne 524 du fichier browser.php.

{
return $this->majorVersion . '.' . $this->minorVersion;
}
JBrowser::identifyBrowserVersion ( )
protected

Set browser version, not by engine version Fallback to use when no other method identify the engine version

Renvoie:
void
Depuis:
11.1

Définition à la ligne 452 du fichier browser.php.

Références JLog\add(), et JLog\NOTICE.

{
if (preg_match('|Version[/ ]([0-9.]+)|', $this->agent, $version))
{
list ($this->majorVersion, $this->minorVersion) = explode('.', $version[1]);
return;
}
// Can't identify browser version
$this->majorVersion = 0;
$this->minorVersion = 0;
JLog::add("Can't identify browser version. Agent: " . $this->agent, JLog::NOTICE);
}

+ Voici le graphe d'appel pour cette fonction :

JBrowser::isBrowser (   $browser)

Determine if the given browser is the same as the current.

Paramètres:
string$browserThe browser to check.
Renvoie:
boolean Is the given browser the same as the current?
Depuis:
11.1

Définition à la ligne 627 du fichier browser.php.

{
return ($this->browser === $browser);
}
JBrowser::isMobile ( )

Determines if the browser is mobile version or not.

Renvoie:
boolean True if browser is a known mobile version.
Depuis:
11.1

Définition à la ligne 659 du fichier browser.php.

{
return $this->mobile;
}
JBrowser::isRobot ( )

Determines if the browser is a robot or not.

Renvoie:
boolean True if browser is a known robot.
Depuis:
11.1

Définition à la ligne 639 du fichier browser.php.

{
foreach ($this->robots as $robot)
{
if (strpos($this->agent, $robot) !== false)
{
return true;
}
}
return false;
}
JBrowser::isSSLConnection ( )

Determine if we are using a secure (SSL) connection.

Renvoie:
boolean True if using SSL, false if not.
Depuis:
11.1
Obsolète:
13.3 (Platform) & 4.0 (CMS) - Use the isSSLConnection method on the application object.

Définition à la ligne 672 du fichier browser.php.

Références JLog\add(), et JLog\WARNING.

{
JLog::add('JBrowser::isSSLConnection() is deprecated. Use the isSSLConnection method on the application object instead.',
JLog::WARNING, 'deprecated');
return ((isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on')) || getenv('SSL_PROTOCOL_VERSION'));
}

+ Voici le graphe d'appel pour cette fonction :

JBrowser::isViewable (   $mimetype)

Determines if a browser can display a given MIME type.

Note that image/jpeg and image/pjpeg appear to be the same entity, but Mozilla doesn't seem to want to accept the latter. For our purposes, we will treat them the same.

Paramètres:
string$mimetypeThe MIME type to check.
Renvoie:
boolean True if the browser can display the MIME type.
Depuis:
11.1

Définition à la ligne 574 du fichier browser.php.

{
$mimetype = strtolower($mimetype);
list ($type, $subtype) = explode('/', $mimetype);
if (!empty($this->accept))
{
$wildcard_match = false;
if (strpos($this->accept, $mimetype) !== false)
{
return true;
}
if (strpos($this->accept, '*/*') !== false)
{
$wildcard_match = true;
if ($type != 'image')
{
return true;
}
}
// Deal with Mozilla pjpeg/jpeg issue
if ($this->isBrowser('mozilla') && ($mimetype == 'image/pjpeg') && (strpos($this->accept, 'image/jpeg') !== false))
{
return true;
}
if (!$wildcard_match)
{
return false;
}
}
if (!$this->hasFeature('images') || ($type != 'image'))
{
return false;
}
return (in_array($subtype, $this->images));
}
JBrowser::match (   $userAgent = null,
  $accept = null 
)

Parses the user agent string and inititializes the object with all the known features and quirks for the given browser.

Paramètres:
string$userAgentThe browser string to parse.
string$acceptThe HTTP_ACCEPT settings to use.
Renvoie:
void
Depuis:
11.1

Définition à la ligne 196 du fichier browser.php.

{
// Set our agent string.
if (is_null($userAgent))
{
if (isset($_SERVER['HTTP_USER_AGENT']))
{
$this->agent = trim($_SERVER['HTTP_USER_AGENT']);
}
}
else
{
$this->agent = $userAgent;
}
$this->lowerAgent = strtolower($this->agent);
// Set our accept string.
if (is_null($accept))
{
if (isset($_SERVER['HTTP_ACCEPT']))
{
$this->accept = strtolower(trim($_SERVER['HTTP_ACCEPT']));
}
}
else
{
$this->accept = strtolower($accept);
}
if (!empty($this->agent))
{
$this->_setPlatform();
if (strpos($this->lowerAgent, 'mobileexplorer') !== false
|| strpos($this->lowerAgent, 'openwave') !== false
|| strpos($this->lowerAgent, 'opera mini') !== false
|| strpos($this->lowerAgent, 'opera mobi') !== false
|| strpos($this->lowerAgent, 'operamini') !== false)
{
$this->mobile = true;
}
elseif (preg_match('|Opera[/ ]([0-9.]+)|', $this->agent, $version))
{
$this->setBrowser('opera');
list ($this->majorVersion, $this->minorVersion) = explode('.', $version[1]);
/* Due to changes in Opera UA, we need to check Version/xx.yy,
* but only if version is > 9.80. See: http://dev.opera.com/articles/view/opera-ua-string-changes/ */
if ($this->majorVersion == 9 && $this->minorVersion >= 80)
{
}
}
elseif (preg_match('|Chrome[/ ]([0-9.]+)|', $this->agent, $version))
{
$this->setBrowser('chrome');
list ($this->majorVersion, $this->minorVersion) = explode('.', $version[1]);
}
elseif (preg_match('|CrMo[/ ]([0-9.]+)|', $this->agent, $version))
{
$this->setBrowser('chrome');
list ($this->majorVersion, $this->minorVersion) = explode('.', $version[1]);
}
elseif (preg_match('|CriOS[/ ]([0-9.]+)|', $this->agent, $version))
{
$this->setBrowser('chrome');
list ($this->majorVersion, $this->minorVersion) = explode('.', $version[1]);
$this->mobile = true;
}
elseif (strpos($this->lowerAgent, 'elaine/') !== false
|| strpos($this->lowerAgent, 'palmsource') !== false
|| strpos($this->lowerAgent, 'digital paths') !== false)
{
$this->setBrowser('palm');
$this->mobile = true;
}
elseif ((preg_match('|MSIE ([0-9.]+)|', $this->agent, $version)) || (preg_match('|Internet Explorer/([0-9.]+)|', $this->agent, $version)))
{
$this->setBrowser('msie');
if (strpos($version[1], '.') !== false)
{
list ($this->majorVersion, $this->minorVersion) = explode('.', $version[1]);
}
else
{
$this->majorVersion = $version[1];
$this->minorVersion = 0;
}
/* Some Handhelds have their screen resolution in the
* user agent string, which we can use to look for
* mobile agents.
*/
if (preg_match('/; (120x160|240x280|240x320|320x320)\)/', $this->agent))
{
$this->mobile = true;
}
}
elseif (preg_match('|amaya/([0-9.]+)|', $this->agent, $version))
{
$this->setBrowser('amaya');
$this->majorVersion = $version[1];
if (isset($version[2]))
{
$this->minorVersion = $version[2];
}
}
elseif (preg_match('|ANTFresco/([0-9]+)|', $this->agent, $version))
{
$this->setBrowser('fresco');
}
elseif (strpos($this->lowerAgent, 'avantgo') !== false)
{
$this->setBrowser('avantgo');
$this->mobile = true;
}
elseif (preg_match('|Konqueror/([0-9]+)|', $this->agent, $version) || preg_match('|Safari/([0-9]+)\.?([0-9]+)?|', $this->agent, $version))
{
// Konqueror and Apple's Safari both use the KHTML
// rendering engine.
$this->setBrowser('konqueror');
$this->majorVersion = $version[1];
if (isset($version[2]))
{
$this->minorVersion = $version[2];
}
if (strpos($this->agent, 'Safari') !== false && $this->majorVersion >= 60)
{
// Safari.
$this->setBrowser('safari');
}
}
elseif (preg_match('|Mozilla/([0-9.]+)|', $this->agent, $version))
{
$this->setBrowser('mozilla');
list ($this->majorVersion, $this->minorVersion) = explode('.', $version[1]);
}
elseif (preg_match('|Lynx/([0-9]+)|', $this->agent, $version))
{
$this->setBrowser('lynx');
}
elseif (preg_match('|Links \(([0-9]+)|', $this->agent, $version))
{
$this->setBrowser('links');
}
elseif (preg_match('|HotJava/([0-9]+)|', $this->agent, $version))
{
$this->setBrowser('hotjava');
}
elseif (strpos($this->agent, 'UP/') !== false || strpos($this->agent, 'UP.B') !== false || strpos($this->agent, 'UP.L') !== false)
{
$this->setBrowser('up');
$this->mobile = true;
}
elseif (strpos($this->agent, 'Xiino/') !== false)
{
$this->setBrowser('xiino');
$this->mobile = true;
}
elseif (strpos($this->agent, 'Palmscape/') !== false)
{
$this->setBrowser('palmscape');
$this->mobile = true;
}
elseif (strpos($this->agent, 'Nokia') !== false)
{
$this->setBrowser('nokia');
$this->mobile = true;
}
elseif (strpos($this->agent, 'Ericsson') !== false)
{
$this->setBrowser('ericsson');
$this->mobile = true;
}
elseif (strpos($this->lowerAgent, 'wap') !== false)
{
$this->setBrowser('wap');
$this->mobile = true;
}
elseif (strpos($this->lowerAgent, 'docomo') !== false || strpos($this->lowerAgent, 'portalmmm') !== false)
{
$this->setBrowser('imode');
$this->mobile = true;
}
elseif (strpos($this->agent, 'BlackBerry') !== false)
{
$this->setBrowser('blackberry');
$this->mobile = true;
}
elseif (strpos($this->agent, 'MOT-') !== false)
{
$this->setBrowser('motorola');
$this->mobile = true;
}
elseif (strpos($this->lowerAgent, 'j-') !== false)
{
$this->setBrowser('mml');
$this->mobile = true;
}
}
}
JBrowser::setBrowser (   $browser)

Sets the current browser.

Paramètres:
string$browserThe browser to set as current.
Renvoie:
void
Depuis:
11.1

Définition à la ligne 476 du fichier browser.php.

{
$this->browser = $browser;
}

Documentation des données membres

JBrowser::$accept = ''
protected

Définition à la ligne 61 du fichier browser.php.

JBrowser::$acceptParsed = array()
protected

Définition à la ligne 67 du fichier browser.php.

JBrowser::$agent = ''
protected

Définition à la ligne 49 du fichier browser.php.

JBrowser::$browser = ''
protected

Définition à la ligne 43 du fichier browser.php.

JBrowser::$images = array('jpeg', 'gif', 'png', 'pjpeg', 'x-png', 'bmp')
protected

Définition à la ligne 141 du fichier browser.php.

JBrowser::$instances = array()
staticprotected

Définition à la ligne 147 du fichier browser.php.

JBrowser::$lowerAgent = ''
protected

Définition à la ligne 55 du fichier browser.php.

JBrowser::$majorVersion = 0
protected

Définition à la ligne 31 du fichier browser.php.

JBrowser::$minorVersion = 0
protected

Définition à la ligne 37 du fichier browser.php.

JBrowser::$mobile = false
protected

Définition à la ligne 132 du fichier browser.php.

JBrowser::$platform = ''
protected

Définition à la ligne 73 du fichier browser.php.

JBrowser::$robots
protected

Définition à la ligne 79 du fichier browser.php.


La documentation de cette classe a été générée à partir du fichier suivant :