Ejemplo n.º 1
0
 private function aggregateDayInteractions()
 {
     $select = "\n                log_action_content_name.name as contentName,\n                log_action_content_interaction.name as contentInteraction,\n                log_action_content_piece.name as contentPiece,\n\n\t\t\t\tcount(*) as `" . Metrics::INDEX_CONTENT_NB_INTERACTIONS . "`\n        ";
     $from = array("log_link_visit_action", array("table" => "log_action", "tableAlias" => "log_action_content_piece", "joinOn" => "log_link_visit_action.idaction_content_piece = log_action_content_piece.idaction"), array("table" => "log_action", "tableAlias" => "log_action_content_interaction", "joinOn" => "log_link_visit_action.idaction_content_interaction = log_action_content_interaction.idaction"), array("table" => "log_action", "tableAlias" => "log_action_content_name", "joinOn" => "log_link_visit_action.idaction_content_name = log_action_content_name.idaction"));
     $where = "log_link_visit_action.server_time >= ?\n                    AND log_link_visit_action.server_time <= ?\n                    AND log_link_visit_action.idsite = ?\n                    AND log_link_visit_action.idaction_content_name IS NOT NULL\n                    AND log_link_visit_action.idaction_content_interaction IS NOT NULL";
     $groupBy = "log_action_content_piece.idaction,\n                    log_action_content_interaction.idaction,\n                    log_action_content_name.idaction";
     $orderBy = "`" . Metrics::INDEX_CONTENT_NB_INTERACTIONS . "` DESC";
     $rankingQueryLimit = ArchivingHelper::getRankingQueryLimit();
     $rankingQuery = null;
     if ($rankingQueryLimit > 0) {
         $rankingQuery = new RankingQuery($rankingQueryLimit);
         $rankingQuery->setOthersLabel(DataTable::LABEL_SUMMARY_ROW);
         $rankingQuery->addLabelColumn(array('contentPiece', 'contentInteraction', 'contentName'));
         $rankingQuery->addColumn(array(Metrics::INDEX_CONTENT_NB_INTERACTIONS), 'sum');
     }
     $resultSet = $this->archiveDayQueryProcess($select, $from, $where, $groupBy, $orderBy, $rankingQuery);
     while ($row = $resultSet->fetch()) {
         $this->aggregateInteractionRow($row);
     }
 }
Ejemplo n.º 2
0
 /**
  * Time per action
  */
 protected function archiveDayActionsTime($rankingQueryLimit)
 {
     $rankingQuery = false;
     if ($rankingQueryLimit > 0) {
         $rankingQuery = new RankingQuery($rankingQueryLimit);
         $rankingQuery->setOthersLabel(DataTable::LABEL_SUMMARY_ROW);
         $rankingQuery->addLabelColumn('idaction');
         $rankingQuery->addColumn(Metrics::INDEX_PAGE_SUM_TIME_SPENT, 'sum');
         $rankingQuery->partitionResultIntoMultipleGroups('type', array_keys($this->actionsTablesByType));
         $extraSelects = "log_action.type, log_action.name, count(*) as `" . Metrics::INDEX_PAGE_NB_HITS . "`,";
         $from = array("log_link_visit_action", array("table" => "log_action", "joinOn" => "log_link_visit_action.%s = log_action.idaction"));
         $orderBy = "`" . Metrics::INDEX_PAGE_NB_HITS . "` DESC, log_action.name ASC";
     } else {
         $extraSelects = false;
         $from = "log_link_visit_action";
         $orderBy = false;
     }
     $select = "log_link_visit_action.%s as idaction, {$extraSelects}\n\t\t\t\tsum(log_link_visit_action.time_spent_ref_action) as `" . Metrics::INDEX_PAGE_SUM_TIME_SPENT . "`";
     $where = "log_link_visit_action.server_time >= ?\n\t\t\t\tAND log_link_visit_action.server_time <= ?\n\t\t \t\tAND log_link_visit_action.idsite = ?\n\t\t \t\tAND log_link_visit_action.time_spent_ref_action > 0\n\t\t \t\tAND log_link_visit_action.%s > 0" . $this->getWhereClauseActionIsNotEvent();
     $groupBy = "log_link_visit_action.%s, idaction";
     $this->archiveDayQueryProcess($select, $from, $where, $orderBy, $groupBy, "idaction_url_ref", $rankingQuery);
     $this->archiveDayQueryProcess($select, $from, $where, $orderBy, $groupBy, "idaction_name_ref", $rankingQuery);
 }
Ejemplo n.º 3
0
 protected function aggregateDayEvents()
 {
     $select = "\n                log_action_event_category.name as eventCategory,\n                log_action_event_action.name as eventAction,\n                log_action_event_name.name as eventName,\n\n\t\t\t\tcount(distinct log_link_visit_action.idvisit) as `" . Metrics::INDEX_NB_VISITS . "`,\n\t\t\t\tcount(distinct log_link_visit_action.idvisitor) as `" . Metrics::INDEX_NB_UNIQ_VISITORS . "`,\n\t\t\t\tcount(*) as `" . Metrics::INDEX_EVENT_NB_HITS . "`,\n\n\t\t\t\tsum(\n\t\t\t\t\tcase when " . Action::DB_COLUMN_CUSTOM_FLOAT . " is null\n\t\t\t\t\t\tthen 0\n\t\t\t\t\t\telse " . Action::DB_COLUMN_CUSTOM_FLOAT . "\n\t\t\t\t\tend\n\t\t\t\t) as `" . Metrics::INDEX_EVENT_SUM_EVENT_VALUE . "`,\n\t\t\t\tsum( case when " . Action::DB_COLUMN_CUSTOM_FLOAT . " is null then 0 else 1 end )\n\t\t\t\t    as `" . Metrics::INDEX_EVENT_NB_HITS_WITH_VALUE . "`,\n\t\t\t\tmin(" . Action::DB_COLUMN_CUSTOM_FLOAT . ") as `" . Metrics::INDEX_EVENT_MIN_EVENT_VALUE . "`,\n\t\t\t\tmax(" . Action::DB_COLUMN_CUSTOM_FLOAT . ") as `" . Metrics::INDEX_EVENT_MAX_EVENT_VALUE . "`\n        ";
     $from = array("log_link_visit_action", array("table" => "log_action", "tableAlias" => "log_action_event_category", "joinOn" => "log_link_visit_action.idaction_event_category = log_action_event_category.idaction"), array("table" => "log_action", "tableAlias" => "log_action_event_action", "joinOn" => "log_link_visit_action.idaction_event_action = log_action_event_action.idaction"), array("table" => "log_action", "tableAlias" => "log_action_event_name", "joinOn" => "log_link_visit_action.idaction_name = log_action_event_name.idaction"));
     $where = "log_link_visit_action.server_time >= ?\n                    AND log_link_visit_action.server_time <= ?\n                    AND log_link_visit_action.idsite = ?\n                    AND log_link_visit_action.idaction_event_category IS NOT NULL";
     $groupBy = "log_action_event_category.idaction,\n                    log_action_event_action.idaction,\n                    log_action_event_name.idaction";
     $orderBy = "`" . Metrics::INDEX_NB_VISITS . "` DESC";
     $rankingQueryLimit = ArchivingHelper::getRankingQueryLimit();
     $rankingQuery = null;
     if ($rankingQueryLimit > 0) {
         $rankingQuery = new RankingQuery($rankingQueryLimit);
         $rankingQuery->setOthersLabel(DataTable::LABEL_SUMMARY_ROW);
         $rankingQuery->addLabelColumn(array('eventCategory', 'eventAction', 'eventName'));
         $rankingQuery->addColumn(array(Metrics::INDEX_NB_UNIQ_VISITORS));
         $rankingQuery->addColumn(array(Metrics::INDEX_EVENT_NB_HITS, Metrics::INDEX_NB_VISITS, Metrics::INDEX_EVENT_NB_HITS_WITH_VALUE), 'sum');
         $rankingQuery->addColumn(Metrics::INDEX_EVENT_SUM_EVENT_VALUE, 'sum');
         $rankingQuery->addColumn(Metrics::INDEX_EVENT_MIN_EVENT_VALUE, 'min');
         $rankingQuery->addColumn(Metrics::INDEX_EVENT_MAX_EVENT_VALUE, 'max');
     }
     $this->archiveDayQueryProcess($select, $from, $where, $groupBy, $orderBy, $rankingQuery);
 }