<?php
  ///////////////////////////////////////////////////
  // Система учёта посещаемости сайта - PowerCounter
  // 2003-2006 (C) IT-студия SoftTime (http://www.softtime.ru)
  // Поддержка: http://www.softtime.ru/forum/
  // Левин А.В. (loki_angel@mail.ru)
  // Симдянов И.В. (simdyanov@softtime.ru)
  // Кузнецов М.В. (kuznetsov@softtime.ru)
  // Голышев С.В. (softtime@softtime.ru)
  ///////////////////////////////////////////////////
  // 01.05.2005 Симдянов И.В. (simdyanov@softtime.ru)
  // адаптация кода
  ///////////////////////////////////////////////////
  // Выставляем уровень обработки ошибок (http://www.softtime.ru/info/articlephp.php?id_article=23)
  Error_Reporting(E_ALL & ~E_NOTICE); 

  if (!isset($_GET["begin"])) $begin = 1;
  else $begin = $_GET["begin"];
  
  if (!isset($_GET['nav'])) $nav = 0;
  else $nav = $_GET['nav'];
  if ($nav==0) 
  {
    $dateofput = "min( putdate )";
    $title = 'Точки входа';
    $pageinfo = 'На этой странице вы можете видеть через какие страницы посетители входили на ваш ресурс';
  }
  else 
  {
    $dateofput = "max( putdate )";
    $title = 'Точки выхода';
    $pageinfo = 'На этой странице вы можете видеть через какие страницы посетители выходили с вашего ресурса';
  }
 
  $helppage = '';
  // Включаем массив временных интервалов
  require_once("time_interval.php");
  // Заголовок страницы
  include "topcounter.php";
?>
<table width=100% border=0>
<tr valign=top>
  <td width=30%>
  <?
  print "<a href='enterpoint.php";
  if ($nav==0) print "?nav=1'>Точки выхода";
  else print "?nav=0'>Точки входа";
  print "</a>";  
  ?>
  </td>  
  <td align=left>
<table class="table" width="60%" border="0" cellpadding="0" cellspacing="0">
  <tr class="header" align="center">
    <td>Страница</td>
    <td>
      <? if ($nav==0) print "Входов";
         else print "Выходов"; ?>
    </td></tr>
      <?  
  // $begin - число дней, которое необходимо вычесть из текущей даты,
  // для того чтобы получить начальную точку временного интервала
  // $end - число дней, которое необходимо вычесть из текущей даты,
  // для того чтобы получить конечную точку временного интервала
  // $id_page - первичный ключ записи таблицы pages, соответствующей странице сайта
  if(!isset($_GET['begin']) ||
     !isset($_GET['end']))
  {
    $begin = 1;
    $end   = 0;
  }
  else
  {
    $begin = $_GET['begin'];
    $end   = $_GET['end'];
  }

  // Запрос на статистику за временной интервал определяемый
  // параметрами $begin,$end 
  if ($begin==0) $begin=(intval((time()-$date['data'])/3600/24)+1);
  for ($i=$begin; $i>$end; $i--)
  {
    if($begin == 0) $tmp2 = ""; 
    else 
    {
      $tmp2 = " AND putdate >= DATE_FORMAT( NOW( ) , '%Y-%m-%d 23:59:59' ) - INTERVAL ".$i." DAY ";
      $tmp1 = " putdate < DATE_FORMAT( NOW( ) , '%Y-%m-%d 23:59:59' ) - INTERVAL ".($i-1)." DAY ";
    }

   //Запрос вытаскивающий из базы все точки входа за сутки
   $query_points="SELECT ip, $dateofput as putdate
                    FROM $tbl_ip
                    WHERE 
                      systems != 'none' AND
                      systems != 'robot_yandex' AND
                      systems != 'robot_google' AND
                      systems != 'robot_rambler' AND
                      systems != 'robot_aport' AND
                      systems != 'robot_msn' AND
                    $tmp1 
                    $tmp2 
                    GROUP BY ip";

    $pags = mysql_query($query_points);    
    //Перегоняем точки входа в отдельный массив (этот массив будет прогоняться столько раз, за сколько суток будет статистика.
    while($pag = mysql_fetch_array($pags))
    {
     $qw="SELECT id_page FROM $tbl_ip WHERE ip='".$pag['ip']."' AND putdate='".$pag['putdate']."'";
     $hit=mysql_fetch_array(mysql_query($qw));
      $pages[]=$hit['id_page'];
    }
  }

  //Получаем массив с названиями, id и адресами страниц      
  $p_n=mysql_query("SELECT * FROM $tbl_pages");
  while ($p_names=mysql_fetch_array($p_n))
  {
    $names[($p_names['id_page'])]['name']=$p_names['name'];
    $names[($p_names['id_page'])]['title']=$p_names['title'];
  } 
 
  //Считаем количество входов на каждую страницу  
  if (isset($pages))
  {
    $points=array_count_values($pages); 
    //Сортируем по количесву входов в обратном порядке
    arsort($points);  
    //Выводим таблицу где будет название страницы и количество заходов через нее
    if(count($points) > 0)
    foreach ($points as $id=>$hits)
    { 
      if(count($names) > 0)
      foreach ($names as $id2=>$name)
      {  
        if ($id==$id2) 
        { 
          print "<tr><td><a href=http://".$_SERVER["SERVER_NAME"].$names[$id]['name']." target=_blank title='Открыть страницу сайта'>http://".$_SERVER["SERVER_NAME"].$names[$id]['name']."</a></td><td>".$hits."</td><tr>"; 
        }
      }
    }
  }
  //Выводим нулевые позиции 
  if (count($points)>0)
  {
    $tmp="";
    foreach ($points as $id=>$hits)
    $tmp=($tmp.$id.",");
  } 
  $qwery=mysql_query("SELECT * FROM $tbl_pages WHERE id_page NOT IN (".$tmp."0)");
  while ($zero=mysql_fetch_array($qwery))
    print "<tr><td><a href=http://".$_SERVER["SERVER_NAME"].$zero['name']." target=_blank title='Открыть страницу сайта'>http://".$_SERVER["SERVER_NAME"].$zero['name']."</a></td><td>0</td><tr>";
  ?>
  </table>
  </td></tr></table>
  <? 
    include "bottomcounter.php";   
?>