* @copyright 2019 ModuleFactory.co * @license ModuleFactory.co Commercial License */ class FsAdvancedUrlTools { public static function baseUrl() { $base_url = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://'); $base_url .= $_SERVER['HTTP_HOST'].dirname($_SERVER['SCRIPT_NAME']); $base_url = str_replace('\\', '/', $base_url); if (Tools::substr($base_url, -1) != '/') { $base_url .= '/'; } return $base_url; } public static function redirectBack($default_back_url = null) { $base_url = self::baseUrl(); if (!empty($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], $base_url) == 0) { $url_back = $_SERVER['HTTP_REFERER']; } elseif ($default_back_url) { $url_back = $default_back_url; } else { $url_back = $base_url; } Tools::redirectLink($url_back); exit; } public static function redirect($url, $headers = null) { $base_url = Tools::getShopDomainSsl(true).Context::getContext()->shop->getBaseURI(); if (!Validate::isAbsoluteUrl($url)) { if (Tools::strlen($url) > 0 && Tools::substr($url, 0, 1) == '/') { $url = Tools::substr($url, 1); } $url = $base_url.$url; } Tools::redirect($url, __PS_BASE_URI__, null, $headers); } public static function getRequestUri() { $base_uri = Context::getContext()->shop->getBaseURI(); $uri = $_SERVER['REQUEST_URI']; if ($base_uri != '/') { $uri = str_replace($base_uri, '', $_SERVER['REQUEST_URI']); } if (!$uri) { return '/'; } if (Tools::strlen($uri) > 0 && Tools::substr($uri, 0, 1) != '/') { return '/'.$uri; } return $uri; } public static function getCurrentUrl() { return Tools::getShopDomainSsl(true).$_SERVER['REQUEST_URI']; } public static function getValue($key, $default_value, $from) { if (isset($from[$key])) { return $from[$key]; } return $default_value; } public static function startsWith($haystack, $needle) { return !strncmp($haystack, $needle, Tools::strlen($needle)); } public static function endsWith($haystack, $needle) { return $needle === '' || strpos( $haystack, $needle, Tools::strlen($haystack) - Tools::strlen($needle) ) !== false; } public static function contains($haystack, $needle) { if (strpos($haystack, $needle) !== false) { return true; } return false; } public static function pr($var) { echo '
';
print_r($var);
echo '';
}
public static function removeForm($html)
{
$matches = array();
preg_match('#'), array('', ''), $html);
}
public static function rnd($length = 10)
{
$salt = 'abchefghjkmnpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
srand((double)microtime() * 1000000);
$i = 0;
$pass = '';
while ($i <= $length) {
$num = rand() % 59;
$tmp = Tools::substr($salt, $num, 1);
$pass = $pass.$tmp;
$i++;
}
return $pass;
}
public static function unescapeSmarty($escaped)
{
return str_replace(
array('&', '"', ''', '<', '>'),
array('&', '"', '\'', '<', '>'),
$escaped
);
}
public static function minifyCss($params, $css)
{
$mode = 'default';
if (isset($params['mode'])) {
$mode = $params['mode'];
}
if ($mode == 'default') {
$css = str_replace(': ', ':', $css);
$css = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $css);
}
return $css;
}
public static function isSubmitMultilang($submit)
{
$return = true;
$languages = Language::getLanguages(false);
foreach ($languages as $language) {
$return = $return && (bool)Tools::isSubmit($submit.'_'.$language['id_lang']);
}
return $return;
}
}