[-] CORE : TRACKING_DIRECT_TRAFFIC not respected

This commit is contained in:
gRoussac
2013-05-16 11:24:44 +02:00
parent 11eaf792e9
commit 0765dde5c0
+26 -24
View File
@@ -63,34 +63,36 @@ class ConnectionsSourceCore extends ObjectModel
return false;
if (!isset($_SERVER['HTTP_REFERER']) && !Configuration::get('TRACKING_DIRECT_TRAFFIC'))
return false;
$source = new ConnectionsSource();
if (isset($_SERVER['HTTP_REFERER']) && Validate::isAbsoluteUrl($_SERVER['HTTP_REFERER']))
{
$parsed = parse_url($_SERVER['HTTP_REFERER']);
$parsed_host = parse_url(Tools::getProtocol().Tools::getHttpHost(false, false).__PS_BASE_URI__);
if ((!isset($parsed['path']) ||!isset($parsed_host['path'])) || (preg_replace('/^www./', '', $parsed['host']) == preg_replace('/^www./', '', Tools::getHttpHost(false, false)))
&& !strncmp($parsed['path'], $parsed_host['path'], strlen(__PS_BASE_URI__)))
return false;
if (Validate::isAbsoluteUrl(strval($_SERVER['HTTP_REFERER'])))
if(Configuration::get('TRACKING_DIRECT_TRAFFIC'))
{
$source = new ConnectionsSource();
if (isset($_SERVER['HTTP_REFERER']) && Validate::isAbsoluteUrl($_SERVER['HTTP_REFERER']))
{
$source->http_referer = substr(strval($_SERVER['HTTP_REFERER']), 0, ConnectionsSource::$uri_max_size);
$source->keywords = substr(trim(SearchEngine::getKeywords(strval($_SERVER['HTTP_REFERER']))), 0, ConnectionsSource::$uri_max_size);
if (!Validate::isMessage($source->keywords))
$parsed = parse_url($_SERVER['HTTP_REFERER']);
$parsed_host = parse_url(Tools::getProtocol().Tools::getHttpHost(false, false).__PS_BASE_URI__);
if ((!isset($parsed['path']) ||!isset($parsed_host['path'])) || (preg_replace('/^www./', '', $parsed['host']) == preg_replace('/^www./', '', Tools::getHttpHost(false, false)))
&& !strncmp($parsed['path'], $parsed_host['path'], strlen(__PS_BASE_URI__)))
return false;
if (Validate::isAbsoluteUrl(strval($_SERVER['HTTP_REFERER'])))
{
$source->http_referer = substr(strval($_SERVER['HTTP_REFERER']), 0, ConnectionsSource::$uri_max_size);
$source->keywords = substr(trim(SearchEngine::getKeywords(strval($_SERVER['HTTP_REFERER']))), 0, ConnectionsSource::$uri_max_size);
if (!Validate::isMessage($source->keywords))
return false;
}
}
$source->id_connections = (int)$cookie->id_connections;
$source->request_uri = Tools::getHttpHost(false, false);
if (isset($_SERVER['REDIRECT_URL']))
$source->request_uri .= strval($_SERVER['REDIRECT_URL']);
elseif (isset($_SERVER['REQUEST_URI']))
$source->request_uri .= strval($_SERVER['REQUEST_URI']);
if (!Validate::isUrl($source->request_uri))
$source->request_uri = '';
$source->request_uri = substr($source->request_uri, 0, ConnectionsSource::$uri_max_size);
return $source->add();
}
$source->id_connections = (int)$cookie->id_connections;
$source->request_uri = Tools::getHttpHost(false, false);
if (isset($_SERVER['REDIRECT_URL']))
$source->request_uri .= strval($_SERVER['REDIRECT_URL']);
elseif (isset($_SERVER['REQUEST_URI']))
$source->request_uri .= strval($_SERVER['REQUEST_URI']);
if (!Validate::isUrl($source->request_uri))
$source->request_uri = '';
$source->request_uri = substr($source->request_uri, 0, ConnectionsSource::$uri_max_size);
return $source->add();
}
public static function getOrderSources($id_order)