/**
  * Cette fonction permet l'affichage des statistiques de visites
  *
  * @access	public
  * @author	koéZionCMS
  * @version 0.1 - 27/09/2013 by FI
  */
 function backoffice_statistiques()
 {
     $aParams = $this->_check_datas_stats();
     //Contrôle des dates
     if (isset($this->request->data['display']) && $this->request->data['display']) {
         $iSiteId = Session::read('Backoffice.Websites.current');
         //Récupération de l'identifiant du site courant
         $sLoginGoogleAnalytics = Session::read('Backoffice.Websites.details.' . $iSiteId . '.ga_login');
         //Login GA
         $sPasswdGoogleAnalytics = Session::read('Backoffice.Websites.details.' . $iSiteId . '.ga_password');
         //Mot de passe GA
         $sIdGoogleAnalytics = Session::read('Backoffice.Websites.details.' . $iSiteId . '.ga_id');
         //ID du profil du site dans GA
         //Pour afficher les données de Google Analytics nous devons en premier lieu vérifier un certain nombre de choses
         //- Que l'identifiant du site courant soit non vide
         //- Qu'il y ait bien un login Google Analytics de renseigné
         //- Qu'il y ait bien un mot de passe Google Analytics de renseigné
         //- Que pour le site courant l'identifiant du profil Google Analytics soit bien saisit
         if (!empty($iSiteId) && !empty($sLoginGoogleAnalytics) && !empty($sPasswdGoogleAnalytics) && !empty($sIdGoogleAnalytics)) {
             //require_once(LIBS.DS.'api_ga.php'); //Import de la librairie Google Analytics
             Configure::import(LIBS . DS . 'api_ga');
             //Déclaration d'un objet de type GoogleAnalyticsAPI
             set_time_limit(0);
             $oGa = new GoogleAnalyticsAPI($sLoginGoogleAnalytics, $sPasswdGoogleAnalytics, $sIdGoogleAnalytics, $aParams['date_debut'], $aParams['date_fin']);
             $sToken = $oGa->getLoginToken();
             // recupere le jeton d'acces pour controler que la connexion est bien faite
             if (!empty($sToken)) {
                 //////////////////////////////////////////////////////////////////////////////
                 //   RECUPERATION DES DONNEES STATISTIQUES EN FONCTION DES DATES INDIQUEES  //
                 $navigateurs = $oGa->getDimensionByMetric('pageviews', 'browser');
                 $this->set('navigateurs', $navigateurs);
                 $countries = $oGa->getDimensionByMetric('pageviews', 'country');
                 $this->set('countries', $countries);
                 $keywords = $oGa->getDimensionByMetric('pageviews', 'keyword');
                 $this->set('keywords', $keywords);
                 $source = $oGa->getDimensionByMetric('pageviews', 'source');
                 $this->set('source', $source);
                 $pagePath = $oGa->getDimensionByMetric('pageviews', 'pagePath');
                 $this->set('pagePath', $pagePath);
                 $visits = $oGa->getMetric('visits');
                 $this->set('visits', $visits);
                 $unique_visits = $oGa->getMetric('visitors');
                 $this->set('unique_visits', $unique_visits);
                 $page_views = $oGa->getMetric('pageviews');
                 $this->set('page_views', $page_views);
                 //$oGa->setSortByDimensions('month'); //!!! Obligatoire sinon les mois ne sont pas dans le bon ordre
                 //$aVisitesA = $oGa->getDimensionByMetric('visitors', 'month');  //Nombre de visiteurs uniques absolus par mois
                 $aDateDeb = explode('-', $aParams['date_debut']);
                 $aDateFin = explode('-', $aParams['date_fin']);
                 $sStartDateGaUsA = date('Y-m-d', mktime(0, 0, 0, $aDateDeb[1], $aDateDeb[2], $aDateDeb[0]));
                 //1er janvier
                 $sEndDateGaUsA = date('Y-m-d', mktime(0, 0, 0, $aDateFin[1], $aDateFin[2], $aDateFin[0]));
                 //31 décembre
                 $oGa->setDate($sStartDateGaUsA, $sEndDateGaUsA);
                 //Set les date pour prendre une année complete : dissocié de la recherche
                 //$oGa->setSortByDimensions('month'); //!!! Obligatoire sinon les mois ne sont pas dans le bon ordre
                 $aGraphVisitesUniques = $oGa->getDimensionByMetric('visitors', 'month');
                 //Nombre de visiteurs uniques absolus par mois
                 $aGraphVisites = $oGa->getDimensionByMetric('visits', 'month');
                 //Nombre de visiteurs uniques absolus par mois
                 $aGraphPagesVues = $oGa->getDimensionByMetric('pageviews', 'month');
                 //Nombre de visiteurs uniques absolus par mois
                 //////////////////////////////////////////////////////////////////////////////
                 ////////////////////////////////////////////////////////////////////
                 //  RECUPERATION DES DONNEES STATISTIQUES POUR L'ANNEE EN COURS   //
                 $iNumYear = date('Y');
                 //En prevision si un jour on veut passer en parametre l'année.
                 $sStartDateGaUs = date('Y-m-d', mktime(0, 0, 0, 1, 1, $iNumYear));
                 //1er janvier
                 $sEndDateGaUs = date('Y-m-d', mktime(0, 0, 0, 12, 31, $iNumYear));
                 //31 décembre
                 $oGa->setDate($sStartDateGaUs, $sEndDateGaUs);
                 //Set les date pour prendre une année complete : dissocié de la recherche
                 $oGa->setSortByDimensions('month');
                 //!!! Obligatoire sinon les mois ne sont pas dans le bon ordre
                 $aVisites = $oGa->getDimensionByMetric('visitors', 'month');
                 //Nombre de visiteurs uniques absolus par mois
                 $this->set('aGraphVisitesUniques', $aGraphVisitesUniques);
                 $this->set('aGraphVisites', $aGraphVisites);
                 $this->set('aGraphPagesVues', $aGraphPagesVues);
                 $this->set('sGraphStart', $this->request->data['start']);
                 $this->set('sGraphEnd', $this->request->data['end']);
                 $this->set('iNumYear', $iNumYear);
                 ////////////////////////////////////////////////////////////////////
                 $this->set('iDisplay', 1);
                 //Pour indiquer au front qu'il faut afficher les données
             } else {
                 $this->set('sMessageErreurGa', 'Connexion impossible à Google Analytics');
             }
             unset($oGa);
         } else {
             $this->set('sMessageErreurGa', 'Il y a un problème dans le paramétrages de vos données Google Analytics');
         }
     }
 }