Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
Ralph Bryan Brioso committed Jul 8, 2020
2 parents 42e7b85 + 0d45e16 commit d0cb2df
Show file tree
Hide file tree
Showing 6 changed files with 103 additions and 67 deletions.
1 change: 1 addition & 0 deletions language/en_EN.interface.php
Expand Up @@ -17,6 +17,7 @@
'tr_meliscms_page_analytics_inactive_module' => 'The analytics module for this site is deactivated.',
'tr_meliscms_page_analytics_no_module_set' => 'To display the site data, please select an analytics module for this site in Settings.',
'tr_meliscms_page_analytics_page_no_module_set' => 'To display the page\'s data, please select an analytics module from the Site Analytics module.',
'tr_meliscms_page_analytics_folder_message' => 'This is a folder. There is no analytics data for folders.',

// Table and Forms
'tr_meliscms_page_analytics_column_id' => 'ID',
Expand Down
1 change: 1 addition & 0 deletions language/fr_FR.interface.php
Expand Up @@ -17,6 +17,7 @@
'tr_meliscms_page_analytics_inactive_module' => 'Le module analytics pour ce site est désactivé.',
'tr_meliscms_page_analytics_no_module_set' => 'Pour afficher les données du site veuillez choisir un module analytics pour ce site dans les paramètres.',
'tr_meliscms_page_analytics_page_no_module_set' => 'Pour afficher les données de la page veuillez choisir un module analytics depuis l\'outil Site analytics',
'tr_meliscms_page_analytics_folder_message' => 'Ceci est un dossier. Il n\'y a pas de données analytique pour les dossiers.',

// Table and Forms
'tr_meliscms_page_analytics_column_id' => 'ID',
Expand Down
24 changes: 12 additions & 12 deletions public/build/js/bundle.js

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions public/plugin/ace.js

Large diffs are not rendered by default.

61 changes: 36 additions & 25 deletions src/Controller/MelisCmsPageAnalyticsPageDetailsToolController.php
Expand Up @@ -22,24 +22,33 @@ public function toolContainerAction()
$pageUrl = $pageTree->getPageLink($pageHitId, true);
$pageTreeSvc = $this->getServiceLocator()->get('MelisEngineTree');
$siteData = $pageTreeSvc->getSiteByPageId($pageHitId);
$siteId = null;
if($siteData) {
$siteId = (int) $siteData->site_id;
}
$this->pageId = $pageHitId;
$table = $this->getServiceLocator()->get('MelisCmsPageAnalyticsDataTable');
$curData = $table->getAnalytics($siteId)->current();
$display = null;
$displayScript = null;
$errMsg = "";

if($curData) {
$config = $this->getServiceLocator()->get('MelisCoreConfig');
$currentAnalytics = $curData->pad_analytics_key;
$hasAnalyticsConfig = $config->getItem('meliscms/datas/page_analytics/'.$currentAnalytics);

if($hasAnalyticsConfig) {
$pageAnalyticsData = $hasAnalyticsConfig;
$pageTree = $this->getServiceLocator()->get('MelisEngineTree');
$pageUrl = $pageTree->getPageLink($pageHitId, true);
$pageTreeSvc = $this->getServiceLocator()->get('MelisEnginePage');
$siteData = $pageTreeSvc->getDatasPage($pageHitId,'saved');
$errMsg = "";
$display = null;
$displayScript = null;

$pageTree = $siteData->getMelisPageTree();

if($pageTree->page_type != "FOLDER") {

$siteId = null;
if ($siteData) {
$siteId = !empty($siteData->getMelisTemplate()) ? (int)$siteData->getMelisTemplate()->tpl_site_id : null;
}
$this->pageId = $pageHitId;
$table = $this->getServiceLocator()->get('MelisCmsPageAnalyticsDataTable');
$curData = $table->getAnalytics($siteId)->current();

if ($curData) {
$config = $this->getServiceLocator()->get('MelisCoreConfig');
$currentAnalytics = $curData->pad_analytics_key;
$hasAnalyticsConfig = $config->getItem('meliscms/datas/page_analytics/' . $currentAnalytics);

if ($hasAnalyticsConfig) {
$pageAnalyticsData = $hasAnalyticsConfig;
$forward = $pageAnalyticsData['interface']['analytics_for_page']['forward'];
$display = $this->getTool()->getViewContent($forward);

Expand All @@ -59,15 +68,17 @@ public function toolContainerAction()
), $display);
// get the url the page
$pageTree = $this->getServiceLocator()->get('MelisEngineTree');
$pageUrl = $pageTree->getPageLink($pageHitId, true);
}
else{
$errMsg = $this->getTool()->getTranslation('tr_meliscms_page_analytics_inactive_module');
$pageUrl = $pageTree->getPageLink($pageHitId, true);
} else {
$errMsg = $this->getTool()->getTranslation('tr_meliscms_page_analytics_inactive_module');
}
} else {
$errMsg = $this->getTool()->getTranslation('tr_meliscms_page_analytics_no_module_set');
}
}else{
$errMsg = $this->getTool()->getTranslation('tr_meliscms_page_analytics_folder_message');
}
else{
$errMsg = $this->getTool()->getTranslation('tr_meliscms_page_analytics_no_module_set');
}

$view = new ViewModel();
$view->melisKey = $melisKey;
$view->pageHitId = $pageHitId;
Expand Down
76 changes: 48 additions & 28 deletions src/Service/MelisCmsDefaultPageAnalyticsService.php
Expand Up @@ -20,41 +20,61 @@ public function saveAnalyticsData($pageId)
// Sending service start event
$arrayParameters = $this->sendEvent('melis_cms_default_page_analytics_save_start', $arrayParameters);
$pageId = $arrayParameters['pageId'];
if (!empty($pageId)) {
/**
* Check for the page's status: Only record views for active pages.
* @var \MelisEngine\Model\Tables\MelisPagePublishedTable $pagePublished
*/
$pagePublished = $this->getServiceLocator()->get('MelisEngineTablePagePublished');
$pagePublished = current($pagePublished->getEntryById($pageId)->toArray());
if (!empty($pagePublished['page_status'])) {
/** Page is active */
$sessionCookie = isset($_COOKIE['PHPSESSID']) ? $_COOKIE['PHPSESSID'] : session_id();
$currentDateTime = date("Y-m-d H:i:s");

$pageAnalyticsTable = $this->getServiceLocator()->get('MelisCmsPageAnalyticsTable');
$pageData = $pageAnalyticsTable->getDataBySessionAndPageId((int)$pageId, $sessionCookie)->toArray();

$siteId = $this->getSiteIdByPageId($pageId);

if (!empty($pageData)) {
$pageData = end($pageData);
// check if the today
if (!$this->isToday($pageData['ph_date_visit'])) {

$pageTreeSvc = $this->getServiceLocator()->get('MelisEngineTree');
$siteData = $pageTreeSvc->getSiteByPageId($pageId);
$siteId = (int)$siteData->site_id;
$table = $this->getServiceLocator()->get('MelisCmsPageAnalyticsService');
$data = $table->getAnalytics($siteId);
/**
* Getting access token for API calls
* @var GoogleAnalyticsAPIService $googleAPIService
*/

$googleAPIService = $this->getServiceLocator()->get('GoogleAnalyticsAPIService');
$response = $googleAPIService->setAnalyticsReportingService($siteId);
if ($response) {
$tokenInfo = base64_encode(json_encode($googleAPIService->getAccessToken()));
}
$analyticsViewId = $data->pads_settings->google_analytics_view_id;

if(empty($tokenInfo) || empty($analyticsViewId)) {
if (!empty($pageId)) {
/**
* Check for the page's status: Only record views for active pages.
* @var \MelisEngine\Model\Tables\MelisPagePublishedTable $pagePublished
*/
$pagePublished = $this->getServiceLocator()->get('MelisEngineTablePagePublished');
$pagePublished = current($pagePublished->getEntryById($pageId)->toArray());
if (!empty($pagePublished['page_status'])) {
/** Page is active */
$sessionCookie = isset($_COOKIE['PHPSESSID']) ? $_COOKIE['PHPSESSID'] : session_id();
$currentDateTime = date("Y-m-d H:i:s");

$pageAnalyticsTable = $this->getServiceLocator()->get('MelisCmsPageAnalyticsTable');
$pageData = $pageAnalyticsTable->getDataBySessionAndPageId((int)$pageId, $sessionCookie)->toArray();

$siteId = $this->getSiteIdByPageId($pageId);

if (!empty($pageData)) {
$pageData = end($pageData);
// check if the today
if (!$this->isToday($pageData['ph_date_visit'])) {
$pageAnalyticsTable->save([
'ph_page_id' => $pageId,
'ph_session_id' => $sessionCookie,
'ph_date_visit' => $currentDateTime,
'ph_site_id' => $siteId
]);
}
} else {
$pageAnalyticsTable->save([
'ph_page_id' => $pageId,
'ph_session_id' => $sessionCookie,
'ph_date_visit' => $currentDateTime,
'ph_site_id' => $siteId
]);
}
} else {
$pageAnalyticsTable->save([
'ph_page_id' => $pageId,
'ph_session_id' => $sessionCookie,
'ph_date_visit' => $currentDateTime,
'ph_site_id' => $siteId
]);
}
}
}
Expand Down

0 comments on commit d0cb2df

Please sign in to comment.