1163 lines
28 KiB
PHP
1163 lines
28 KiB
PHP
<?php
|
|
|
|
|
|
|
|
include_once(realpath(dirname(__FILE__)) . "/../../../classes/PluginsClassiques.class.php");
|
|
|
|
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Variable.class.php");
|
|
|
|
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Statut.class.php");
|
|
|
|
include_once(realpath(dirname(__FILE__)) . "/../../../classes/Statutdesc.class.php");
|
|
|
|
include_once(realpath(dirname(__FILE__)) . "/X_GoogleAnalyticsMobile.class.php");
|
|
|
|
include_once(realpath(dirname(__FILE__)) . "/X_Tools.php");
|
|
|
|
|
|
|
|
class Ganalytics extends PluginsClassiques {
|
|
|
|
|
|
|
|
const MODULE = 'ganalytics';
|
|
|
|
var $id;
|
|
|
|
var $commande;
|
|
|
|
var $referer;
|
|
|
|
var $_logs;
|
|
|
|
var $_apiKey;
|
|
|
|
var $langues = array();
|
|
|
|
var $table = "ganalytics";
|
|
|
|
var $_logFile = "logs.txt";
|
|
|
|
var $bddvars = array("id", "commande", "referer", "gclid", "ga_statut");
|
|
|
|
public $ga_search = array(
|
|
|
|
array("google","q"),array("yahoo","p"),array("msn","q"),array("bing","q"),
|
|
|
|
array("aol","query"),array("aol","encquery"),array("lycos","query"),array("ask","q"),
|
|
|
|
array("altavista","q"),array("netscape","query"),array("cnn","query"),
|
|
|
|
array("looksmart","qt"),array("about","terms"),array("mamma","query"),
|
|
|
|
array("alltheweb","q"),array("gigablast","q"),array("voila","rdata"),
|
|
|
|
array("virgilio","qs"),array("live","q"),array("baidu","wd"),array("alice","qs"),
|
|
|
|
array("yandex","text"),array("najdi","q"),array("aol","q"),array("club-internet","query"),
|
|
|
|
array("mama","query"),array("seznam","q"),array("search","q"),array("wp","szukaj"),
|
|
|
|
array("onet","qt"),array("netsprint","q"),array("google.interia","q"),array("szukacz","q"),
|
|
|
|
array("yam","k"),array("pchome","q"),array("kvasir","searchExpr"),array("sesam","q"),
|
|
|
|
array("ozu","q"),array("terra","query"),array("nostrum","query"),array("mynet","q"),
|
|
|
|
array("ekolay","q"),array("search.ilse","search_for"));
|
|
|
|
|
|
|
|
function Ganalytics(){
|
|
|
|
$this->PluginsClassiques("ganalytics");
|
|
|
|
$this->_initVars();
|
|
|
|
}
|
|
|
|
|
|
|
|
function init(){
|
|
|
|
$this->ajout_desc("Google Analytics", "Ganalytics", "", 1);
|
|
|
|
$this->_installDB();
|
|
|
|
$this->_initLangues();
|
|
|
|
$this->_initVar('mailGA', '');
|
|
|
|
$this->_initVar('passGA', '');
|
|
|
|
$this->_initVar('apiKeyGA', '');
|
|
|
|
foreach($this->langues as $lang) $this->_initVar('codeGA'.$lang['id'], 'Insérez votre code google Anaytics');
|
|
|
|
foreach($this->langues as $lang) $this->_initVar('profGA'.$lang['id'], '');
|
|
|
|
if(!$this->is_sup_15()) foreach($this->langues as $lang) $this->_initVar('urlsiteGA'.$lang['id'], '');
|
|
|
|
$this->_initVar('ga_suivi_std', 0);
|
|
|
|
$this->_initVar('ga_insert_statuts', '2');
|
|
|
|
$this->_initVar('ga_annul_statuts', '5');
|
|
|
|
$this->_initVar('ga_logs', 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function _installDB(){
|
|
|
|
$cnx = new Cnx();
|
|
|
|
$query = "CREATE TABLE IF NOT EXISTS `ganalytics` (
|
|
|
|
`id` int(11) NOT NULL auto_increment, `commande` int(11) NOT NULL, `referer` text NOT NULL,
|
|
|
|
`gclid` text NOT NULL, `ga_statut` smallint(6) NOT NULL, PRIMARY KEY (`id`)) AUTO_INCREMENT=1 ;";
|
|
|
|
$resul = mysql_query($query, $cnx->link);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function charger($commande){
|
|
|
|
return $this->getVars("select * from $this->table where commande=\"$commande\"");
|
|
|
|
}
|
|
|
|
|
|
|
|
public function _initLangues(){
|
|
|
|
$cnx = new Cnx();
|
|
|
|
$resul = mysql_query("select * from `lang`",$cnx->link);
|
|
|
|
while($row = mysql_fetch_assoc($resul)) $this->langues[] = $row;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function _initVars(){
|
|
|
|
$logs = $this->getVar('ga_logs');
|
|
|
|
$apiKey = $this->getVar('apiKeyGA');
|
|
|
|
$this->logs = $logs->valeur;
|
|
|
|
$this->_apiKey = $apiKey->valeur;
|
|
|
|
$this->_initLangues();
|
|
|
|
foreach($this->langues as $lang){
|
|
|
|
$this->_initVar('codeGA'.$lang['id'], 'Insérez votre code google Anaytics');
|
|
|
|
$this->_initVar('profGA'.$lang['id'], '');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getLanguesConfigurees(){
|
|
|
|
$langues_configurees = array();
|
|
|
|
$_mailGA = $this->getVar('mailGA');
|
|
|
|
$_passGA = $this->getVar('passGA');
|
|
|
|
foreach($this->langues as $lang){
|
|
|
|
$_profGA = $this->getVar('profGA'.$lang['id']);
|
|
|
|
if(!empty($_profGA->valeur) AND !empty($_mailGA->valeur) AND !empty($_passGA->valeur)) $langues_configurees[] = $lang;
|
|
|
|
}
|
|
|
|
return $langues_configurees;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getLangueDefaut(){
|
|
|
|
$langue_defaut = 1;
|
|
|
|
$langues_configurees = $this->getLanguesConfigurees();
|
|
|
|
if(sizeof($langues_configurees) > 0) $langue_defaut = $langues_configurees[0];
|
|
|
|
return $langue_defaut = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function _initVar($nom, $valeur, $protege = 0, $cache = 0){
|
|
|
|
$var = new Variable();
|
|
|
|
if(!$var->charger($nom)){
|
|
|
|
$var->nom = $nom;
|
|
|
|
$var->valeur = $valeur;
|
|
|
|
$var->protege = $protege;
|
|
|
|
$var->cache = $cache;
|
|
|
|
$var->add();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function destroy(){
|
|
|
|
$cnx = new Cnx();
|
|
|
|
$arr = mysql_fetch_array(mysql_query("SHOW TABLES LIKE '".$this->table."'",$cnx->link));
|
|
|
|
if ($arr[0] == $this->table) $resultat = mysql_query("DROP TABLE ".$this->table." ",$cnx->link);
|
|
|
|
}
|
|
|
|
|
|
|
|
function getUrlSite(){
|
|
|
|
$urlsite = new Variable();
|
|
|
|
$urlsite->charger("urlsite");
|
|
|
|
return $urlsite->valeur;
|
|
|
|
}
|
|
|
|
|
|
|
|
function getVar($nom){
|
|
|
|
$var = new Variable();
|
|
|
|
$var->charger($nom);
|
|
|
|
return $var;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getArrayFromStringVar($nom, $sep = ','){
|
|
|
|
$var = new Variable();
|
|
|
|
$var->charger($nom);
|
|
|
|
return explode($sep, $var->valeur);
|
|
|
|
}
|
|
|
|
|
|
|
|
function getGapi($ga_email,$ga_password){
|
|
|
|
$ga = new gapi($ga_email,$ga_password,(isset($_SESSION['ga_auth_token']) ? $_SESSION['ga_auth_token'] : null),(!empty($this->_apiKey) ? $this->_apiKey : null));
|
|
|
|
$_SESSION['ga_auth_token'] = $ga->getAuthToken();
|
|
|
|
return $ga;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getTransaction($ref, $sens = 1){
|
|
|
|
$return = array();
|
|
|
|
$cnx = new Cnx();
|
|
|
|
$query = 'SELECT `commande`.* FROM `commande` WHERE `ref` = \''.$ref.'\'';
|
|
|
|
$result = mysql_query($query,$cnx->link) or die(mysql_error());
|
|
|
|
$res = mysql_fetch_assoc($result);
|
|
|
|
$query2 = 'SELECT sum(prixu*quantite) as total FROM `venteprod` where commande = '.$res['id'];
|
|
|
|
$result2 = mysql_query($query2,$cnx->link);
|
|
|
|
$res2 = mysql_fetch_assoc($result2);
|
|
|
|
$total = round($res2['total'], 2);
|
|
|
|
$total = round($total - $res['remise'], 2);
|
|
|
|
$port = $res['port'];
|
|
|
|
$totcmdport = $res['port'] + $total;
|
|
|
|
$query_tva = 'SELECT `valeur` FROM `variable` WHERE `nom` = \'tva\'';
|
|
|
|
$result_tva = mysql_query($query_tva,$cnx->link);
|
|
|
|
$res_tva = mysql_fetch_assoc($result_tva);
|
|
|
|
$query_client = 'SELECT `client`.*, `paysdesc`.`titre` as nom_pays FROM `client`
|
|
|
|
LEFT JOIN `pays` on `pays`.`id` = `client`.`pays`
|
|
|
|
LEFT JOIN `paysdesc` on `pays`.`id` = `paysdesc`.`pays`
|
|
|
|
WHERE `client`.`id` = '.$res['client'].' and `paysdesc`.`lang` = 1';
|
|
|
|
$result_client = mysql_query($query_client,$cnx->link) or die(mysql_error());;
|
|
|
|
$res_client = mysql_fetch_assoc($result_client);
|
|
|
|
$query_lang = ' and `rubriquedesc`.`lang` = '.$res['lang'];
|
|
|
|
$query_venteprod = 'SELECT `produit`.`tva`,`venteprod`.`ref`,`venteprod`.`titre`, `venteprod`.`prixu`, `venteprod`.`quantite`, `rubriquedesc`.`titre` as category
|
|
|
|
FROM `venteprod`
|
|
|
|
LEFT JOIN `produit` on `venteprod`.`ref` = `produit`.`ref`
|
|
|
|
LEFT JOIN `rubrique` on `produit`.`rubrique` = `rubrique`.`id`
|
|
|
|
LEFT JOIN `rubriquedesc` on `rubrique`.`id` = `rubriquedesc`.`rubrique`
|
|
|
|
WHERE commande = '.$res['id'];
|
|
|
|
$result_venteprod = mysql_query($query_venteprod.$query_lang,$cnx->link) or die(mysql_error());
|
|
|
|
if(0 === mysql_num_rows($result_venteprod)) $result_venteprod = mysql_query($query_venteprod,$cnx->link) or die(mysql_error());
|
|
|
|
$i = 1;
|
|
|
|
while($res_venteprod = mysql_fetch_assoc($result_venteprod)){
|
|
|
|
$total_produit = $res_venteprod['prixu'] * $res_venteprod['quantite'];
|
|
|
|
$total_produit_ht = $total_produit / (1 + $res_venteprod['tva']/100);
|
|
|
|
$tva += round($total_produit - $total_produit_ht,2);
|
|
|
|
$return['products']['product'.$i]['order_id'] = $res['ref'];
|
|
|
|
$return['products']['product'.$i]['ref'] = $res_venteprod['ref'];
|
|
|
|
$return['products']['product'.$i]['category'] = $res_venteprod['category'];
|
|
|
|
$return['products']['product'.$i]['name'] = $res_venteprod['titre'];
|
|
|
|
$return['products']['product'.$i]['price'] = $sens * $res_venteprod['prixu'];
|
|
|
|
$return['products']['product'.$i]['quantity'] = $sens * $res_venteprod['quantite'];
|
|
|
|
$i++;
|
|
|
|
}
|
|
|
|
$return['order']['id'] = $res['ref'];
|
|
|
|
$return['order']['total'] = $sens * $total;
|
|
|
|
$return['order']['port'] = $sens * $port;
|
|
|
|
$return['order']['tva'] = $sens * $tva;
|
|
|
|
$return['order']['city'] = $res_client['ville'];
|
|
|
|
$return['order']['region'] = '';
|
|
|
|
$return['order']['country'] = $res_client['nom_pays'];
|
|
|
|
return $return;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function GetSearchEngine($referer){
|
|
|
|
$return = array('moteur','keywords');
|
|
|
|
$return['keywords'] = $referer;
|
|
|
|
$ref = $this->GetReferer($referer);
|
|
|
|
for($i = 0;$i < count($this->ga_search);$i++){
|
|
|
|
if(strpos(strtolower($ref["host"]), strtolower($this->ga_search[$i][0]))>-1){
|
|
|
|
$test1 = strpos($ref["referer"], "?".$this->ga_search[$i][1]."=");
|
|
|
|
$test2 = strpos($ref["referer"], "&".$this->ga_search[$i][1]."=");
|
|
|
|
$j = ($test1 > -1) ? $test1 : $test2;
|
|
|
|
if($j >- 1){
|
|
|
|
$keywords = substr($ref["referer"], $j+strlen($this->ga_search[$i][1])+2, strlen($ref["referer"]));
|
|
|
|
$j = strpos($keywords,"&");
|
|
|
|
if($j > -1) $keywords = substr($keywords,0,$j);
|
|
|
|
$return['moteur'] = $this->ga_search[$i][0];
|
|
|
|
$return['keywords'] = utf8_decode(urldecode($keywords));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} return $return;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function GetReferer($referer){
|
|
|
|
$referer_tmp = $referer;
|
|
|
|
$pos = strpos($referer_tmp, "://");
|
|
|
|
if($pos>0) $referer_tmp = $referer_tmp = substr($referer_tmp,$pos+3);
|
|
|
|
$pos = strpos($referer_tmp, "/");
|
|
|
|
if($pos>0) return array("host"=>substr($referer_tmp, 0, $pos), "uri"=>substr($referer_tmp, $pos), "referer"=>$referer);
|
|
|
|
else return array("host"=>$referer_tmp, "uri"=>"", "referer"=>$referer);
|
|
|
|
}
|
|
|
|
|
|
|
|
function GetDomain($url){
|
|
|
|
$domain = parse_url(preg_replace('`www\.`','',$url));
|
|
|
|
return (empty($domain["host"])) ? $domain["path"] : $domain["host"];
|
|
|
|
}
|
|
|
|
|
|
|
|
function getFleche($val1,$vals2,$result,$results,$dimensions,$sens_gagnant,$unite='',$callback=''){
|
|
|
|
$return = '';
|
|
|
|
$gagnant = $sens_fleche = 0;
|
|
|
|
if(!is_array($vals2)) $val2 = $vals2;
|
|
|
|
else
|
|
|
|
foreach($results as $k =>$result_compare_tmp){
|
|
|
|
$test = 0;
|
|
|
|
foreach($dimensions as $dimension){
|
|
|
|
$funcDim = 'get'.ucfirst($dimension);
|
|
|
|
if($result_compare_tmp->$funcDim() == $result->$funcDim()) $test += 1;
|
|
|
|
if(count($dimensions) == $test){$val2 = $vals2[$k];break;}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if($val2){
|
|
|
|
$diff = ($val1 - $val2 > 0) ? ceil($val1 - $val2) : floor($val1 - $val2);
|
|
|
|
if($diff != 0){$gagnant = ($diff / abs($diff) == $sens_gagnant) ? 1 : -1; $sens_fleche = ($diff > 0) ? 1 : -1;}
|
|
|
|
switch($sens_fleche){case 1 : $sens_fleche = 'haut'; break; case -1 : $sens_fleche = 'bas'; break; case 0 : $sens_fleche = 'droite'; break;}
|
|
|
|
switch($gagnant){case 1 : $gagnant = 'gagnant'; break; case -1 : $gagnant = 'perdant'; break; case 0 : $gagnant = 'neutre'; break;}
|
|
|
|
$val = round($val1 - $val2,2);
|
|
|
|
if(!empty($callback)) $val = call_user_func($callback, $val);
|
|
|
|
$return = ($gagnant == 'neutre') ? '' : '<span class="'.$gagnant.'"><img src="../client/plugins/ganalytics/images/fleche_'.$sens_fleche.'_'.$gagnant.'.png" alt="'.$val.'"/>'.(round($val1 - $val2,2) > 0 ? '+' : '').$val.'</span>';
|
|
|
|
}
|
|
|
|
return $return;
|
|
|
|
}
|
|
|
|
|
|
|
|
# `datefact` date NOT NULL default '0000-00-00'
|
|
|
|
function getTransactions($date_depart,$date_fin,$lang = null){
|
|
|
|
$where = ($lang) ? ' AND lang = '.$lang : '';
|
|
|
|
$query = "SELECT COUNT(*) AS nbCommande FROM commande
|
|
|
|
WHERE statut>=2 AND statut<>5 AND datefact >= '".$date_depart."' AND datefact <= '".$date_fin."'".$where;
|
|
|
|
$resul = mysql_query($query);
|
|
|
|
$nbCommande = mysql_result($resul,0,"nbCommande");
|
|
|
|
return $nbCommande;
|
|
|
|
}
|
|
|
|
|
|
|
|
function getCA($date_depart,$date_fin,$lang= null,$pourc=100,$port=1){
|
|
|
|
$commande = new Commande();
|
|
|
|
$where = ($lang) ? ' AND lang = '.$lang : '';
|
|
|
|
$query = "select * from $commande->table where statut>=2 and statut<>5 AND datefact >= '".$date_depart."' AND datefact <= '".$date_fin."'".$where;
|
|
|
|
$resul = mysql_query($query);
|
|
|
|
$list="";
|
|
|
|
while($row = mysql_fetch_object($resul)) $list .= "'" . $row->id . "'" . ",";
|
|
|
|
$list = substr($list, 0, strlen($list)-1);
|
|
|
|
$list == "";
|
|
|
|
if($list == "") $list="''";
|
|
|
|
$query = "SELECT sum(venteprod.quantite*venteprod.prixu) as ca FROM venteprod where commande in ($list)";
|
|
|
|
$resul = mysql_query($query);
|
|
|
|
$ca = round(mysql_result($resul, 0, "ca"), 2);
|
|
|
|
$query = "SELECT sum(port)as ca FROM commande where id in ($list)";
|
|
|
|
$resul = mysql_query($query);
|
|
|
|
$ca += mysql_result($resul, 0, "ca");
|
|
|
|
$query = "SELECT sum(remise)as ca FROM commande where id in ($list)";
|
|
|
|
$resul = mysql_query($query);
|
|
|
|
$ca -= mysql_result($resul, 0, "ca");
|
|
|
|
if(!$port){
|
|
|
|
$query = "SELECT sum(port)as port FROM commande where id in ($list)";
|
|
|
|
$resul = mysql_query($query);
|
|
|
|
$ca -= mysql_result($resul, 0, "port");
|
|
|
|
}
|
|
|
|
return round($ca*$pourc/100, 2);
|
|
|
|
}
|
|
|
|
|
|
|
|
function getCASources($date_depart,$date_fin,$lang= null,$port=1){
|
|
|
|
$return = array();
|
|
|
|
$commande = new Commande();
|
|
|
|
$where = ($lang) ? ' AND lang = '.$lang : '';
|
|
|
|
$query = "select * from $commande->table where statut>=2 and statut<>5 AND datefact >= '".$date_depart."' AND datefact <= '".$date_fin."'".$where;
|
|
|
|
$resul = mysql_query($query);
|
|
|
|
while($commande = mysql_fetch_object($resul)){
|
|
|
|
$query = "SELECT sum(venteprod.quantite*venteprod.prixu) as ca FROM venteprod where commande = ".$commande->id;
|
|
|
|
$resul = mysql_query($query);
|
|
|
|
$ca = round(mysql_result($resul, 0, "ca"), 2);
|
|
|
|
$query = "SELECT sum(port)as ca FROM commande where id = ".$commande->id;
|
|
|
|
$resul = mysql_query($query);
|
|
|
|
$ca += mysql_result($resul, 0, "ca");
|
|
|
|
$query = "SELECT sum(remise)as ca FROM commande where id = ".$commande->id;
|
|
|
|
$resul = mysql_query($query);
|
|
|
|
$ca -= mysql_result($resul, 0, "ca");
|
|
|
|
if(!$port){
|
|
|
|
$query = "SELECT sum(port)as port FROM commande where id = ".$commande->id;
|
|
|
|
$resul = mysql_query($query);
|
|
|
|
$ca -= mysql_result($resul, 0, "port");
|
|
|
|
}
|
|
|
|
/*
|
|
|
|
$ganalytics = new Ganalytics();
|
|
|
|
$ganalytics->charger($commande->id);
|
|
|
|
$referer = $ganalytics->referer;
|
|
|
|
$gclid = $ganalytics->gclid;
|
|
|
|
# TO DO: Retrouver le NDD de façon dynamique..
|
|
|
|
$ga = new X_GoogleAnalyticsMobile('',str_replace('www.','','http://www.stevialis.fr'),$referer,$gclid,NULL,array());
|
|
|
|
*/
|
|
|
|
//$return[$this->getSource($row->id)] = $ca;
|
|
|
|
|
|
|
|
$return['test'] += $ca;
|
|
|
|
|
|
|
|
// Source ??
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return $return;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function demarrage(){
|
|
|
|
|
|
|
|
$referer = $_SERVER['HTTP_REFERER'];
|
|
|
|
if(!$_COOKIE['ganalytics'] || (!empty($referer) and $this->GetDomain($referer) != str_replace('www.','',$_SERVER['HTTP_HOST'])))
|
|
|
|
setcookie("ganalytics", $referer, time() + 18000); // = 5h
|
|
|
|
if(!$_COOKIE['gclid'] AND isset($_GET['gclid']))
|
|
|
|
setcookie("gclid", $_GET['gclid'], time() + 43200); // 24h * 30j * 60s = 30 jours
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public function action(){
|
|
|
|
global $res,$ga;
|
|
|
|
$ga_suivi_std = new Variable();
|
|
|
|
$ga_suivi_std->charger('ga_suivi_std');
|
|
|
|
if($ga_suivi_std->valeur){
|
|
|
|
$_codeGA = new Variable();
|
|
|
|
$_codeGA->charger('codeGA1');
|
|
|
|
$urlsite = new Variable();
|
|
|
|
$urlsite->charger("urlsite");
|
|
|
|
if(!isset($ga) OR $ga != 0)
|
|
|
|
if($_codeGA->valeur != 'Insérez votre code google Anaytics'){
|
|
|
|
$code = "\n".'<script type="text/javascript">var jsasync = document.createElement(\'script\');jsasync.type = \'text/javascript\';jsasync.async = true;jsasync.src = \''.
|
|
|
|
$urlsite->valeur.'/client/plugins/ganalytics/ga.php\';(document.getElementsByTagName(\'head\')[0] ||document.getElementsByTagName(\'body\')[0]).appendChild(jsasync);</script>'."\n".'</body>';
|
|
|
|
$res = preg_replace('`<[[:space:]]*/[[:space:]]*body[[:space:]]*>`i',$code,$res);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function apresclient(){
|
|
|
|
// $this->trackPageview('/inscription');
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
-- ACTIONS --
|
|
|
|
apresconnexion
|
|
|
|
apresdeconnexion
|
|
|
|
avantcommande
|
|
|
|
apresVenteprod
|
|
|
|
aprescommande
|
|
|
|
avantclient
|
|
|
|
apresclient
|
|
|
|
avantmodifcompte
|
|
|
|
apresmodifcompte
|
|
|
|
apres_creerlivraison
|
|
|
|
apres_modifierlivraison
|
|
|
|
avantpromo
|
|
|
|
aprespromo
|
|
|
|
*/
|
|
|
|
|
|
|
|
public function aprescommande($commande){
|
|
|
|
$this->commande = $commande->id;
|
|
|
|
$this->referer = $_COOKIE['ganalytics'];
|
|
|
|
$this->gclid = $_COOKIE['gclid'];
|
|
|
|
$this->add();
|
|
|
|
$this->statut($commande);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function confirmation($commande){
|
|
|
|
$this->statut($commande);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function statut($commande){
|
|
|
|
$this->charger($commande->id);
|
|
|
|
$ga_insert_statuts = $this->getArrayFromStringVar('ga_insert_statuts');
|
|
|
|
$ga_annul_statuts = $this->getArrayFromStringVar('ga_annul_statuts');
|
|
|
|
if(in_array($commande->statut, $ga_insert_statuts) and $this->ga_statut == 0){
|
|
|
|
$this->GanalyticsUpdate($commande);
|
|
|
|
$this->ga_statut = 1;
|
|
|
|
$this->maj();
|
|
|
|
}
|
|
|
|
elseif(in_array($commande->statut, $ga_annul_statuts) and $this->ga_statut == 1){
|
|
|
|
$this->GanalyticsUpdate($commande, -1);
|
|
|
|
$this->ga_statut = 0;
|
|
|
|
$this->maj();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function GanalyticsUpdate($commande, $sens = 1){
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "");
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "###############################################");
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "");
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "#Function - GanalyticsUpdate | order = ".$commande->ref." | sens = ".$sens);
|
|
|
|
$urlsite = new Variable();
|
|
|
|
$urlsite->charger("urlsite");
|
|
|
|
$this->charger($commande->id);
|
|
|
|
$_codeGA = new Variable();
|
|
|
|
$_codeGA->charger('codeGA'.$commande->lang);
|
|
|
|
$commande_infos = $this->getTransaction($commande->ref,$sens);
|
|
|
|
$ga_params = array();
|
|
|
|
$referer = $this->referer;
|
|
|
|
$gclid = $this->gclid;
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, '#REFERER => '.$referer);
|
|
|
|
$url = $urlsite->valeur.'/client/plugins/ganalytics/ganalytics_update.php';
|
|
|
|
$commande_order = $commande_infos['order'];
|
|
|
|
$ga = new X_GoogleAnalyticsMobile($_codeGA->valeur, str_replace('www.','',$_SERVER['HTTP_HOST']), $referer, $gclid, NULL, $ga_params);
|
|
|
|
$ga->SetTransaction($commande_order['id'], $commande_order['total'], $commande_order['port'], $commande_order['tva'], $commande_order['city'], $commande_order['region'], $commande_order['country']);
|
|
|
|
if(count($commande_infos['products']) > 0)
|
|
|
|
foreach($commande_infos['products'] as $product)
|
|
|
|
$ga->SetTransactionItem($product['order_id'], $product['ref'], $product['category'], $product['name'], $product['price'], $product['quantity']);
|
|
|
|
$tracking_codes = $ga->GetTrackingCode();
|
|
|
|
if(count($tracking_codes) > 0)
|
|
|
|
foreach($tracking_codes as $tracking_code){
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, $tracking_code);
|
|
|
|
$ch = @curl_init($tracking_code);
|
|
|
|
if ($ch){
|
|
|
|
@curl_setopt($ch, CURLOPT_TIMEOUT, 30);
|
|
|
|
@curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
|
|
|
|
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
|
|
|
|
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
|
|
|
|
$result = @curl_exec($ch);
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "#result : ".$result);
|
|
|
|
@curl_close($ch);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function trackPageview($page){
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "");
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "###############################################");
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "");
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "#Function - trackPageView - | page = ".$page);
|
|
|
|
$urlsite = new Variable();
|
|
|
|
$urlsite->charger("urlsite");
|
|
|
|
$_codeGA = new Variable();
|
|
|
|
$_codeGA->charger('codeGA'.$_SESSION['navig']->lang);
|
|
|
|
$ga_params = array();
|
|
|
|
//$referer = $this->referer;
|
|
|
|
//if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, '#REFERER => '.$referer);
|
|
|
|
$ga = new X_GoogleAnalyticsMobile($_codeGA->valeur, str_replace('www.','',$_SERVER['HTTP_HOST']), $_SERVER['HTTP_REFERER'], '', NULL, $ga_params);
|
|
|
|
$ga->SetTrackPageview($page);
|
|
|
|
$tracking_codes = $ga->GetTrackingCode();
|
|
|
|
if(count($tracking_codes) > 0)
|
|
|
|
foreach($tracking_codes as $tracking_code){
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, $tracking_code);
|
|
|
|
$ch = @curl_init($tracking_code);
|
|
|
|
if ($ch){
|
|
|
|
@curl_setopt($ch, CURLOPT_TIMEOUT, 30);
|
|
|
|
@curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
|
|
|
|
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
|
|
|
|
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
|
|
|
|
$result = @curl_exec($ch);
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "#result : ".$result);
|
|
|
|
@curl_close($ch);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function trackEvent($event){
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "");
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "###############################################");
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "");
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "#Function - trackEvent - | event = ".$event);
|
|
|
|
$urlsite = new Variable();
|
|
|
|
$urlsite->charger("urlsite");
|
|
|
|
$_codeGA = new Variable();
|
|
|
|
$_codeGA->charger('codeGA'.$_SESSION['navig']->lang);
|
|
|
|
$ga_params = array();
|
|
|
|
//$referer = $this->referer;
|
|
|
|
//if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, '#REFERER => '.$referer);
|
|
|
|
$ga = new X_GoogleAnalyticsMobile($_codeGA->valeur, str_replace('www.','',$_SERVER['HTTP_HOST']), $_SERVER['HTTP_REFERER'], '', NULL, $ga_params);
|
|
|
|
$ga->SetTrackEvent($event);
|
|
|
|
$tracking_codes = $ga->GetTrackingCode();
|
|
|
|
if(count($tracking_codes) > 0)
|
|
|
|
foreach($tracking_codes as $tracking_code){
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, $tracking_code);
|
|
|
|
$ch = @curl_init($tracking_code);
|
|
|
|
if ($ch){
|
|
|
|
@curl_setopt($ch, CURLOPT_TIMEOUT, 30);
|
|
|
|
@curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
|
|
|
|
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
|
|
|
|
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
|
|
|
|
$result = @curl_exec($ch);
|
|
|
|
if($this->logs) X_writeLogs($this->getUrlSite().$this->_logFile, "#result : ".$result);
|
|
|
|
@curl_close($ch);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function displayCalendar($date_depart, $date_fin){
|
|
|
|
|
|
|
|
# Soustraire 1 pour les semaines si l'année ne commence pas un lundi
|
|
|
|
$firstMondayHack = (date("w",mktime(0,0,0,1,1,date('Y'))) != 1) ? 1 : 0;
|
|
|
|
$first_day_of_month = date('Y-m',time()) . '-01 00:00:01';
|
|
|
|
$t = strtotime($first_day_of_month);
|
|
|
|
|
|
|
|
return '
|
|
|
|
<div id="calendar"><br/><br/>
|
|
|
|
<form action="" method="post" id="calendar_form" style="margin-left:40px;width:100%" name="calendar_form">
|
|
|
|
<input type="hidden" id="compare" name="compare" value="">
|
|
|
|
<input type="submit" id="submitDateDay" name="submitDateDay" class="button submitDateDay" value="Jour">
|
|
|
|
<input type="submit" id="submitDateWeek" name="submitDateWeek" class="button submitDateDay" value="Semaine">
|
|
|
|
<input type="submit" id="submitDateMonth" name="submitDateMonth" class="button submitDateMonth" value="Mois"><br/><br/>
|
|
|
|
<input type="submit" id="submitDateDayPrev" name="submitDateDayPrev" class="button submitDateDay" value="Jour-1">
|
|
|
|
<input type="submit" id="submitDateWeekPrev" name="submitDateWeekPrev" class="button submitDateDayPrev" value="Semaine-1">
|
|
|
|
<input type="submit" id="submitDateMonthPrev" name="submitDateMonthPrev" class="button submitDateMonthPrev" value="Mois-1"><br/><br/>
|
|
|
|
<input type="submit" id="submitDateDayPrev2" name="submitDateDayPrev2" class="button submitDateDayPrev" value="Jour-2">
|
|
|
|
<input type="submit" id="submitDateWeekPrev2" name="submitDateWeekPrev2" class="button submitDateDayPrev" value="Semaine-2">
|
|
|
|
<input type="submit" id="submitDateMonthPrev2" name="submitDateMonthPrev2" class="button submitDateMonthPrev" value="Mois-2"><br/><br/>
|
|
|
|
<p><span>Du :</span><input type="text" name="datepickerFrom" id="datepickerFrom" value="'.$date_depart.'" class="datepicker"></p>
|
|
|
|
<p><span>Au :</span><input type="text" name="datepickerTo" id="datepickerTo" value="'.$date_fin.'" class="datepicker"></p>
|
|
|
|
<br/><input type="submit" name="submitDatePicker" id="submitDatePicker" class="button" value="Valider" />
|
|
|
|
</form>
|
|
|
|
<link href="../client/plugins/ganalytics/scripts/jquery/ui/themes/base/jquery.ui.theme.css" rel="stylesheet" type="text/css" media="all" />
|
|
|
|
<link href="../client/plugins/ganalytics/scripts/jquery/ui/themes/base/jquery.ui.datepicker.css" rel="stylesheet" type="text/css" media="all" />
|
|
|
|
<script type="text/javascript" src="../client/plugins/ganalytics/scripts/jquery/ui/jquery.ui.core.min.js"></script>
|
|
|
|
<script type="text/javascript" src="../client/plugins/ganalytics/scripts/jquery/ui/jquery.ui.datepicker.min.js"></script>
|
|
|
|
<script type="text/javascript" src="../client/plugins/ganalytics/scripts/jquery/ui/i18n/jquery.ui.datepicker-fr.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
|
|
var submitDateDay = "'.date("d-m-Y").'x'.date("d-m-Y").'";
|
|
|
|
var submitDateWeek = "'.date("d-m-Y", strtotime('First Monday January '.date("Y").' +'.(date("W")-1-$firstMondayHack).' Week')).'x'.date("d-m-Y").'";
|
|
|
|
var submitDateMonth = "'.date("01-m-Y").'x'.date("d-m-Y", mktime(0,0,0,date('n')+1,0,date('Y'))).'";
|
|
|
|
var submitDateDayPrev = "'.date("d-m-Y", strtotime('-1 day')).'x'.date("d-m-Y", strtotime('-1 day')).'";
|
|
|
|
var submitDateWeekPrev = "'.date("d-m-Y", strtotime('First Monday January '.date("Y").' +'.(date("W")-2-$firstMondayHack).' Week')).'x'.date("d-m-Y", strtotime('First Monday January '.date("Y").' +'.(date("W")-2-$firstMondayHack).' Week + 6 Days')).'";
|
|
|
|
var submitDateMonthPrev = "'.date("01-m-Y", strtotime('-1 month',$t)).'x'.date("d-m-Y", mktime(0,0,0,date('n'),0,date('Y'))).'";
|
|
|
|
var submitDateDayPrev2 = "'.date("d-m-Y", strtotime('-2 day')).'x'.date("d-m-Y", strtotime('-2 day')).'";
|
|
|
|
var submitDateWeekPrev2 = "'.date("d-m-Y", strtotime('First Monday January '.date("Y").' +'.(date("W")-3-$firstMondayHack).' Week')).'x'.date("d-m-Y", strtotime('First Monday January '.date("Y").' +'.(date("W")-3-$firstMondayHack).' Week + 6 Days')).'";
|
|
|
|
var submitDateMonthPrev2 = "'.date("01-m-Y", strtotime('-2 month')).'x'.date("d-m-Y", mktime(0,0,0,date('n')-1,0,date('Y'))).'";
|
|
|
|
$(document).ready(function(){
|
|
|
|
$("#submitDateDay").click(function(){dates = submitDateDay.split("x");refreshStats(dates[0],dates[1],"dayPrev");return false;});
|
|
|
|
$("#submitDateWeek").click(function(){dates = submitDateWeek.split("x");refreshStats(dates[0],dates[1],"weekPrev");return false;});
|
|
|
|
$("#submitDateMonth").click(function(){dates = submitDateMonth.split("x");refreshStats(dates[0],dates[1],"monthPrev");return false;});
|
|
|
|
$("#submitDateDayPrev").click(function(){dates = submitDateDayPrev.split("x");refreshStats(dates[0],dates[1],"dayPrev2");return false;});
|
|
|
|
$("#submitDateWeekPrev").click(function(){dates = submitDateWeekPrev.split("x");refreshStats(dates[0],dates[1],"weekPrev2");return false;});
|
|
|
|
$("#submitDateMonthPrev").click(function(){dates = submitDateMonthPrev.split("x");refreshStats(dates[0],dates[1],"monthPrev2");return false;});
|
|
|
|
$("#submitDateDayPrev2").click(function(){dates = submitDateDayPrev2.split("x");refreshStats(dates[0],dates[1],"dayPrev3");return false;});
|
|
|
|
$("#submitDateWeekPrev2").click(function(){dates = submitDateWeekPrev2.split("x");refreshStats(dates[0],dates[1],"weekPrev3");return false;});
|
|
|
|
$("#submitDateMonthPrev2").click(function(){dates = submitDateMonthPrev2.split("x");refreshStats(dates[0],dates[1],"monthPrev3");return false;});
|
|
|
|
});
|
|
|
|
</script>
|
|
|
|
</div>';
|
|
|
|
}
|
|
|
|
|
|
|
|
function cleanEncodage($str){
|
|
|
|
if(!$this->is_sup_15()) $str = utf8_decode($str);
|
|
|
|
return $str;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function is_sup_15(){
|
|
|
|
$version = new Variable();
|
|
|
|
$version->charger("version");
|
|
|
|
return (intval(substr($version->valeur,0,2)) >= 15) ? 1 : 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|