<?php
/*
=====================================================
 created by ko1yan... icq: 380119, Plugin for DLE
-----------------------------------------------------
 Версия данного модуля: 3.9
-----------------------------------------------------
 email: konohoff@gmail.com
 site:  www.dangels.net.ru
-----------------------------------------------------
 Сopyright (c) ko1yan
=====================================================
 Данный код защищен авторскими правами
=====================================================
 Файл: refer.php
-----------------------------------------------------
 Назначение: Переходы с сайтов
=====================================================
*/
 if(!defined('DATALIFEENGINE')) {
  die("Hacking attempt! module created by ko1yan");
 }
$version = "3.9";
include ENGINE_DIR.'/data/refer.txt';

//-------------------------------
//  Элементы дизайна
//-------------------------------

function opentable() {
echo <<<HTML
<table width="100%">
    <tr>
        <td width="4"><img src="engine/skins/images/tl_lo.gif" width="4" height="4" border="0"></td>
        <td background="engine/skins/images/tl_oo.gif"><img src="engine/skins/images/tl_oo.gif" width="1" height="4" border="0"></td>
        <td width="6"><img src="engine/skins/images/tl_ro.gif" width="6" height="4" border="0"></td>
    </tr>
    <tr>
        <td background="engine/skins/images/tl_lb.gif"><img src="engine/skins/images/tl_lb.gif" width="4" height="1" border="0"></td>
        <td style="padding:5px;" bgcolor="#FFFFFF">
HTML;
}
function closetable() {
echo <<<HTML
    </td>
        <td background="engine/skins/images/tl_rb.gif"><img src="engine/skins/images/tl_rb.gif" width="6" height="1" border="0"></td>
    </tr>
    <tr>
        <td><img src="engine/skins/images/tl_lu.gif" width="4" height="6" border="0"></td>
        <td background="engine/skins/images/tl_ub.gif"><img src="engine/skins/images/tl_ub.gif" width="1" height="6" border="0"></td>
        <td><img src="engine/skins/images/tl_ru.gif" width="6" height="6" border="0"></td>
    </tr>
</table>
HTML;
}
function tableheader($value) {
echo <<<HTML
<table width="100%">
    <tr>
        <td bgcolor="#EFEFEF" height="29" style="padding-left:10px;"><div class="navigation">$value</div></td>
    </tr>
</table>
HTML;
 unterline();
}
function unterline() {
echo <<<HTML
<div class="unterline"></div>
HTML;
}

//-------------------------------
// Удаление всех переходов
//-------------------------------

if ($action == "del") {
$db->query("TRUNCATE TABLE ".PREFIX."_referer");
msg("info", "Информация", "Все переходы были удалены!", "$PHP_SELF?mod=refer");

//-------------------------------
// Спрашиваем удалять или нет
//-------------------------------

 } elseif ($action == "on") {
echoheader("refer", "Переходы с сайтов");
opentable();
tableheader("Переходы с сайтов");
echo <<<HTML
<center>Вы уверены, что хотите удалить <b>все</b> переходы?<br><br><input type='button' value='  Нет  ' class='bbcodes' onclick="window.location='$PHP_SELF?mod=refer'"> &nbsp; <input type='button' value='   Да   ' class='bbcodes' onclick="window.location='$PHP_SELF?mod=refer&action=del'"></center>
HTML;
closetable();
echofooter();

//-------------------------------
// Настройки модуля
//-------------------------------

 } elseif ($action == "options") {
 echoheader("refer", "Переходы с сайтов");
opentable();
tableheader("Настройка модуля");
echo <<<HTML
<form action="$PHP_SELF?mod=refer&action=save" method=post><table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td colspan="2"><table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td style="padding:4px" class="option"><b>Количество рефералов</b><br /><span class=small>Максимальное значение рефералов</span></td>
    <td width=394 align=middle>
HTML;
print "<input name=max_ref type=text value='$max_ref' style='text-align: center;' size=30 class=edit>";
echo <<<HTML
</td>
  </tr>
<tr><td background="engine/skins/images/mline.gif" height=1 colspan=2></td></tr>
  <tr>
    <td style="padding:4px" class="option"><b>Переходов на странице</b><br /><span class=small>Количество переходов на одной странице</span></td>
    <td width=394 align=middle>
HTML;
print "<input name=per_page type=text value='$per_page' style='text-align: center;' size=30 class=edit>";
echo <<<HTML
</td>
  </tr>
<tr><td background="engine/skins/images/mline.gif" height=1 colspan=2></td></tr>
  <tr>
    <td style="padding:4px" class="option"><b>Обрезание ссылок</b><br /><span class=small>Количество символов в названии ссылки</span></td>
    <td width=394 align=middle>
HTML;
print "<input name=link_obr type=text value='$link_obr' style='text-align: center;' size=30 class=edit>";
echo <<<HTML
</td>
  </tr>
<tr><td background="engine/skins/images/mline.gif" height=1 colspan=2></td></tr>
  <tr>
    <td style="padding:4px" class="option"><b>Формат времени для рефералов</b><br /><span class=small><a onClick="javascript:Help('date')" class=main href="#">Помощь по работе функции </span></td>
    <td width=394 align=middle>
HTML;
print "<input name=date_vid type=text value='$date_vid' style='text-align: center;' size=30 class=edit>";
echo <<<HTML
</td>
  </tr>
<tr><td background="engine/skins/images/mline.gif" height=1 colspan=2></td></tr>
  <tr>
    <td style="padding:4px" class="option"><b>Сортировка рефералов</b><br /><span class=small>Выберите критерий для сортировки рефералов</span></td>
    <td width=394 align=middle>
HTML;
print "<select name='sort'>
<option value='3'>По дате добавления</option>  
<option value='1'>По алфавиту</option>
<option value='2'>По переходам</option>
</select>";
echo <<<HTML
</td>
  </tr>
<tr><td background="engine/skins/images/mline.gif" height=1 colspan=2></td></tr>
<tr> 
    <td style="padding:4px" class="option"><b>Количество рефералов в блоке</b><br /><span class=small>Максимальное значение рефералов</span></td>
    <td width=394 align=middle>
HTML;
print "<input name=block_ref type=text value='$block_ref' style='text-align: center;' size=30 class=edit>";
echo <<<HTML
</td>
  </tr>
<tr><td background="engine/skins/images/mline.gif" height=1 colspan=2></td></tr>
  <tr>
    <td style="padding:4px" class="option"><b>Обрезание ссылок в блоке</b><br /><span class=small>Количество символов в названии ссылки</span></td>
    <td width=394 align=middle>
HTML;
print "<input name=block_link type=text value='$block_link' style='text-align: center;' size=30 class=edit>";
echo <<<HTML
</td>
  </tr>
</table></td>
  </tr>
  <tr> 
    <td colspan="2"><div class="hr_line"></div></td>
  </tr>
  <tr> 
    <td colspan="2"><input type=submit class=bbcodes value=Сохранить> <input type='button' value=' Вернуться ' class='bbcodes' onclick="window.location='$PHP_SELF?mod=refer'"></td>
  </tr>
</table>
	</form>
HTML;
closetable();
echofooter();

//-------------------------------
// Сохранение настройки
//-------------------------------

 } elseif ($action == "save") {
$newset = "<?\r\n\$max_ref = \"".htmlspecialchars(trim($_POST['max_ref']))."\";\r\n\$link_obr = \"".htmlspecialchars(trim($_POST['link_obr']))."\";\r\n\$block_ref = \"".htmlspecialchars(trim($_POST['block_ref']))."\";\r\n\$date_vid = \"".htmlspecialchars(trim($_POST['date_vid']))."\";\r\n\$block_link = \"".htmlspecialchars(trim($_POST['block_link']))."\";\r\n\$per_page = \"".htmlspecialchars(trim($_POST['per_page']))."\";\r\n\$sort_type = \"".htmlspecialchars(trim($_POST['sort']))."\";\r\n?>";
		$fp = fopen(ENGINE_DIR.'/data/refer.txt', 'w');
		fwrite($fp, $newset);
		fclose($fp);
msg("info", "Информация", "Настройки успешно сохранены!", "$PHP_SELF?mod=refer");

//-------------------------------
// Просмотр по доменам
//-------------------------------

} elseif ($action == "all") {
echoheader("refer", 'Переходы');
echo <<<HTML
<style>
#hintbox { BORDER: 1px solid #969696; PADDING: 3px; Z-INDEX: 100; VISIBILITY: hidden; FONT: 11px Tahoma; WIDTH: 152px; COLOR: #818181; POSITION: absolute; TOP: 0px; BACKGROUND-COLOR: #fff; }
</style>
HTML;
$sql = "SELECT * FROM " . PREFIX . "_referer WHERE host = '$host' order by date DESC";
$result = $db->query($sql);
$total_hits = 0;
while($row = $db->get_array($result)){
if (strlen($row['url']) > $link_obr) $url = substr($row['url'], 0, $link_obr).'...';
    else $url = $row['url'];
$link = $row['url'];
$id = $row['id'];
$host = $row['host'];
$lastip = $row['lastip'];
$hits = $row['hits'];
$datetime = date("j.m.Y H:i:s", $row['date']);
$dt = date("$date_vid", $row['date']);
$total_hits = $total_hits+$hits;
if ($lastip == "0") $lastip = "not&nbsp;detected";
             $entries .= "<tr> 
    <td style='padding: 2px;'><a href=$link target=_blank onMouseover=\"showhint('IP&nbsp;последнего&nbsp;перехода:&nbsp;$lastip', this, event, '0px')\">$link</a></td>
      <td><div align=right class=navigation><b>$hits</b> переход(ов)&nbsp;<a href=# onMouseover=\"showhint('<center>$datetime</center>', this, event, '115px')\"><b>$dt</b></a>&nbsp;</div></td><td width=1><input type=checkbox name=\"refer[]\" value=\"$id\" style=\"width: 15px; height: 15px;\"></td>
  </tr>
<tr><td background=engine/skins/images/mline.gif height=1 colspan=6></td></tr>";
// начало функции сжатия
$refercodebytes = strlen($entries);
$entries=str_replace("\n" ," " ,$entries );
$entries=preg_replace('/>[\s]+</', "> <" ,$entries );
$referpagecodebytes = strlen($entries);
$referpagecodekbytes = number_format(($page_byte/1024),2);
$referpagecodekbytes = number_format(($refercodekbytes/1024),2);
$refercodesavedbytes = $refercodebytes-$referpagecodebytes;
$refercodesavedkbytes = number_format((($refercodesavedbytes)/1024),2);
$refercodesavedpecents = number_format(((100*$refercodesavedbytes)/$refercodebytes),2);
// конец функции сжатия
       }
$query_count = "SELECT COUNT(*) as count from " . PREFIX . "_referer  WHERE host = '$host'";
$result_count = $db->super_query($query_count);
$all_count = $result_count['count'];

echo <<<HTML
<form action="$PHP_SELF?mod=refer" method=post>
HTML;
opentable();
tableheader("Переходы с сайта http://$host/");
 echo "<table width=100% border=0 cellspacing=0 cellpadding=0>";
 if (!$entries) {
  echo "<tr><td align=center height=30 colspan=5 align=center class=navigation>- нет переходов -</td></tr>";
 } else {
  echo $entries;
 }
 echo "</table>";

echo <<<HTML
<div class="hr_line"></div><table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr> 
<td class=navigation>C $datetime зафиксированно <b>$total_hits</b> переход(ов). Переходы сжаты на $refercodesavedpecents% ($refercodesavedkbytes Кб)</td>
  <td align="right"><table border="0" cellspacing="0" cellpadding="0">
    <tr> 
      <td style="padding:4px" class=navigation>Ваше действие:</td>
      <td style="padding:4px"><select name="action" width="1">
<option style="color:#818181;">Главная</option>
<option value="options" style="color:#778899;">Настройка</option>
<option value="delete" style="color:#818181;">Удалить</option>
<option value="on" style="color:#818181;">Удалить все</option>
    </select></td>
      <td style="padding:4px"><input type=submit class=bbcodes value=" Выполнить "></td>
    </tr>
  </table>
  </td>
</form>
  </tr>
</table>
HTML;
closetable();
echofooter();
 
//-------------------------------
// Удаление
//-------------------------------

} elseif ($action == "delete") {

    if (is_array($refer) and count($refer) > 0) {

     foreach ($refer as $index) {

             $db->query("DELETE FROM " . PREFIX . "_referer WHERE id = '$index'");
     };
      msg("info", "Переходы с сайтов", "Выбранные рефералы успешно удалены", "/admin.php?mod=refer");
      clear_cache('refer');

   } else {
    msg("info", "Переходы с сайтов", "Невозможно выполнить операцию! Необходимо выбрать хотябы один реферал", "$PHP_SELF?mod=refer");
   }
 
//-------------------------------
// Просмотр списка переходов
//-------------------------------

 } else {
echoheader("refer", 'Переходы');
echo <<<HTML
<style>
#hintbox { BORDER: 1px solid #969696; PADDING: 3px; Z-INDEX: 100; VISIBILITY: hidden; FONT: 11px Tahoma; WIDTH: 152px; COLOR: #818181; POSITION: absolute; TOP: 0px; BACKGROUND-COLOR: #fff; }
</style>
HTML;
if(!intval($ref_per_page)){ $ref_per_page = $per_page; }
if (!isset($start_from)) $start_from = 0;
if ($sort_type == "1") $ssql = " order by url ASC";
if ($sort_type == "2") $ssql = " order by hits ASC";
if ($sort_type == "3") $ssql = " order by date DESC";
$total_hits = 0;
$sql = "SELECT * FROM " . PREFIX . "_referer$ssql LIMIT $start_from,$ref_per_page";
$result = $db->query($sql);
    $flag = 1;
    if($start_from == "0"){ $start_from = ""; }
    $i = $start_from;
    $entries_showed = 0;
$entries = "";
while($row = $db->get_array($result)){
if (strlen($row['url']) > $link_obr) $url = substr($row['url'], 0, $link_obr).'...';
    else $url = $row['url'];
$link = $row['url'];
$id = $row['id'];
$host = $row['host'];
$lastip = $row['lastip'];
$hits = $row['hits'];
$total_hits = $total_hits+$hits;
$datetime = date("j.m.Y H:i:s", $row['date']);
$dt = date("$date_vid", $row['date']);
        $i++;

// начало функции поискового запроса
$engine ='';
if (stristr($url, "rambler.ru")) { $sw = "words="; $engine = "<a href=http://rambler.ru target=_blank>Rambler.ru</a> "; }
if (stristr($url, "aport.ru")) { $sw="r="; $engine = "<a href=http://aport.ru target=_blank>Aport.ru</a> "; }
if (stristr($url, "go.mail.ru")) 
		{ 
			if (stristr($url, "old_q=")) $sw = "old_q="; else $sw = "q="; 
			$engine = "<a href=http://mail.ru target=_blank>Mail.Ru</a> "; 
		}
if (stristr($url, "nigma.ru")) 
		{ 
			$engine = "<a href=http://nigma.ru target=_blank>Nigma.Ru</a> ";
			if (stristr($url, "request_str=")) 	$sw="request_str="; else $sw="q=";
		}
if (stristr($url, "google.")) { $engine = "<a href=http://google.ru target=_blank>Google</a> "; }
if (stristr($url, "yandex.")) { $engine = "<a href=http://yandex.ru target=_blank>Яndex</a> "; }
if (!$engine !=='') {
$link2=urldecode($link);
eregi ($sw."([^&]*)", $link2."&", $link2);
			if ($link2[0]!=="")  $link2=$link2[1]; else $link2=$link2[0];
			if  (stristr($link2, "%"))  $url2=urldecode($link2);
}
if ($link2 == "t") { $link2 = "$url"; }
// конец функции поискового запроса
if ($lastip == "0") $lastip = "not&nbsp;detected";


$entries .= "<tr> 
    <td style='padding: 2px;'><a href=$PHP_SELF?mod=refer&action=all&host=$host>[<b>i</b>]</a>&nbsp;<font class=navigation>$engine</font><a href=$link target=_blank onMouseover=\"showhint('IP&nbsp;последнего&nbsp;перехода:&nbsp;$lastip', this, event, '0px')\">$link2</a></td>
    <td>
      <div align=right class=navigation><b>$hits</b> переход(ов)&nbsp;<a href=# onMouseover=\"showhint('<center>$datetime</center>', this, event, '115px')\"><b>$dt</b></a>&nbsp;</div></td><td width=1><input type=checkbox name=\"refer[]\" value=\"$id\" style=\"width: 15px; height: 15px;\"></td>
  </tr>
<tr><td background=engine/skins/images/mline.gif height=1 colspan=6></td></tr>";
// начало функции сжатия
$refercodebytes = strlen($entries);
$entries=str_replace("\n" ," " ,$entries );
$entries=preg_replace('/>[\s]+</', "> <" ,$entries );
$referpagecodebytes = strlen($entries);

$referpagecodekbytes = number_format(($page_byte/1024),2);
$referpagecodekbytes = number_format(($refercodekbytes/1024),2);
$refercodesavedbytes = $refercodebytes-$referpagecodebytes;
$refercodesavedkbytes = number_format((($refercodesavedbytes)/1024),2);
$refercodesavedpecents = number_format(((100*$refercodesavedbytes)/$refercodebytes),2);
// конец функции сжатия
            $entries_showed ++;

        if($i >= $ref_per_page + $start_from){ break; }
    }
$query_count = "SELECT COUNT(*) as count from " . PREFIX . "_referer";
$result_count = $db->super_query($query_count);
$all_count_news = $result_count['count'];
echo <<<HTML
<form action="$PHP_SELF?mod=refer" method=post>
HTML;
opentable();
tableheader("Переходы с сайтов");
 echo "<table width=100% border=0 cellspacing=0 cellpadding=0>";
 if (!$entries) {
  echo "<tr><td align=center height=30 colspan=5 align=center class=navigation>- нет переходов -</td></tr>";
 } else {
  echo $entries;
 }
 echo "</table>";

echo <<<HTML
<div class="hr_line"></div><table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr> 
HTML;

$npp_nav ="";

if($start_from > 0)
{
	$previous = $start_from - $ref_per_page;
	$npp_nav .= "<a href=\"$PHP_SELF?mod=refer&amp;start_from=$previous&amp;ref_per_page=$ref_per_page\">Вернуться назад</a>";
	//$tmp = 1;
}
if($all_count_news > $ref_per_page){
$npp_nav .= "[";
$enpages_count = @ceil($all_count_news/$ref_per_page);
$enpages_start_from = 0;
$enpages = "";
for($j=1;$j<=$enpages_count;$j++){
if($enpages_start_from != $start_from){ $enpages .= "<a class=maintitle href=\"$PHP_SELF?mod=refer&amp;start_from=$enpages_start_from&amp;ref_per_page=$ref_per_page\">$j</a> "; }
		else{ $enpages .= "<span class=navigation> $j </span>"; }
        $enpages_start_from += $ref_per_page;
	}
	$npp_nav .= $enpages;
	$npp_nav .= "]";
	}




if($all_count_news > $i)
{
	$how_next = $all_count_news - $i;
        if($how_next > $ref_per_page){ $how_next = $ref_per_page; }
        $npp_nav .= "<a href=\"$PHP_SELF?mod=refer&amp;start_from=$i&amp;ref_per_page=$ref_per_page\">Следующая страница</a>";
}

if($entries_showed != 0){
echo<<<HTML
<td>$npp_nav</td>
HTML;
}
echo<<<HTML
  <td align="right"><table border="0" cellspacing="0" cellpadding="0">
    <tr> 
      <td style="padding:4px" class=navigation>Ваше действие:</td>
      <td style="padding:4px"><select name="action" width="1">
<option style="color:#818181;">Главная</option>
<option value="options" style="color:#778899;">Настройка</option>
<option value="delete" style="color:#818181;">Удалить</option>
<option value="on" style="color:#818181;">Удалить все</option>
    </select></td>
      <td style="padding:4px"><input type=submit class=bbcodes value=" Выполнить "></td>
    </tr>
  </table>
  </td>
</form>
  </tr>
</table>
HTML;
closetable();
Opentable();
tableheader("Показано на странице: <b>$entries_showed</b> Всего рефералов в базе данных: <b>$all_count_news</b>");
$sit .= $config['http_home_url'];
echo <<<HTML
<table cellpadding=4 cellspacing=0 width=100%>
  <tr><td style="padding:5px;" class=navigation>Версия модуля: $version. Всего в базе <b>$all_count_news</b> реферал(ов) из <b>$max_ref</b> разрешенных. Всего было зафиксировано <b>$total_hits</b> переход(ов). Переходы сжаты на $refercodesavedpecents% ($refercodesavedkbytes Кб)<br>Copyright &copy 2006 created by ko1yan, icq: <a href=http://icq.com/380119 target='_blank'>380119</a>, site: <a href="http://dangels.net.ru/" target="_blank">www.dangels.net.ru</a>. Данный модуль защищен авторскими правами!</td></tr>
 </table>
HTML;
closetable();
echofooter();
 };
?>