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

  // Данные переменные определяют название страницы и подсказку.
  $title = 'Статистика&nbsp;посещений&nbsp;&nbsp;по&nbsp;страницам&nbsp;сайта'; 
  $pageinfo = 'Ниже перечислены страницы, которые участвуют в статистике. По гиперссылкам можно получить детальную статистику по каждой отдельной странице

  <br>Для получения статистики только по выбранной странице щелкните на ее имени в таблице.
  Если страница не будет выбрана, то статистика будет представлена для <a href=hits.php>всего сайта</a>.';    

  // Включаем заголовок страницы
  include "topcounter.php";
  // Если в запросе не переданны никакие параметры, выводим усреднённую
  // статистику по всему сайту. В противном случае, если указана
  // конкретная страничка ($id_page) выводим статистику по ней.
  if(empty($_GET['page'])) $page = 1;
  else $page = $_GET['page'];
  
  //если не передан интервал, то выводим данные за последние сутки
    if(!isset($_GET['begin']) ||!isset($_GET['end']))
  {
    $begin = 1;
    $end   = 0;
  }
  else
  {
   $begin = $_GET['begin'];
    $end   = $_GET['end'];
  }  
  
  // Постраничная навигация
  $page_link = 3;
  $first = ($page - 1)*$pnumber;
  if(empty($_GET['order']))
  {
  $orderstr = "num DESC" ;
  $order="";
  }
  else $orderstr = "title";
  // Формируем и выполняем SQL-запросы
    if($begin == 0) $tmp2 = "";
  else $tmp2 = " AND putdate >= DATE_FORMAT( NOW( ) , '%Y-%m-%d 23:59:59' ) - INTERVAL $begin DAY";
  $tmp1 = " putdate < DATE_FORMAT( NOW( ) , '%Y-%m-%d 23:59:59' ) - INTERVAL $end DAY";
$query = "SELECT COUNT(DISTINCT(id_page))
                   FROM $tbl_ip
                   WHERE 
   $tmp1 $tmp2";
 
  $num = mysql_query($query);
  if(!$num) puterror("Ошибка при обращении к таблице страниц");
  // Ввыводим ссылки на другие страницы
  $total = mysql_result($num,0);
  $number = (int)($total/$pnumber);
  if((float)($total/$pnumber) - $number != 0) $number++;
  // Проверяем есть ли ссылки слева
  if($page - $page_link > 1)
  {
    echo "<a href=$_SERVER[PHP_SELF]?id_page=$id_page&page=1&order=$order&begin=$begin&end=$end> <nobr>[1-$pnumber]</nobr></a>&nbsp;<em class=currentpage><nobr>&nbsp;...&nbsp;</nobr> </em>&nbsp;";
    // Есть
    for($i = $page - $page_link; $i<$page; $i++)
    {
        echo "&nbsp;<a href=$_SERVER[PHP_SELF]?id_page=$id_page&page=$i&order=$order&begin=$begin&end=$end> <nobr>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</nobr></a>&nbsp;";
    }
  }
  else
  {
    // Нет
    for($i = 1; $i<$page; $i++)
    {
        echo "&nbsp;<a href=$_SERVER[PHP_SELF]?id_page=$id_page&page=$i&order=$order&begin=$begin&end=$end> <nobr>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</nobr></a>&nbsp;";
    }
  }
  // Проверяем есть ли ссылки справа
  if($page + $page_link < $number)
  {
    // Есть
    for($i = $page; $i<=$page + $page_link; $i++)
    {
      if($page == $i)
        echo "<em class=currentpage><nobr>&nbsp;[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]&nbsp;</nobr> </em>";
      else
        echo "&nbsp;<a href=$_SERVER[PHP_SELF]?id_page=$id_page&page=$i&order=$order&begin=$begin&end=$end> <nobr>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</nobr></a>&nbsp;";
    }
    echo "<em class=currentpage><nobr>&nbsp;...&nbsp;</nobr> </em>&nbsp;<a href=$_SERVER[PHP_SELF]?id_page=$id_page&page=$number&order=$order&begin=$begin&end=$end> <nobr>[".(($number - 1)*$pnumber + 1)."-$total]</nobr></a>&nbsp;";
  }
  else
  {
    // Нет
    for($i = $page; $i<=$number; $i++)
    {
      if($number == $i)
      {
        if($page == $i)
          echo "<em class=currentpage><nobr>&nbsp;[".(($i - 1)*$pnumber + 1)."-$total]&nbsp;</nobr></em>";
        else
          echo "&nbsp;<a href=$_SERVER[PHP_SELF]?id_page=$id_page&page=$i&order=$order&begin=$begin&end=$end>[".(($i - 1)*$pnumber + 1)."-$total]</a>&nbsp;";
      }
      else
      {
        if($page == $i)
          echo "<em class=currentpage><nobr>&nbsp;[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]&nbsp;</nobr> </em>";
        else
          echo "&nbsp;<a href=$_SERVER[PHP_SELF]?id_page=$id_page&page=$i&order=$order&begin=$begin&end=$end> <nobr>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</nobr></a>&nbsp;";
      }
    }
  }
  echo "<br><br>";
  // Конец постраничной навигации

  // Выводим таблицу с адресами страниц, учавствующих в 
  // статистике и общее количество хитов для каждой из 
  // страниц.
  ?>
  <table class="table" width="100%" border="0" cellpadding="0" cellspacing="0">
   <tr class="header">
    <td class=headtable width=<?= 100/5 ?>% align=center><a href='index.php?begin=1&end=0&order=<?=$order?>'>Сегодня</a></td>
    <td class=headtable width=<?= 100/5 ?>% align=center><a href='index.php?begin=2&end=1&order=<?=$order?>'>Вчера</a></td>
    <td class=headtable width=<?= 100/5 ?>% align=center><a href='index.php?begin=7&end=0&order=<?=$order?>'>За 7 дней</a></td>
    <td class=headtable width=<?= 100/5 ?>% align=center><a href='index.php?begin=30&end=0&order=<?=$order?>'>За 30 дней</a></td>
    <td class=headtable width=<?= 100/5 ?>% align=center><a href='index.php?begin=0&end=0&order=<?=$order?>'>За всё время</a></td>
   </tr>
  </table>
  <table width="100%" class="table" border="0" cellpadding="0" cellspacing="0">      
    <tr class="header" align="center">
      <td><a href=index.php?page=<? echo "$page&begin=$begin&end=$end"; ?>&order=1 title="Сортировать таблицу по имени страниц">Страница</a></td>
      <td><a href=index.php?page=<? echo "$page&begin=$begin&end=$end" ?> title="Сортировать таблицу по количеству посещений">Количество посещений</a></td>
      <td>Последнее посещение</td> 
      <td>Действие</td>
    </tr>
  <?php
    $query_hits = "SELECT $tbl_ip.id_page,
                          $tbl_pages.name,
                          $tbl_pages.title AS title,
                          count($tbl_ip.id_ip) AS num,
                          MAX($tbl_ip.putdate) AS putdate
                   FROM $tbl_ip, $tbl_pages
                   WHERE $tbl_ip.id_page = $tbl_pages.id_page AND
 $tmp1 $tmp2
                   GROUP BY $tbl_ip.id_page 
                   ORDER BY $orderstr 
                   LIMIT $first, $pnumber";
    $pgs = mysql_query($query_hits);
    if(!$pgs) puterror("Ошибка при обращении к таблице страниц");
    while($pag = mysql_fetch_array($pgs))
    {
      if(empty($pag['title'])) $title = "http://".$_SERVER["SERVER_NAME"].$pag['name'];
      else $title = $pag['title'];
      echo "<tr>
              <td><a href=http://".$_SERVER["SERVER_NAME"].$pag['name'].">$title</a></td>
              <td>".$pag['num']."</td>
              <td>".$pag['putdate']."</td>
              <td align=center><a href=delpage.php?id_page=".$pag['id_page']." title='Удаление устаревших(мёртвых) страниц из системы подсчёта'>Удалить</a></td>
           </tr>";
    }
  ?>
  </table>
  <?php
  // Включаем завершение страницы
  include "bottomcounter.php";
?>