function getPagesDetailsZoom($categoryAsked = '') { $this->objects['category'] = new ArchiveTable('category'); $this->objects['page'] = new ArchiveTable('page'); $this->objects['file'] = new ArchiveTable('file'); $this->objects['vars_name'] = new ArchiveTable('vars_name'); $this->objects['vars_value'] = new ArchiveTable('vars_value'); $nbVis = $this->getContent('nb_vis'); // printDebug($all); exit; if ($this->archive->periodType === DB_ARCHIVES_PERIOD_DAY) { $nbLast = 15; } else { $nbLast = 3; } $archives = $this->getLastArchives($nbLast, 1, DATE_NORMAL); printTime('beg 1 of pages details'); $i = 0; // load "pure" pages array foreach ($archives as $dateToDisplay => $archive) { printTime('foreach' . ++$i . ' of pages details'); $o_data = new DataModel($archive, $this->request); $displayInfo[] = $dateToDisplay; printTime('before uz' . $i . ' of pages details'); if (STORE_PAG_ARRAY_IN_FILE) { $file = INCLUDE_PATH . "/datas/archives/" . $o_data->infoSerialized['idarchives'] . ".dat"; if (!is_readable($file)) { saveConfigFile($file, unserialize($o_data->infoSerialized['vis_pag_grp']), 'visPagGrp'); } if (is_readable($file)) { $visPagGrp = array(); require_once $file; $array = $visPagGrp; } } else { $visPagGrp = array(); if (!is_null($o_data->infoSerialized['vis_pag_grp'])) { $visPagGrp = $o_data->getContent('vis_pag_grp'); } } //var_dump($visPagGrp);exit; $a_all[] = $visPagGrp; printTime('after uz' . $i . ' of pages details'); $headerInfo[] = array('nb_pag' => $o_data->getContent('nb_pag'), 'nb_uniq_pag' => $o_data->getContent('nb_uniq_pag'), 'nb_max_pag' => $o_data->getContent('nb_max_pag')); //printDebug($headerInfo); } printTime('beg 2 of pages details'); foreach ($a_all as $j => $all) { if (empty($categoryAsked)) { $a_infosDay[$j] = $all; $level = 0; } else { $categoryAsked = (string) $categoryAsked; //print("Zoom cate '$categoryAsked' <br>"); //print($categoryAsked[2]); $detailsCategory = explode(">", $categoryAsked); //printDebug($detailsCategory); $level = sizeof($detailsCategory); //print("level : $level <br>"); $array = $this->getPagesDetailsZoomArrayLevel($all, $level, $detailsCategory); $a_infosDay[$j] = $array; } } printTime('mid of pages details'); // list asked category if ($level != 0) { $categoryAsked .= '>'; } // var_dump($categoryAsked); // var_dump($a_infosDay[0]); $return = array(); if (is_array($a_infosDay[0])) { //var_dump($a_infosDay[0]); foreach ($a_infosDay[0] as $currentId => $info) { // page or file or category, but not total if ($currentId != 'p_pmv_sum' && $currentId != 'f_pmv_sum') { $id = ''; $parentId = ''; $data = ''; $sum = 0; $sumN1 = 0; $sumN2 = 0; $percentN1 = 0; $percentN2 = 0; $type = ''; $entry = 0; $sumtime = 0; $exit = 0; $singlepage = 0; $a_vars = array(); // category if (substr($currentId, 0, 1) === 'c') { $type = 'category'; $entry = @$info['p_pmv_sum'][ARRAY_INDEX_ENTRYPAGE]; $exit = @$info['p_pmv_sum'][ARRAY_INDEX_EXITPAGE]; $sum = @$info['p_pmv_sum'][ARRAY_INDEX_COUNT] + @$info['f_pmv_sum'][ARRAY_INDEX_COUNT]; $sumtime = @$info['p_pmv_sum'][ARRAY_INDEX_TIME_TOTAL]; $singlepage = @$info['p_pmv_sum'][ARRAY_INDEX_PAGES_VISIT_ONEPAGE]; $allInfoInGroup = $this->getPagesDetailsZoomArrayLevel($a_infosDay[0], 1, array($currentId)); //var_dump($allInfoInGroup);exit; //$a_vars = $this->getVarIdToName($a_infosDay[0]['p_pmv_sum'][ARRAY_INDEX_VARS]); $a_vars = $this->getVarIdToName(@$allInfoInGroup['p_pmv_sum'][ARRAY_INDEX_VARS]); //var_dump($a_vars); if (isset($a_infosDay[1][$currentId]['p_pmv_sum'][ARRAY_INDEX_COUNT])) { $sumN1 = $a_infosDay[1][$currentId]['p_pmv_sum'][ARRAY_INDEX_COUNT] + @$a_infosDay[1][$currentId]['f_pmv_sum'][ARRAY_INDEX_COUNT]; } $percentN1 = $this->getDiffPercent($sum, $sumN1); if (isset($a_infosDay[2][$currentId]['p_pmv_sum'][ARRAY_INDEX_COUNT])) { $sumN2 = $a_infosDay[2][$currentId]['p_pmv_sum'][ARRAY_INDEX_COUNT] + @$a_infosDay[2][$currentId]['f_pmv_sum'][ARRAY_INDEX_COUNT]; } $percentN2 = $this->getDiffPercent($sum, $sumN2); $id = $categoryAsked . $currentId; if ($level != 0) { $parentId = substr($categoryAsked, 0, strlen($categoryAsked) - 1); } else { $parentId = "root"; } $data = @$info[ARRAY_INDEX_IDCATEGORY]; //if($data != -1) // $toLoad['category'][] = $data; } else { if (substr($currentId, 0, 1) === 'p') { //print("pages = ".$currentId); $type = 'page'; $id = $currentId; //printDebug($info); if (!isset($info[ARRAY_INDEX_COUNT])) { $info[ARRAY_INDEX_COUNT] = 0; } $sum = @$info[ARRAY_INDEX_COUNT]; $entry = @$info[ARRAY_INDEX_ENTRYPAGE]; $exit = @$info[ARRAY_INDEX_EXITPAGE]; $sumtime = @$info[ARRAY_INDEX_TIME_TOTAL]; $singlepage = @$info[ARRAY_INDEX_PAGES_VISIT_ONEPAGE]; if (isset($info[ARRAY_INDEX_VARS])) { $a_vars = $this->getVarIdToName($info[ARRAY_INDEX_VARS]); } // Period-1 if (isset($a_infosDay[1][$currentId][ARRAY_INDEX_COUNT])) { $sumN1 = $a_infosDay[1][$currentId][ARRAY_INDEX_COUNT]; } $percentN1 = $this->getDiffPercent($sum, $sumN1); // Period -2 if (isset($a_infosDay[2][$currentId][ARRAY_INDEX_COUNT])) { $sumN2 = $a_infosDay[2][$currentId][ARRAY_INDEX_COUNT]; } $percentN2 = $this->getDiffPercent($sum, $sumN2); // Name if (!isset($info[ARRAY_INDEX_IDPAGE])) { //print("Problem, please report this error message :"); //var_dump($info); $data = -1; } else { $data = $info[ARRAY_INDEX_IDPAGE]; } //print("$data : ".$sumtime . "<br>"); } else { if (substr($currentId, 0, 1) === 'f') { $type = 'file'; $id = $currentId; $sum = $info[ARRAY_INDEX_COUNT]; // Period-1 //print("idfile=$currentId<br>"); if (isset($a_infosDay[1][$currentId][ARRAY_INDEX_COUNT])) { $sumN1 = $a_infosDay[1][$currentId][ARRAY_INDEX_COUNT]; } $percentN1 = $this->getDiffPercent($sum, $sumN1); // Period -2 if (isset($a_infosDay[2][$currentId][ARRAY_INDEX_COUNT])) { $sumN2 = $a_infosDay[2][$currentId][ARRAY_INDEX_COUNT]; } $percentN2 = $this->getDiffPercent($sum, $sumN2); // Name $data = $info[ARRAY_INDEX_IDPAGE]; } else { // this is related to the ARRAY_INDEX_IDCATEGORY //print("Whats that? Report it to phpmyvisites forums: "); //print($currentId); } } } if (!empty($data) && !empty($type) && $sum > 0) { $return[] = array('type' => $type, 'sum' => $sum, 'sumn1' => $sumN1, 'sumn2' => $sumN2, 'percentn1' => $percentN1, 'percentn2' => $percentN2, 'data' => $data, 'id' => $id, 'parentid' => $parentId, 'entry' => $entry, 'exit' => $exit, 'sumtime' => $sumtime, 'avgtime' => round($sumtime / $sum), 'exitrate' => 100 * $exit / $sum, 'singlepage' => $singlepage, 'vars' => $a_vars); } } } printTime('end of pages details'); $GLOBALS['sorting_index'] = 'sum'; uasort($return, "sortingDataInfo"); return array($displayInfo, $return, $headerInfo); } return false; }