/**
 * display time since the beginning of the script
 */
function printTime($detail = '', $force = false)
{
    if (PRINT_TIME || !empty($force)) {
        //Message à passer en variable dans le template footer.tpl
        $ch = "";
        if ($detail == 'EOF') {
            $ch .= '<span style="color:white;size:2">';
        } else {
            $ch .= "<br><b>{$detail}</b>";
        }
        $ch .= " Time : <b>" . getTimeElapsed() . "</b> sec";
        if ($detail == 'EOF') {
            $ch .= '</span>';
        }
        //$GLOBALS['PRINT_TIME_TO_SHOW'] = $ch;
        print ch;
    }
}
 function display()
 {
     $viewAllDetail = false;
     $paramAll = getRequestVar('all', 0, 'int');
     if ($paramAll == 1) {
         $viewAllDetail = true;
     }
     $period = $this->request->getPeriod();
     $idSite = $this->request->getSiteId();
     $idSite = getRequestVar('site', -1, 'int');
     /*
     		$rssHash = Request :: getRssHash();
     		if ($rssHash == "xxx") {
     			$urlStartGraph = "";
     		} else {
     			$urlStartGraph = PHPMV_URL; //Request::getCurrentCompletePath();
     			$urlStartGraph .= "/index.php?site=".$idSite."&rss_hash=".$rssHash;
     			$urlStartGraph .= "&date=".getRequestVar("date", date("Y-m-d"), "string")."&period=".$period."&mod=view_graph";
     		}
     */
     $pdf = new GenerePDF("P", "mm");
     /*
     		$pdf->AddFont("DejaVuSans", "", "DejaVuSans.php");
     		$pdf->AddFont("DejaVuSans", "B", "DejaVuSans.php");
     		$pdf->AddFont("DejaVuSans", "I", "DejaVuSans.php");
     		$pdf->AddFont("DejaVuSans", "BI", "DejaVuSans.php");
     		$pdf->phpmvFont = "DejaVuSans";
     */
     /*		
     		$pdf->AddFont("SILEOT", "", "SILEOT.php");
     		$pdf->AddFont("SILEOT", "B", "SILEOT.php");
     		$pdf->AddFont("SILEOT", "I", "SILEOT.php");
     		$pdf->AddFont("SILEOT", "BI", "SILEOT.php");
     		$pdf->phpmvFont = "SILEOT";
     */
     $pdf->currentModule = $this;
     if ($idSite > 0) {
         $site = new Site($idSite);
         $pdf->currentSite = $site;
     } else {
         $pdf->currentSite = null;
     }
     $pdf->period = $period;
     $pdf->literalDate = getLiteralDate($period, $this->request->getDate());
     if (isset($GLOBALS["lang"]["text_dir"])) {
         $pdf->direction = $GLOBALS["lang"]["text_dir"];
     } else {
         $pdf->direction = "ltr";
     }
     //$pdf->direction = "rtl";
     // Set PDF propertes data
     if ($idSite != -1) {
         $titre = "Statistics of " . $site->getName();
     } else {
         $titre = $pdf->pmvTranslate("summary_title");
     }
     $pdf->SetTitle($titre);
     $pdf->SetAuthor("phpMyVisites");
     $pdf->SetCreator($pdf->pmvTranslate("head_titre"));
     $pdf->SetKeywords($pdf->pmvTranslate("head_keywords"));
     $pdf->SetSubject($pdf->pmvTranslate("logo_description"));
     $pdf->SetFont($pdf->phpmvFont, "", 8);
     $pdf->SetLineWidth(0.1);
     // *******************************************************
     // Sites Summary
     // *******************************************************
     $pdf->titrePage1 = "summary_title";
     $pdf->AddPage();
     $pdf->setSitesSummaryStatistics();
     if ($idSite > 0) {
         $zoom = $this->data->getVisitsStatistics();
         if (!isset($zoom["nb_vis"])) {
             $txtNoVisit = $pdf->pmvTranslate("aucunvisiteur_titre");
             $pdf->Ln();
             $pdf->Ln();
             $pdf->SetFont($pdf->phpmvFont, "", 14);
             $pdf->SetTextColor(255, 0, 0);
             $w = $pdf->GetStringWidth($txtNoVisit) + 6;
             $pdf->SetX((210 - $w) / 2);
             $pdf->Cell($w, 8, $txtNoVisit, "", 0, "C", 0);
         } else {
             // Summary Link
             $pdf->setStyleSummaryLink();
             $pdf->Ln();
             $linkP1 = $pdf->AddLink();
             $pdf->SetX(50);
             $pdf->Cell(80, PDF_DEFAULT_ROW_HEIGHT, $pdf->pmvTranslate("visites_titre"), "0", "", "L", 0, $linkP1);
             $pdf->Ln();
             $linkP2 = $pdf->AddLink();
             $pdf->SetX(50);
             $pdf->Cell(80, PDF_DEFAULT_ROW_HEIGHT, $pdf->pmvTranslate("frequence_titre"), "0", "", "L", 0, $linkP2);
             $pdf->Ln();
             $linkP3 = $pdf->AddLink();
             $pdf->SetX(50);
             $pdf->Cell(80, PDF_DEFAULT_ROW_HEIGHT, $pdf->pmvTranslate("pagesvues_titre"), "0", "", "L", 0, $linkP3);
             $pdf->Ln();
             $linkP4 = $pdf->AddLink();
             $pdf->SetX(50);
             $pdf->Cell(80, PDF_DEFAULT_ROW_HEIGHT, $pdf->pmvTranslate("suivi_titre"), "0", "", "L", 0, $linkP4);
             $pdf->Ln();
             $linkP5 = $pdf->AddLink();
             $pdf->SetX(50);
             $pdf->Cell(80, PDF_DEFAULT_ROW_HEIGHT, $pdf->pmvTranslate("provenance_titre"), "0", "", "L", 0, $linkP5);
             $pdf->Ln();
             $linkP6 = $pdf->AddLink();
             $pdf->SetX(50);
             $pdf->Cell(80, PDF_DEFAULT_ROW_HEIGHT, $pdf->pmvTranslate("configurations_titre"), "0", "", "L", 0, $linkP6);
             $pdf->Ln();
             $linkP7 = $pdf->AddLink();
             $pdf->SetX(50);
             $pdf->Cell(80, PDF_DEFAULT_ROW_HEIGHT, $pdf->pmvTranslate("affluents_titre"), "0", "", "L", 0, $linkP7);
             $pdf->Ln();
             // *******************************************************
             // Statistics
             // *******************************************************
             $pdf->titrePage1 = "visites_titre";
             $pdf->AddPage();
             $pdf->SetLink($linkP1);
             $pdf->setVisitsStatistics();
             $pdf->setVisitsPeriodSummaries();
             $pdf->setVisitsPeriodSummariesGraph();
             $pdf->setVisitsAllPeriodSummaryGraph();
             $pdf->setVisitsTimeVisitsGraph();
             $pdf->setVisitsServerTimeGraph();
             $pdf->setVisitsLocalTimeGraph();
             // *******************************************************
             // Frequency
             // *******************************************************
             $pdf->titrePage1 = "frequence_titre";
             $pdf->AddPage();
             $pdf->SetLink($linkP2);
             $pdf->setFrequencyStatistics();
             $pdf->setFrequencyNewReturnVisits();
             $pdf->setFrequencyGraphNewReturnVisits();
             $pdf->setFrequencyGraphNbVisitsPerVisitor();
             // *******************************************************
             //  Pages views Information
             // *******************************************************
             $pdf->titrePage1 = "pagesvues_titre";
             $pdf->AddPage();
             $pdf->SetLink($linkP3);
             $pdf->setPagesZoomTab1();
             $pdf->setPagesZoomTab2($viewAllDetail);
             $pdf->setPagesZoomTpsParPage($viewAllDetail);
             $pdf->setPagesByVisitGraph();
             // *******************************************************
             // Visitor movement
             // *******************************************************
             $pdf->titrePage1 = "suivi_titre";
             $pdf->AddPage();
             $pdf->SetLink($linkP4);
             // Get data
             $pdf->setFollowUpEntryPages($viewAllDetail);
             $pdf->setFollowUpExitPages($viewAllDetail);
             $pdf->setFollowUpSinglePages($viewAllDetail);
             // *******************************************************
             //  Provenance
             // *******************************************************
             $pdf->titrePage1 = "provenance_titre";
             $pdf->AddPage();
             $pdf->SetLink($linkP5);
             $pdf->setWorldMap();
             // setDisplayDataArray ($id, $headline, $data, $text)
             //{pmv_data_array	data=$continentcountries id=continent template="common/display_data_array.tpl"
             $pdf->setSourceCountry($viewAllDetail);
             $pdf->setSourceProviders($viewAllDetail);
             // *******************************************************
             // Settings
             // *******************************************************
             $pdf->titrePage1 = "configurations_titre";
             $pdf->AddPage();
             $pdf->SetLink($linkP6);
             $pdf->setSettingsConfig($viewAllDetail);
             $pdf->setSettingsOs($viewAllDetail);
             $pdf->setSettingsBrowsersType();
             $pdf->setSettingsBrowsersInterest($viewAllDetail);
             $pdf->setSettingsPlugins();
             $pdf->setSettingsResolutionsInterest($viewAllDetail);
             $pdf->setSettingsNormalWidescreen();
             // *******************************************************
             // Referers
             // *******************************************************
             $pdf->titrePage1 = "affluents_titre";
             $pdf->AddPage();
             $pdf->SetLink($linkP7);
             $pdf->setReferersTypeInterest();
             $pdf->setReferersSearchEnginesInterest($viewAllDetail);
             $pdf->setReferersKeywordsInterest($viewAllDetail);
             $pdf->setReferersSitesInterest($viewAllDetail);
             $pdf->setReferersPartnersInterest($viewAllDetail);
             $pdf->setReferersNewslettersInterest($viewAllDetail);
             $pdf->setReferersDirect();
         }
     }
     $pdf->Ln(15);
     $pdf->SetFont($pdf->phpmvFont, "I", 6);
     $pdf->SetTextColor(128);
     $twtTime = sprintf($pdf->pmvTranslate("generique_timefooter"), getTimeElapsed());
     $w = $pdf->GetStringWidth($twtTime) + 6;
     $pdf->SetX((210 - $w) / 2);
     $pdf->Write(3, $twtTime);
     // *******************************************************
     // Output PDF
     // *******************************************************
     $pdf->Output("stats-site{$idSite}.pdf", "D");
 }
 function display()
 {
     $viewAllDetail = false;
     $paramAll = getRequestVar('all', 0, 'int');
     if ($paramAll == 1) {
         $viewAllDetail = true;
     }
     $period = $this->request->getPeriod();
     $idSite = $this->request->getSiteId();
     $idSite = getRequestVar('site', -1, 'int');
     $idPdf = getRequestVar('idPdf', -2, 'int');
     //$pdf = new GenerePDF("P", "mm");
     $pdf = new GenerePDF('P', 'mm', 'A4', true, "UTF-8");
     // patch by HonestQiao
     if ($GLOBALS['lang']['lang_iso'] == 'zh') {
         $pdf->phpmvFont = "GB";
         $pdf->AddGBFont();
     }
     // patch by HonestQiao
     if (isset($GLOBALS["lang"]["text_dir"])) {
         $pdf->direction = $GLOBALS["lang"]["text_dir"];
     } else {
         $pdf->direction = "ltr";
     }
     // ENGLISH
     /* SPECIFIC TCPDF
     		$l = Array();
     		
     		// PAGE META DESCRIPTORS --------------------------------------
     		
     		$l['a_meta_charset'] = "UTF-16";
     		$l['a_meta_dir'] = $pdf->direction;
     		$l['a_meta_language'] = "jp";
     		
     		// TRANSLATIONS --------------------------------------
     		$l['w_page'] = "page";
     		
     		$pdf->setLanguageArray($l); //set language items
     */
     //  fin specifique TCPDF
     //
     $pdf->currentModule = $this;
     if ($idSite > 0) {
         $site = new Site($idSite);
         $pdf->currentSite = $site;
     } else {
         $pdf->currentSite = null;
     }
     $pdf->period = $period;
     $pdf->date = $this->request->getDate();
     $pdf->literalDate = getLiteralDate($period, $this->request->getDate());
     // Set PDF propertes data
     if ($idSite != -1) {
         $titre = "Statistics of " . $site->getName();
     } else {
         $titre = $pdf->pmvTranslate("summary_title");
     }
     $pdf->SetTitle($titre);
     $pdf->SetAuthor("phpMyVisites");
     $pdf->SetCreator($pdf->pmvTranslate("head_titre"));
     $pdf->SetKeywords($pdf->pmvTranslate("head_keywords"));
     $pdf->SetSubject($pdf->pmvTranslate("logo_description"));
     $pdf->SetFont($pdf->phpmvFont, "", 8);
     $pdf->SetLineWidth(0.1);
     $firstPageOk = false;
     if ($idSite <= 0) {
         // *******************************************************
         // Sites Summary
         // *******************************************************
         $pdf->titrePage1 = "summary_title";
         $pdf->AddPage();
         $firstPageOk = true;
         $pdf->setSitesSummaryStatistics();
         $pdf->Ln();
     } else {
         $zoom = $this->data->getVisitsStatistics();
         if (!isset($zoom["nb_vis"])) {
             $pdf->titrePage1 = "summary_title";
             $pdf->AddPage();
             $firstPageOk = true;
             $txtNoVisit = $pdf->pmvTranslate("aucunvisiteur_titre");
             $pdf->setErrorMessage($txtNoVisit);
         } else {
             $confPf = new PdfConfigDb($idSite, true);
             if ($idPdf == -2) {
                 // No PDF
                 // Get default site pdf
                 $idPdf = $site->getIdPdf();
             }
             $paramShowPdf = $confPf->getPdf($idPdf);
             if ($paramShowPdf == null) {
                 //print("take defaut<br>");
                 $paramShowPdf = $confPf->getDefaultPdf();
             } else {
                 $paramShowPdf = $paramShowPdf->pdfParam;
             }
             $confShowPdf = $confPf->getChoixPdf();
             $pdfLink = array();
             // Create all links object
             foreach ($paramShowPdf as $keyTab => $info) {
                 $key = $info[PDF_INDEX_KEY];
                 if ($key == "PG0") {
                 } elseif (isset($confShowPdf[$key]["PAG"])) {
                     $pdfLink[$key] = $pdf->AddLink();
                 }
             }
             //$pdf->Cell(80, PDF_DEFAULT_ROW_HEIGHT, "test", "0", "", "L", 0);
             // Generate page
             foreach ($paramShowPdf as $keyTab => $info) {
                 $key = $info[PDF_INDEX_KEY];
                 if ($key == "PG0") {
                     $pdf->titrePage1 = "summary_title";
                     $pdf->AddPage();
                     $firstPageOk = true;
                     $pdf->setSitesSummaryStatistics();
                     $pdf->Ln();
                 } elseif ($key == "SUM") {
                     $firstPageOk = $pdf->setPageSummary($paramShowPdf, $confShowPdf, $pdfLink, $firstPageOk);
                 } elseif (isset($confShowPdf[$key]["PAG"])) {
                     if (isset($info[PDF_INDEX_AUTRE])) {
                         $lib = $info[PDF_INDEX_AUTRE];
                     } else {
                         $lib = $confShowPdf[$key]["TIT"];
                     }
                     $pdf->titrePage1 = $lib;
                     $pdf->AddPage();
                     $firstPageOk = true;
                     $pdf->SetLink($pdfLink[$key]);
                 } else {
                     if (!$firstPageOk) {
                         $pdf->AddPage();
                         $firstPageOk = true;
                     }
                     //echo "$key : PAR1 : ".$confShowPdf[$key]["PAR1"]." : ".$info[PDF_INDEX_AUTRE]."<br>";
                     //print("xx : z" . $key . "z : w" . $info . "w : " . $confShowPdf[$key]["FCT"] . "<br>");
                     //$pdf->$confShowPdf[$key]["FCT"]($info[0], $info[1]);
                     if ($confShowPdf[$key]["INT"] == "true" && $confShowPdf[$key]["ALL"] == "true") {
                         //echo "int all<br>";
                         $pdf->{$confShowPdf}[$key]["FCT"]($info[PDF_INDEX_ALL] == "true", $info[PDF_INDEX_INT] == "true");
                     } elseif ($confShowPdf[$key]["INT"] == "true") {
                         //echo "int<br>";
                         $pdf->{$confShowPdf}[$key]["FCT"]($info[PDF_INDEX_INT] == "true");
                     } elseif ($confShowPdf[$key]["ALL"] == "true") {
                         //echo "all<br>";
                         $pdf->{$confShowPdf}[$key]["FCT"]($info[PDF_INDEX_ALL] == "true");
                     } elseif (isset($confShowPdf[$key]["PAR1"]) && isset($info[PDF_INDEX_AUTRE])) {
                         //echo "PAR1<br>";
                         $pdf->{$confShowPdf}[$key]["FCT"]($info[PDF_INDEX_AUTRE]);
                     } else {
                         //echo "Vide<br>";
                         $pdf->{$confShowPdf}[$key]["FCT"]();
                     }
                 }
             }
         }
     }
     if (!$firstPageOk) {
         $pdf->AddPage();
         $firstPageOk = true;
     }
     $pdf->Ln(15);
     $pdf->SetFont($pdf->phpmvFont, "I", 6);
     $pdf->SetTextColor(128);
     $twtTime = sprintf($pdf->pmvTranslate("generique_timefooter"), getTimeElapsed());
     $w = $pdf->GetStringWidth($twtTime) + 6;
     $pdf->SetX((210 - $w) / 2);
     $pdf->Write(3, $twtTime);
     // *******************************************************
     // Output PDF
     // *******************************************************
     //echo "fin : " . $pdf->traceMsg;
     // stats-siteX.pdf
     $pdf->Output("stats-site{$idSite}.pdf", "D");
 }