Files
le-matelot/client/plugins/ganalytics/Ganalytics.class.php
2020-01-27 08:56:08 +01:00

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;
}
}
?>