示例#1
0
    public function visits_hits()
    {
        $this->updateFilter();
        $sReturnMode = getRequest('param0');
        //
        $curr_page = (int) getRequest('p');
        //
        //
        $thisHost = cmsController::getInstance()->getCurrentDomain()->getHost();
        $thisLang = cmsController::getInstance()->getCurrentLang()->getPrefix();
        $thisUrl = '/' . $thisLang . '/admin/stat/' . __FUNCTION__;
        $thisUrlTail = '';
        //
        $factory = new statisticFactory(dirname(__FILE__) . '/classes');
        //
        if ($sReturnMode === 'xml') {
        } elseif ($sReturnMode === 'xml1') {
            $factory->isValid('visitCommon');
            $report = $factory->get('visitCommon');
            //
            $report->setStart($this->from_time);
            $report->setFinish($this->to_time);
            $report->setDomain($this->domain);
            $report->setUser($this->user);
            //
            $result = $report->get();
            // =================================
            $iHoveredAbs = 0;
            $iTotalAbs = $result['summ'];
            $iTotalRecs = $result['total'];
            $sAnswer = "";
            $sAnswer .= "<" . "?xml version=\"1.0\" encoding=\"utf-8\"?" . ">\n";
            $sAnswer .= <<<END
                <statistics> 
                 <report name="visitCommon" title="Динамика хитов по дням" host="{$thisHost}" lang="{$thisLang}"  timerange_start="{$this->from_time}" timerange_finish="{$this->to_time}">
                <table>
                    <column field="timestamp" title="День" showas="date" valueSuffix="" prefix="" />
                    <column field="count"    title="Хитов (абсолютное значение)" valueSuffix="" prefix="" />
                    <column field="rel"      title="Хитов (относительное значение)" valueSuffix="%" prefix="" />
                </table>
                <chart type="column" drawTrendLine="true">
                    <argument field="timestamp" />
                    <value field="count" description="Количество хитов" axisTitle="Количество хитов" />
                    <caption field="date" />
                </chart>
                <data>

END;
            $iOldTimeStamp = $this->from_time;
            foreach ($result['detail']['result'] as $info) {
                if (!isset($info['ts'])) {
                    $info['ts'] = NULL;
                }
                $sThisDate = date('d M', $info['ts']);
                while ($iOldTimeStamp < $info['ts'] && date('d M', $iOldTimeStamp) != $sThisDate) {
                    $attr_page_uri = htmlspecialchars('');
                    $sAnswer .= "<row " . "timestamp=\"" . $iOldTimeStamp . "\" " . "count=\"0\" " . "date=\"" . __stat_admin::makeDate('d M', $iOldTimeStamp) . "\" " . "uri=\"" . $attr_page_uri . "\" rel=\"0\" />\n";
                    $iOldTimeStamp += 86400;
                }
                $iOldTimeStamp = $info['ts'] + 86400;
                $iAbs = isset($info['cnt']) ? $info['cnt'] : 0;
                $iHoveredAbs += $iAbs;
                $page_uri = '';
                $attr_uri = htmlspecialchars($page_uri);
                $sAnswer .= "<row ";
                $sAttrs = '';
                $sAttrs .= 'timestamp="' . $info['ts'] . '" ';
                $sAttrs .= 'count="' . $iAbs . '" ';
                $sAttrs .= 'date="' . __stat_admin::makeDate('d M', $info['ts']) . '" ';
                $sAttrs .= 'uri="' . $attr_uri . '" ';
                $sAttrs .= 'rel="' . round($iAbs / ($iTotalAbs / 100), 1) . '" ';
                $sAnswer .= $sAttrs;
                $sAnswer .= "/>\n";
            }
            $sThisDate = date('d M', $this->to_time + 86400);
            while ($iOldTimeStamp < $this->to_time + 86400 && date('d M', $iOldTimeStamp) != $sThisDate) {
                $attr_page_uri = htmlspecialchars('');
                $sAnswer .= "<row " . "timestamp=\"" . $iOldTimeStamp . "\" " . "count=\"0\" " . "date=\"" . __stat_admin::makeDate('d M', $iOldTimeStamp) . "\" " . "uri=\"" . $attr_page_uri . "\" rel=\"0\" />\n";
                $iOldTimeStamp += 86400;
            }
            $iRest = $iTotalAbs - $iHoveredAbs;
            $sAnswer .= "</data>\n";
            $sAnswer .= "</report>\n</statistics>";
            //
            header("Content-type: text/xml; charset=utf-8");
            header("Content-length: " . strlen($sAnswer));
            $this->flush($sAnswer);
            return "";
        } elseif ($sReturnMode === 'xml2') {
            $factory->isValid('visitCommonHours');
            $report = $factory->get('visitCommonHours');
            //
            $report->setStart($this->from_time);
            $report->setFinish($this->to_time);
            $report->setDomain($this->domain);
            $report->setUser($this->user);
            //
            $result = $report->get();
            // =================================
            $iHoveredAbs = 0;
            $iTotalAbs = $result['summ'] ? $result['summ'] : 1;
            $iTotalRecs = $result['total'];
            $sAnswer = "";
            $sAnswer .= "<" . "?xml version=\"1.0\" encoding=\"utf-8\"?" . ">\n";
            $sAnswer .= <<<END
                <statistics>
                <report name="visitCommonHours" title="Распеределение хитов по часам суток" host="{$thisHost}" lang="{$thisLang}"  timerange_start="{$this->from_time}" timerange_finish="{$this->to_time}">
                <table>
                    <column field="hourint"  title="Часы" valueSuffix="" prefix="" />
                    <column field="count" title="Хитов (абсолютное значение)" valueSuffix="" prefix="" />
                    <column field="rel"   title="Хитов (относительное значение)" valueSuffix="%" prefix="" />
                </table>
                <chart type="line" drawTrendLine="true">
                    <argument field="hour" />
                    <value field="count" description="Количество хитов" axisTitle="Количество хитов" />
                    <caption field="hourint" />
                </chart>
                <data>

END;
            $iHour = 0;
            for ($iHour = 0; $iHour < 24; $iHour++) {
                if (isset($result['detail'][$iHour])) {
                    $info = $result['detail'][$iHour];
                } else {
                    $info = array('ts' => mktime($iHour), 'cnt' => 0);
                }
                $iAbs = $info['cnt'];
                $iHoveredAbs += $iAbs;
                $page_uri = '';
                $iTtlHour = intval(date('G', $info['ts']));
                $page_title = $iTtlHour . ".." . ($iTtlHour + 1);
                $attr_page_title = htmlspecialchars($page_title);
                $attr_uri = htmlspecialchars($page_uri);
                $sAnswer .= "<row ";
                $sAttrs = '';
                $sAttrs .= 'count="' . $iAbs . '" ';
                $sAttrs .= 'hourint="' . $attr_page_title . '" ';
                $sAttrs .= 'uri="' . $attr_uri . '" ';
                $sAttrs .= 'timestamp="' . $info['ts'] . '" ';
                $sAttrs .= 'rel="' . round($iAbs / ($iTotalAbs / 100), 1) . '" ';
                $sAttrs .= 'hour="' . $iTtlHour . '" ';
                $sAnswer .= $sAttrs;
                $sAnswer .= "/>\n";
            }
            $iRest = $iTotalAbs - $iHoveredAbs;
            $sAnswer .= "</data>\n";
            $sAnswer .= "</report>\n</statistics>";
            //
            header("Content-type: text/xml; charset=utf-8");
            header("Content-length: " . strlen($sAnswer));
            $this->flush($sAnswer);
            return "";
        } else {
            $params = array();
            $params['filter'] = $this->getFilterPanel();
            $params['ReportHitsByDays']['flash:report1'] = "url=" . $thisUrl . "/xml1/" . $thisUrlTail;
            $params['ReportHitsByHours']['flash:report2'] = "url=" . $thisUrl . "/xml2/" . $thisUrlTail;
            $this->setDataType("settings");
            $this->setActionType("view");
            $data = $this->prepareData($params, 'settings');
            $this->setData($data);
            return $this->doData();
        }
    }
		public function visitors() {
			$this->updateFilter();
			//
			$sReturnMode = getRequest('param0');
			//
						
			//
			$thisHost = cmsController::getInstance()->getCurrentDomain()->getHost();
			$thisLang = cmsController::getInstance()->getCurrentLang()->getPrefix();
			$thisUrl = '/'.$thisLang.'/admin/stat/'.__FUNCTION__;
			$thisUrlTail = '';
			//
			$factory = new statisticFactory(dirname(__FILE__) . '/classes');
			//
			if ($sReturnMode === 'xml1') {
				$factory->isValid('visitersCommon');
				$report = $factory->get('visitersCommon');
				//
				$report->setStart($this->from_time);
				$report->setFinish($this->to_time);
				$report->setLimit(PHP_INT_MAX);
				$report->setOffset(0);
				$report->setDomain($this->domain); $report->setUser($this->user);
				//
				$result = $report->get();
				//
				$iHoveredAbs = 0; $iTotalAbs = $result['summ'];
				$iTotalRecs = $result['total'];
				$sAnswer = "";
				$sAnswer .= "<"."?xml version=\"1.0\" encoding=\"utf-8\"?".">\n";
				$sAnswer .= <<<END
					<statistics>
					<report name="visitCommon" title="Динамика захода посетителей за выбранный период по дням" host="{$thisHost}" lang="{$thisLang}"  timerange_start="{$this->from_time}" timerange_finish="{$this->to_time}">
					<table>
						<column field="name" title="День" valueSuffix="" prefix="" />
						<column field="cnt" title="Сессий" valueSuffix="" prefix="" />
					</table>
					<chart type="column" drawTrendLine="true">
						<argument />
						<value field="cnt" description="Количество сессий" axisTitle="Количество сессий" />
						<caption field="name" />
					</chart>                    
					<data>
END;
					$iOldTimeStamp = $this->from_time;
					foreach($result['detail'] as $info) {
						$sThisDate = date('d M', $info['ts']);                    
						while( ($iOldTimeStamp < $info['ts']) && 
						   (date('d M', $iOldTimeStamp) != $sThisDate) ) {
							$attr_page_uri   = '';
							$sAnswer .= "<row ".
									"ts=\"".$iOldTimeStamp."\" ".
									"cnt=\"0\" ".
									"name=\"".__stat_admin::makeDate('d M', $iOldTimeStamp)."\" ".
									"uri=\"".$attr_page_uri."\" rel=\"0\" />\n";
							$iOldTimeStamp += 86400;
						}
						$iOldTimeStamp = $info['ts'] + 86400;
						$iAbs = $info['cnt'];
						$iHoveredAbs += $iAbs;
						$page_uri = '/'.$thisLang.'/admin/stat/visitors_by_date/'.$info['ts'];
						$page_title = date('d M', $info['ts']);
						//
						$attr_page_title = htmlspecialchars($page_title);
						$attr_uri= htmlspecialchars($page_uri);
						//
						$sAnswer .= "<row ";
							$sAttrs = '';
							$sAttrs .= 'cnt="'.$iAbs.'" ';
							$sAttrs .= 'name="'.$attr_page_title.'" ';
							$sAttrs .= 'uri="'.$attr_uri.'" ';
							$sAttrs .= 'ts="'.$info['ts'].'" ';
							$sAnswer .= $sAttrs;
						$sAnswer .= "/>\n";
					}
					$sThisDate = date('d M', $this->to_time+86400);
					while( ($iOldTimeStamp < $this->to_time+86400) && 
						   (date('d M', $iOldTimeStamp) != $sThisDate) ) {
						$attr_page_uri   = htmlspecialchars( '' );
						$sAnswer .= "<row ".
								"ts=\"".$iOldTimeStamp."\" ".
								"cnt=\"0\" ".
								"name=\"".__stat_admin::makeDate('d M', $iOldTimeStamp)."\" ".
								"uri=\"".$attr_page_uri."\" rel=\"0\" />\n";
						$iOldTimeStamp += 86400;
					}
					$iRest = ($iTotalAbs - $iHoveredAbs);
					$sAnswer .= "</data>\n";
				$sAnswer .= "</report>\n</statistics>";
				//
				header("Content-type: text/xml; charset=utf-8");
				header("Content-length: ".strlen($sAnswer));
				$this->flush($sAnswer);
				return "";
			} elseif ($sReturnMode === 'xml2') {
				$factory->isValid('visitersCommonHours');
				$report = $factory->get('visitersCommonHours');
				//
				$report->setStart($this->from_time);
				$report->setFinish($this->to_time);
				$report->setLimit(PHP_INT_MAX);
				$report->setOffset(0);
				$report->setDomain($this->domain); $report->setUser($this->user);
				//
				$result = $report->get();
				//
				$iHoveredAbs = 0; $iTotalAbs = $result['summ'];
				$iTotalRecs = $result['total'];
				$sAnswer = "";
				$sAnswer .= "<"."?xml version=\"1.0\" encoding=\"utf-8\"?".">\n";
				$sAnswer .= <<<END
					<statistics>
					<report name="visitCommonHours" title="Динамика захода посетителей за выбранный период по часам суток" host="{$thisHost}" lang="{$thisLang}" timerange_start="{$this->from_time}" timerange_finish="{$this->to_time}">
					<table>
						<column field="name" title="Час" valueSuffix="" prefix="" />
						<column field="cnt" title="Сессий" valueSuffix="" prefix="" />
					</table>
					<chart type="line" drawTrendLine="true">
						<argument />
						<value field="cnt" description="Количество сессий" axisTitle="Количество сессий" />
						<caption field="name" />
					</chart>                    
					<data>
END;
					$iHour = 0;
					for ($iHour = 0; $iHour < 24; $iHour++) {
						if (isset($result['detail'][$iHour])) {
							$info = $result['detail'][$iHour];
						} else {
							$info = array('ts'=>mktime($iHour), 'cnt'=>0);
						}
						//
						$iAbs = $info['cnt'];
						$iHoveredAbs += $iAbs;
						$page_uri = '';
						$iTtlHour = intval(date('G', $info['ts']));
						$page_title = $iTtlHour."..".($iTtlHour+1);
						//
						$attr_page_title = htmlspecialchars($page_title);
						$attr_uri= htmlspecialchars($page_uri);
						//
						$sAnswer .= "<row ";
							$sAttrs = '';
							$sAttrs .= 'cnt="'.$iAbs.'" ';
							$sAttrs .= 'name="'.$attr_page_title.'" ';
							$sAttrs .= 'uri="'.$attr_uri.'" ';
							$sAttrs .= 'ts="'.$info['ts'].'" ';
							$sAttrs .= 'hour="'.$iTtlHour.'" ';
							$sAnswer .= $sAttrs;
						$sAnswer .= "/>\n";
					}
					$iRest = ($iTotalAbs - $iHoveredAbs);
					if ($iRest > 0) {
						$sAnswer .= "<row cnt=\"{$iRest}\" name=\"Прочее\" uri=\"\" />";
					}
					$sAnswer .= "</data>\n";
				$sAnswer .= "</report>\n</statistics>";
				//
				header("Content-type: text/xml; charset=utf-8");
				header("Content-length: ".strlen($sAnswer));
				$this->flush($sAnswer);
				return "";
			} else {
				$factory->isValid('visitersCommon');
				$report = $factory->get('visitersCommon');
				//
				$report->setStart($this->from_time);
				$report->setFinish($this->to_time);
				$report->setLimit(PHP_INT_MAX);
				$report->setOffset(0);
				//
				$result = $report->get();
				//
				$params = array();
				$params['filter'] = $this->getFilterPanel();
				//$params['total']['int:sessions_routine']      = strlen($result['avg']['routine'])?$result['avg']['routine']:"-";
				//$params['total']['int:sessions_weekend']      = strlen($result['avg']['weekend'])?$result['avg']['weekend']:"-";
				$params['ReportSessionsByDays']['flash:report1']  = "url=".$thisUrl."/xml1/".$thisUrlTail;
				$params['ReportSessionsByHours']['flash:report2'] = "url=".$thisUrl."/xml2/".$thisUrlTail;
				$this->setDataType("settings");
				$this->setActionType("view");
				$data = $this->prepareData($params, 'settings');
				$this->setData($data);                          
				//
				return $this->doData();
			}
		}
    public function visitTime()
    {
        $this->updateFilter();
        //
        $sReturnMode = getRequest('param0');
        $thisHost = cmsController::getInstance()->getCurrentDomain()->getHost();
        $thisLang = cmsController::getInstance()->getCurrentLang()->getPrefix();
        $thisUrl = '/' . $thisLang . '/admin/stat/' . __FUNCTION__;
        $thisUrlTail = '';
        //
        $factory = new statisticFactory(dirname(__FILE__) . '/classes');
        $factory->isValid('visitTime');
        $report = $factory->get('visitTime');
        //
        $report->setStart($this->from_time);
        $report->setFinish($this->to_time);
        $report->setDomain($this->domain);
        $report->setUser($this->user);
        //$report->setLimit($this->items_per_page);
        //
        //
        $result = $report->get();
        $sGroupBy = $result['groupby'];
        //
        if ($sReturnMode === 'xml') {
            $sAnswer = "";
            $sAnswer .= "<" . "?xml version=\"1.0\" encoding=\"utf-8\"?" . ">\n";
            $sAnswer .= <<<END
\t\t\t\t<statistic report="visitTime" host="{$thisHost}" lang="{$thisLang}" timerange_start="{$this->from_time}" timerange_finish="{$this->to_time}" groupby="{$sGroupBy}">
\t\t\t\t<details>
END;
            foreach ($result['detail'] as $info) {
                $iAbs = $info['cnt'];
                $page_uri = '';
                $page_title = $info['minutes'];
                //
                $attr_page_title = htmlspecialchars($page_title);
                $attr_uri = htmlspecialchars($page_uri);
                //
                $sAnswer .= "<detail ";
                $sAttrs = '';
                $sAttrs .= 'cnt="' . $iAbs . '" ';
                $sAttrs .= 'name="' . $attr_page_title . '" ';
                $sAttrs .= 'uri="' . $attr_uri . '" ';
                $sAnswer .= $sAttrs;
                $sAnswer .= "/>\n";
            }
            $sAnswer .= <<<END
\t\t\t\t</details>
\t\t\t\t<dynamic>
END;
            foreach ($result['dynamic'] as $info) {
                $fAbs = $info['minutes_avg'];
                $page_uri = '';
                $page_title = $info['ts'];
                //
                $attr_page_title = htmlspecialchars($page_title);
                $attr_uri = htmlspecialchars($page_uri);
                //
                $sAnswer .= "<detail ";
                $sAttrs = '';
                $sAttrs .= 'cnt="' . $fAbs . '" ';
                $sAttrs .= 'name="' . $attr_page_title . '" ';
                $sAttrs .= 'uri="' . $attr_uri . '" ';
                $sAnswer .= $sAttrs;
                $sAnswer .= "/>\n";
            }
            $sAnswer .= <<<END
\t\t\t\t</dynamic>
\t\t\t</statistic>
END;
            //
            header("Content-type: text/xml; charset=utf-8");
            header("Content-length: " . strlen($sAnswer));
            $this->flush($sAnswer);
            return "";
        } elseif ($sReturnMode === 'xml1') {
            $sAnswer = "";
            $sAnswer .= "<" . "?xml version=\"1.0\" encoding=\"utf-8\"?" . ">\n";
            $sAnswer .= <<<END
\t\t\t\t<statistics>
\t\t\t\t<report name="visitTime1" title="Распределение посещений по времени нахождения на сайте" host="{$thisHost}" lang="{$thisLang}" timerange_start="{$this->from_time}" timerange_finish="{$this->to_time}">
\t\t\t\t<table>
\t\t\t\t\t<column field="name" title="Продолжительность" units="минут" prefix="" />
\t\t\t\t\t<column field="cnt" title="Посещений абс." units="" prefix="" />
\t\t\t\t\t<column field="rel" title="Посещений отн." valueSuffix="%" prefix="" />
\t\t\t\t</table>
\t\t\t\t<chart type="pie">
\t\t\t\t\t<argument  />
\t\t\t\t\t<value field="cnt" description="Количество посещений" axisTitle="Количество посещений" />
\t\t\t\t\t<caption field="name" />
\t\t\t\t</chart>
\t\t\t\t<data>
END;
            $iAbsTotal = 0;
            foreach ($result['detail'] as $info) {
                if (isset($info['cnt'])) {
                    $iAbsTotal += intval($info['cnt']);
                }
            }
            foreach ($result['detail'] as $info) {
                $iAbs = $info['cnt'];
                $page_uri = '';
                $page_title = intval($info['minutes']);
                if ($page_title > 50) {
                    $page_title = "более 50";
                } elseif ($page_title > 40) {
                    $page_title = "41 ... 50";
                } elseif ($page_title > 30) {
                    $page_title = "31 ... 40";
                } elseif ($page_title > 20) {
                    $page_title = "21 ... 30";
                } elseif ($page_title > 10) {
                    $page_title = "11 ... 20";
                }
                //
                $attr_page_title = htmlspecialchars($page_title);
                $attr_uri = htmlspecialchars($page_uri);
                //
                $sAnswer .= "<row ";
                $sAttrs = '';
                $sAttrs .= 'cnt="' . $iAbs . '" ';
                $sAttrs .= 'name="' . $attr_page_title . '" ';
                $sAttrs .= 'uri="' . $attr_uri . '" ';
                $sAttrs .= 'rel="' . ($iAbsTotal ? round($iAbs / ($iAbsTotal / 100), 1) : '0') . '" ';
                $sAnswer .= $sAttrs;
                $sAnswer .= "/>\n";
            }
            $sAnswer .= "</data>\n";
            $sAnswer .= "</report></statistics>";
            //
            header("Content-type: text/xml; charset=utf-8");
            header("Content-length: " . strlen($sAnswer));
            $this->flush($sAnswer);
            return "";
        } elseif ($sReturnMode === 'xml2') {
            $sPeriod = "Период";
            $sPeriodOf = "периодам";
            if ($sGroupBy === 'month') {
                $sPeriod = "Месяц";
                $sPeriodOf = "месяцам";
                $sAxisTitle = "месяцы";
            } elseif ($sGroupBy === 'week') {
                $sPeriod = "Неделя";
                $sPeriodOf = "неделям";
                $sAxisTitle = "недели";
            }
            //
            $sAnswer = "<data>\n";
            $sort_arr = array();
            foreach ($result['dynamic'] as $uniqid => $row) {
                foreach ($row as $key => $value) {
                    $sort_arr[$key][$uniqid] = $value;
                }
            }
            if (isset($sort_arr['ts']) && !empty($sort_arr['ts'])) {
                array_multisort($sort_arr['ts'], SORT_ASC, $result['dynamic']);
            }
            $iResponseRowCount = 0;
            $iOldTimeStamp = $this->from_time;
            foreach ($result['dynamic'] as $info) {
                $iNewTS = strtotime('-7 day', $info['ts']);
                if ($iOldTimeStamp > $iNewTS) {
                    $info['ts'] = $iOldTimeStamp;
                }
                $sThisDate = date('W', $info['ts']);
                while ($iOldTimeStamp < $info['ts'] && date('W', $iOldTimeStamp) != $sThisDate) {
                    $attr_page_uri = '';
                    $sAnswer .= "<row " . "cnt=\"0\" " . "name=\"от " . __stat_admin::makeDate('M-d', $iOldTimeStamp) . "\" " . "uri=\"" . $attr_page_uri . "\" " . "ts=\"" . $iOldTimeStamp . "\" />\n";
                    $iOldTimeStamp += 86400 * 7;
                    $iResponseRowCount++;
                }
                $iOldTimeStamp = $info['ts'] + 86400 * 7;
                $fAbs = $info['minutes_avg'];
                $page_uri = '';
                $page_title = "от " . __stat_admin::makeDate('M-d', intval($info['ts']));
                //
                $attr_page_title = htmlspecialchars($page_title);
                $attr_uri = htmlspecialchars($page_uri);
                //
                $sAnswer .= "<row ";
                $sAttrs = '';
                $sAttrs .= 'cnt="' . round($fAbs, 1) . '" ';
                $sAttrs .= 'name="' . $attr_page_title . '" ';
                $sAttrs .= 'uri="' . $attr_uri . '" ';
                $sAttrs .= 'ts="' . $info['ts'] . '" ';
                $sAnswer .= $sAttrs;
                $sAnswer .= "/>\n";
                $iResponseRowCount++;
            }
            $sThisDate = date('d M', $this->to_time + 86400);
            while ($iOldTimeStamp < $this->to_time + 86400 && date('d M', $iOldTimeStamp) != $sThisDate) {
                $attr_page_uri = htmlspecialchars('');
                $sAnswer .= "<row " . "cnt=\"0\" " . "name=\"от " . __stat_admin::makeDate('M-d', $iOldTimeStamp) . "\" " . "uri=\"" . $attr_page_uri . "\" " . "ts=\"" . $iOldTimeStamp . "\" />\n";
                $iOldTimeStamp += 86400 * 7;
                $iResponseRowCount++;
            }
            $sAnswer .= "</data>\n";
            $sAnswer .= "</report></statistics>";
            if ($iResponseRowCount > 1) {
                $sChartType = "line";
            } else {
                $sChartType = "column";
            }
            $sAnswerHdr = "<" . "?xml version=\"1.0\" encoding=\"utf-8\"?" . ">\n";
            $sAnswerHdr .= <<<END
\t\t\t\t<statistics>
\t\t\t\t<report name="visitTime2" title="Динамика средней продолжительности нахождения посетителей на сайте" host="{$thisHost}" lang="{$thisLang}" timerange_start="{$this->from_time}" timerange_finish="{$this->to_time}" groupby="{$sGroupBy}">
\t\t\t\t<table>
\t\t\t\t\t<column field="ts" title="{$sPeriod}" showas="date" units="" prefix="" />
\t\t\t\t\t<column field="cnt" title="Средняя продолжительность" units="" prefix="" />
\t\t\t\t</table>
\t\t\t\t<chart type="{$sChartType}" drawTrendLine="true">
\t\t\t\t\t<argument fiels="ts" axisTitle="{$sAxisTitle}"  />
\t\t\t\t\t<value field="cnt" description="Средняя продолжительность" axisTitle="Минут"  />
\t\t\t\t\t<caption field="name" />
\t\t\t\t</chart>                                
END;
            $sAnswer = $sAnswerHdr . $sAnswer;
            //
            header("Content-type: text/xml; charset=utf-8");
            header("Content-length: " . strlen($sAnswer));
            $this->flush($sAnswer);
            return "";
        } else {
            $params = array();
            $params['filter'] = $this->getFilterPanel();
            $params['ReportVisitTime']['flash:report1'] = "url=" . $thisUrl . "/xml1/" . $thisUrlTail;
            $params['ReportVisitTimeChange']['flash:report2'] = "url=" . $thisUrl . "/xml2/" . $thisUrlTail;
            $this->setDataType("settings");
            $this->setActionType("view");
            $data = $this->prepareData($params, 'settings');
            $this->setData($data);
            return $this->doData();
        }
    }