* @copyright 2007-2011 PrestaShop SA
* @version Release: $Revision: 7541 $
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
//
// IMPORTANT : don't forget to delete the underscore _ in the file name if you want to use it !
//
// if FB class is already loaded, just enable it. else, enable it only if fb.php exists and is loaded
if (!defined('PS_USE_FIREPHP') AND class_exists('FB'))
define('PS_USE_FIREPHP',true);
elseif (file_exists(dirname(__FILE__).DIRECTORY_SEPARATOR.'fb.php'))
{
if (!defined('PS_USE_FIREPHP'))
{
require_once(dirname(__FILE__).DIRECTORY_SEPARATOR.'fb.php');
define('PS_USE_FIREPHP',true);
}
else
define('PS_USE_FIREPHP',false);
}
else
define('PS_USE_FIREPHP',class_exists('FB'));
class Tools extends ToolsCore
{
/**
* Redirect user to another page after 5 sec
*
* @param string $url Desired URL
* @param string $baseUri Base URI (optional)
*/
public static function redirect($url, $baseUri = __PS_BASE_URI__)
{
if (strpos($url, 'http://') === FALSE && strpos($url, 'https://') === FALSE)
{
global $link;
if (strpos($url, $baseUri) !== FALSE && strpos($url, $baseUri) == 0)
$url = substr($url, strlen($baseUri));
$explode = explode('?', $url);
$url = $link->getPageLink($explode[0], true);
if (isset($explode[1]))
$url .= '?'.$explode[1];
$baseUri = '';
}
if (isset($_SERVER['HTTP_REFERER']) AND ($url == $_SERVER['HTTP_REFERER']))
header('Refresh: 5; url='.$_SERVER['HTTP_REFERER']);
else
header('Refresh: 5; url='.$baseUri.$url);
echo '
Redirection automatique dans 5 secondes
'.$url.'';
exit;
}
/**
* Redirect url wich allready PS_BASE_URI after 5 sec
*
* @param string $url Desired URL
*/
public static function redirectLink($url)
{
if (!preg_match('@^https?://@i', $url))
{
global $link;
if (strpos($url, __PS_BASE_URI__) !== FALSE && strpos($url, __PS_BASE_URI__) == 0)
$url = substr($url, strlen(__PS_BASE_URI__));
$explode = explode('?', $url);
$url = $link->getPageLink($explode[0]);
if (isset($explode[1]))
$url .= '?'.$explode[1];
}
header('Refresh: 5; url='.$url);
echo 'Redirection automatique dans 5 secondes
'.$url.'';
exit;
}
/**
* Redirect user to another admin page after 5 sec
*
* @param string $url Desired URL
*/
public static function redirectAdmin($url)
{
header('Refresh: 5; url='.$url);
echo 'Redirection automatique dans 5 secondes
'.$url.'';
exit;
}
/**
* Display an error with detailed object
* (display in firefox console if Firephp is enabled)
*
* @param mixed $object
* @param boolean $kill
* @return $object if $kill = false;
*/
public static function dieObject($object, $kill = true)
{
if (PS_USE_FIREPHP)
FB::error($object);
else
return parent::dieObject($object,$kill);
if ($kill)
die('END');
return $object;
}
/**
* ALIAS OF dieObject() - Display an error with detailed object
* (display in firefox console if Firephp is enabled)
*
* @param object $object Object to display
*/
public static function d($obj, $kill = true)
{
if (PS_USE_FIREPHP)
FB::error($obj);
else
parent::d($obj,$kill);
if ($kill)
die('END');
return $object;
}
/**
* ALIAS OF dieObject() - Display an error with detailed object but don't stop the execution
* (display in firefox console if Firephp is enabled)
*
* @param object $object Object to display
*/
public static function p($object)
{
if (PS_USE_FIREPHP)
FB::info($object);
else
return parent::p($object);
return $object;
}
/**
* Display a warning message indicating that the method is deprecated
* (display in firefox console if Firephp is enabled)
*/
public static function displayAsDeprecated()
{
if (_PS_DISPLAY_COMPATIBILITY_WARNING_)
{
$backtrace = debug_backtrace();
$callee = next($backtrace);
if (PS_USE_FIREPHP)
FB::warn('Function '.$callee['function'].'() is deprecated in '.$callee['file'].' on line '.$callee['line'].'
', 'Deprecated method');
else
trigger_error('Function '.$callee['function'].'() is deprecated in '.$callee['file'].' on line '.$callee['line'].'
', E_USER_WARNING);
$message = Tools::displayError('The function').' '.$callee['function'].' ('.Tools::displayError('Line').' '.$callee['line'].') '.Tools::displayError('is deprecated and will be removed in the next major version.');
Logger::addLog($message, 3, $callee['class']);
}
}
/**
* Display a warning message indicating that the parameter is deprecated
* (display in firefox console if Firephp is enabled)
*/
public static function displayParameterAsDeprecated($parameter)
{
if (_PS_DISPLAY_COMPATIBILITY_WARNING_)
{
$backtrace = debug_backtrace();
$callee = next($backtrace);
trigger_error('Parameter '.$parameter.' in function '.$callee['function'].'() is deprecated in '.$callee['file'].' on line '.$callee['Line'].'
', E_USER_WARNING);
if (PS_USE_FIREPHP)
FB::trace('Parameter '.$parameter.' in function '.$callee['function'].'() is deprecated in '.$callee['file'].' on line '.$callee['Line'].'
', 'deprecated parameter');
else
$message = Tools::displayError('The parameter').' '.$parameter.' '.Tools::displayError(' in function ').' '.$callee['function'].' ('.Tools::displayError('Line').' '.$callee['Line'].') '.Tools::displayError('is deprecated and will be removed in the next major version.');
Logger::addLog($message, 3, $callee['class']);
}
}
/**
* use of FirePHP::error() if allowed
*
* @param mixed $obj
* @param string $label
* @return void
*/
public static function error($obj, $label = '')
{
if (PS_USE_FIREPHP)
FB::error($obj, $label);
}
/**
* use of FirePHP::warn() if allowed
*
* @param mixed $obj
* @param string $label
* @return void
*/
public static function warn($obj, $label = '')
{
if (PS_USE_FIREPHP)
FB::warn($obj, $label);
}
/**
* use of FirePHP::info() if allowed
*
* @param mixed $obj
* @param string $label
* @return void
*/
public static function info($obj, $label = '')
{
if (PS_USE_FIREPHP)
FB::info($obj, $label);
}
/**
* use of FirePHP::log() if allowed
*
* @param mixed $obj
* @param string $label
* @return void
*/
public static function log($obj, $label = '')
{
if (PS_USE_FIREPHP)
FB::log($obj,$label);
}
/**
* display debug_backtrace()
* (display in firefox console if Firephp is enabled)
*
* @param mixed $obj
* @return void
*/
public static function trace($obj = NULL, $label = '')
{
if (PS_USE_FIREPHP)
FB::trace($obj, $label);
else{
Tools::p($obj);
echo''.$label.'
';
debug_print_backtrace();
echo '
';
}
}
}
// Add some convenient shortcut
if (!function_exists('error'))
{
function error($obj, $label = ''){
return Tools::error($obj, $label);
}
}
if (!function_exists('warn'))
{
function warn($obj, $label = ''){
return Tools::warn($obj,$label);
}
}
if (!function_exists('info'))
{
function info($obj, $label = ''){
return Tools::info($obj, $label);
}
}
if (!function_exists('log'))
{
function log($obj, $label = ''){
return Tools::log($obj, $label);
}
}
if (!function_exists('trace'))
{
function trace($obj, $label = ''){
return Tools::trace($obj, $label);
}
}