<?php
/**
* SPAW Editor v.2 Utility classes
*
* @package spaw2
* @subpackage Util
* @author Alan Mendelevich <alan@solmetra.lt>
* @copyright UAB Solmetra
*/
/**
* Variable access class
*
* Returns values of variable from global arrays independent of PHP version and settings
* @package spaw2
* @subpackage Util
*/
class SpawVars
{
/**
* Returns GET variable value
* @param string $var_name variable name
* @param string $empty_value value to return if variable is empty
* @returns string
* @static
*/
function getGetVar($var_name, $empty_value='')
{
global $HTTP_GET_VARS;
if (!empty($_GET[$var_name]))
return $_GET[$var_name];
elseif (!empty($HTTP_GET_VARS[$var_name]))
return $HTTP_GET_VARS[$var_name];
else
return $empty_value;
}
/**
* Returns POST variable value
* @param string $var_name variable name
* @param string $empty_value value to return if variable is empty
* @returns string
* @static
*/
function getPostVar($var_name, $empty_value='')
{
global $HTTP_POST_VARS;
if (!empty($_POST[$var_name]))
return $_POST[$var_name];
else if (!empty($HTTP_POST_VARS[$var_name]))
return $HTTP_POST_VARS[$var_name];
else
return $empty_value;
}
/**
* Returns FILES variable value
* @param string $var_name variable name
* @param string $empty_value value to return if variable is empty
* @returns mixed
* @static
*/
function getFilesVar($var_name, $empty_value='')
{
global $HTTP_POST_FILES;
if (!empty($_FILES[$var_name]))
return $_FILES[$var_name];
else if (!empty($HTTP_POST_FILES[$var_name]))
return $HTTP_POST_FILES[$var_name];
else
return $empty_value;
}
/**
* Returns SERVER variable value
* @param string $var_name variable name
* @param string $empty_value value to return if variable is empty
* @returns string
* @static
*/
function getServerVar($var_name, $empty_value='')
{
global $HTTP_SERVER_VARS;
if (!empty($_SERVER[$var_name]))
return $_SERVER[$var_name];
else if (!empty($HTTP_SERVER_VARS[$var_name]))
return $HTTP_SERVER_VARS[$var_name];
else
return $empty_value;
}
/**
* Returns SESSION variable value
* @param string $var_name variable name
* @param string $empty_value value to return if variable is empty
* @returns string
* @static
*/
function getSessionVar($var_name, $empty_value='')
{
global $HTTP_SESSION_VARS;
if (!empty($_SESSION[$var_name]))
return $_SESSION[$var_name];
else if (!empty($HTTP_SESSION_VARS[$var_name]))
return $HTTP_SESSION_VARS[$var_name];
else
return $empty_value;
}
/**
* Sets SESSION variable value
* @param string $var_name variable name
* @param string $value value to set
* @static
*/
function setSessionVar($var_name, $value='')
{
global $HTTP_SESSION_VARS;
if (isset($_SESSION))
$_SESSION[$var_name] = $value;
else if (isset($HTTP_SESSION_VARS))
$HTTP_SESSION_VARS[$var_name] = $value;
}
/**
* Strips slashes from variable if magic_quotes is on
* @param string $var variable
* @returns string
* @static
*/
function stripSlashes($var)
{
if (get_magic_quotes_gpc()) {
return stripslashes($var);
}
return $var;
}
}
/**
* Usupported browser
*/
define("SPAW_AGENT_UNSUPPORTED", 0);
/**
* Microsoft Internet Explorer for Windows version 5.5 or higher
*/
define("SPAW_AGENT_IE", 15);
/**
* Gecko based browser with engine built on 2003-03-12 or later
*/
define("SPAW_AGENT_GECKO", 240);
/**
* Opera 9 or higher
*/
define("SPAW_AGENT_OPERA", 3840);
/**
* Safari 3 or higher
*/
define("SPAW_AGENT_SAFARI", 61440);
/**
* All supported browsers
*/
define("SPAW_AGENT_ALL", 65535);
/**
* Provides itformation about current user agent (browser)
* @package spaw2
* @subpackage Util
*/
class SpawAgent
{
/**
* Returns constant representing user agent (browser) in SPAW terms
* @returns integer
* @static
* @see SPAW_AGENT_UNSUPPORTED, SPAW_AGENT_IE, SPAW_AGENT_GECKO
*/
function getAgent()
{
$result = SPAW_AGENT_UNSUPPORTED;
$browser = SpawVars::GetServerVar('HTTP_USER_AGENT');
//echo $browser;
// check if msie
if (eregi("MSIE[^;]*",$browser,$msie))
{
// get version
if (eregi("[0-9]+\.[0-9]+",$msie[0],$version))
{
// check version
if ((float)$version[0]>=5.5)
{
// finally check if it's not opera impersonating ie
if (!eregi("opera",$browser))
{
$result = SPAW_AGENT_IE;
}
}
}
}
elseif (ereg("Gecko/([0-9]*)",$browser,$build))
{
// build date of Mozilla version 1.3 is 20030312
if ($build[1] > "20030312")
$result = SPAW_AGENT_GECKO;
}
elseif (eregi("Opera/([0-9]*)", $browser, $opera))
{
if ((float)$opera[1] >= 9)
$result = SPAW_AGENT_OPERA;
}
elseif (eregi("Safari/([0-9]*)", $browser, $safari))
{
// safari build 500 or higher (safari 3 or newer)
if ((float)$safari[1] >= 500)
$result = SPAW_AGENT_SAFARI;
}
return $result;
}
/**
* Returns string representation of current user agent to be used as part of file extension or dir name
* @returns string
* @static
*/
function getAgentName()
{
$result = '';
switch(SpawAgent::getAgent())
{
case SPAW_AGENT_IE:
$result = 'ie';
break;
case SPAW_AGENT_GECKO:
$result = 'gecko';
break;
case SPAW_AGENT_OPERA:
$result = 'opera';
break;
case SPAW_AGENT_SAFARI:
$result = 'safari';
break;
default:
$result = '';
break;
}
return $result;
}
}
?>