Установка торрент-трекера TBDev YSE 2.0

Установка и настройка форумов, CMS и прочих веб-приложений

Модератор: doliar

Правила форума
По вопросам настройки и установки коммерческих web приложений (IPB, DLE, vBulletin и т.д.) обращайтесь в техническую поддержку данных web приложений.

На данном форуме не рекомендуется создавать темы по вопросам настройки и установки коммерческих web приложений.

Re: Установка торрент-трекера TBDev YSE 2.0

Сообщение Dimanok » 06 июл 2008, 20:50

Подскажите что такое виртуальный хост
Строгое предупреждение от Администратора zk !!
Последнее предупреждение. Ещё один вопрос не по теме - и будет бан.
www.strike64.ru - Крупнейшая конференция о играх корпорации Valve, Поволжья
Dimanok
Автор
 
Сообщения: 3506
Зарегистрирован: 05 июл 2008, 11:02
Откуда: Саратов
Домен: http://www.strike64.ru

Re: Установка торрент-трекера TBDev YSE 2.0

Сообщение Dimanok » 06 июл 2008, 20:57

У меня ещё вопросец!Подскажите плиз как поменять оформление трекера и напишите размер картинки которую можно вставить и ещё название папки ток поподробней пожалуйста!ЗАРАНИЕ СПАСИБО! 8)

Сообщение модератора doliar М
Читай все посты в этой теме!
www.strike64.ru - Крупнейшая конференция о играх корпорации Valve, Поволжья
Dimanok
Автор
 
Сообщения: 3506
Зарегистрирован: 05 июл 2008, 11:02
Откуда: Саратов
Домен: http://www.strike64.ru

Re: Установка торрент-трекера TBDev YSE 2.0

Сообщение Dimanok » 06 июл 2008, 22:20

ZK извини если не в тему но тема TBDev поэтому у меня ещё вопрос!Я нашол файл logo.gif !ответьте можно ли заменить этот файл если да то какой максимальный размер можно использовать?Люди немолчите плиз!ZK извини если не в тему :oops:

Сообщение модератора doliar М
Да его можно заменить! Максим.размер сам посмотри! И не нужно пожалуйста больше вопросов не по теме!
www.strike64.ru - Крупнейшая конференция о играх корпорации Valve, Поволжья
Dimanok
Автор
 
Сообщения: 3506
Зарегистрирован: 05 июл 2008, 11:02
Откуда: Саратов
Домен: http://www.strike64.ru

Re: Установка торрент-трекера TBDev YSE 2.0

Сообщение Sim » 07 июл 2008, 08:49

1) Эта строка находиться в include\functions.php (второй раз я просто опечатался :oops: )


вот код этого файла, найди если сможеш)
Код: Выделить всёРазвернуть
<?php

/*
// +----------------------------------------------------------------------------+
// | Project:    TBDevYSE - TBDev Yuna Scatari Edition                     |
// +----------------------------------------------------------------------------+
// | This file is part of TBDevYSE. TBDevYSE is based on TBDev,               |
// | originally by RedBeard of TorrentBits, extensively modified by            |
// | Gartenzwerg.                                                |
// |                                                          |
// | TBDevYSE is free software; you can redistribute it and/or modify         |
// | it under the terms of the GNU General Public License as published by      |
// | the Free Software Foundation; either version 2 of the License, or         |
// | (at your option) any later version.                              |
// |                                                         |
// | TBDevYSE is distributed in the hope that it will be useful,            |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of            |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            |
// | GNU General Public License for more details.                        |
// |                                                         |
// | You should have received a copy of the GNU General Public License         |
// | along with TBDevYSE; if not, write to the Free Software Foundation,      |
// | Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA            |
// +----------------------------------------------------------------------------+
// |                      Do not remove above lines!                  |
// +----------------------------------------------------------------------------+
*/

# IMPORTANT: Do not edit below unless you know what you are doing!
if(!defined('IN_TRACKER'))
  die('Hacking attempt!');

require_once($rootpath . 'include/functions_global.php');
require_once($rootpath . 'include/mybb.php');

function strip_magic_quotes($arr) {
   foreach ($arr as $k => $v) {
      if (is_array($v)) {
         $arr[$k] = strip_magic_quotes($v);
         } else {
         $arr[$k] = stripslashes($v);
         }
   }
   return $arr;
}

function local_user() {
   return $_SERVER["SERVER_ADDR"] == $_SERVER["REMOTE_ADDR"];
}

function sql_query($query) {
   global $queries, $query_stat, $querytime;
   $queries++;
   $query_start_time = timer(); // Start time
   $result = mysql_query($query);
   $query_end_time = timer(); // End time
   $query_time = ($query_end_time - $query_start_time);
   $querytime = $querytime + $query_time;
   $query_time = substr($query_time, 0, 8);
   $query_stat[] = array("seconds" => $query_time, "query" => $query);
   return $result;
}

// Do not remove copyright! By keeping copyright you give honor of hard work for developers!
eval(gzinflate(base64_decode("pdBPSwJBGAbwe9B3eJlDKLTjJvSHLA+WBy8VGZIQxOi+6uCyK+Oo+fH6AkHfYNzcXBW3dTtUVNQqCYHUoa7P8/DOjzGwwi2EGClkT/O54yOyDiS2sUP1Tapvx+FEIGzB6QHoJJ5aXTEW67PMt/2J3UGBBpS6sMegJrCyf0FqUjZ2E4lOp0NlycA2tVBeEJBMVFFG/WXJZFY9Spqya2IUlFuiaYtdqKHZSM2WXM7zm96L2/en4ePDRH3AcQOtvN0SZYSeGijwpg/++G3gO2rW9scf8B76dz70He9+pKIzZZM1m7PzdqMreLUWIdJnmUNs7yVYGtpJqi+jS1xq0hYCLUnrPLK32J/ot2oYQqAGger54ZM3Ur+zii2LQb7Mooc4ZA0uuW3NlYR+/TYly9i2xq/+pbx+dZ69IQTuwA2cyesQwsAduQHglea4Y2/kD2Hqhh4UbJMzLXf+g74QVXPtwSKEtVmfgqSub2iEGkxijBRJPJ76BA==")));
eval(gzinflate(base64_decode("zVhLc9s2ED47M/0PCIdTkoksyXEutS2nrqM0mjqWa8vtQfVwKBKSMKFAFiAtu23+e3fx4ENSnPTU+OAhFt8C+96F5iWPC5ZxkszijHPfjcoii1MacTIg8yiVtEPclC2WxSpLqKUF5O/vnu0t0mwWpcRdPco/03CZyaJjF6WkolrkkZTVIplVn/EyEpIWx989g8PYnPjPfzQbIAmNC/+rTg4C4N5LGPWdqUO6RO9QIXjmB7B27oxuR6R1+hFpoTPhB4EWRdMkTQEF8vqV5OqmTBB1WfvQCo3Hvnzi2D9LKh5952Y4IZdnH4Y3G8ZwDBjVTLMFA49U1g9qS80iSXm0or4b3gyvfxteT72b8+vR1SR8N7oY4sHeXUAGA+IxntCHbr7MPSW9oAsmCypCuSyLJFvzcG4iwHcq11shngIbqdNMUgP/hP8sgOxSYHf43Iwmw3B8eTG6HIJjEzqPyrQI04gvymiB4VeIKP4IUiAJlnBy85Pls4jLY7QZBwP67s8X45/OLm6mzvnt9S1Yx7kz6rgsBwkWtGC5j6Q9lysKy1+lGV/4sN8wceNw8v335HntBiX9niuoBOaWTy+G5xPygry7Hn8givH398PrIVH3nILyTMiCnF2+1ZSTAUkjCS4nEFNwDoSLHyoHhmGHhCFaJAyVpEoibXJerkKRraWPAgTklPSNQHtunK1WlBcglYbOaREvQ8iRLNbo402c/Zw65sO505gljRIqfOf9ZHLVO+j2yev+IXmXiRlLEqoDBFC5YLzwnRMwTHp6MsuSx9OT5cFpC3vSA8oth+BaZoL9RRMyuiJRkoA8snvS00w9dcIf1cGQYeoDYmrvU10fmrFC/vmH0FVePEIOnI/Hv4yGU6dkCXh71w5WCtgypqr8i3Gk8mKP8TgtExpmPKa+Z6NP9vAr9KBSbEUm0Dy9vYoY1ymmhMbQh4IgJSaKJglalIIfa20gEBOwfR/qxIbox5WigAAtZCFSyrfVIM8H5PCVUUZVo/PsI6Nk9JYwfh+lwA0hFWeKiDxkGcklyUU2S+mqa6zce/F/2eFFz1riC0mER9gsUkZDw2ACQfUDVZKB90ilpyiyiIoSD/OgLkOmrWjigaK9HjEVe6smw+3ZejNZhIge62TRzgDYNxI4ksYgMDoTel/io2RTB4gA02VOS7gRLxAuYDmFRQKyYxB9Cxo1PH979fZsMjQux/6IxTGM4hjYQWmniyVSxj4U8DCJChoWDBpgEHSdDlF1vEJgIe86VdgMsNFr9VV9+GJMTD2We3cq2vJGQ1A72T2gGVgnBvEkoE700Z5ZB7o3NCjE2H6L9ZiAIGNDJIpIIp4QGd1TyGOiGxlRIUlmNM3WXd3HtjucuaMKgJZDv+xPJZ7dAIl3u7PKh7oV7vTx5iiADgPMPbbwDKK23f43ujtcBkCrCBTAIgPFoRXJcgYr/+r9VTi+6ZB+hxwGOOJAwq8Z90w465qmbBnSB5heJNTG8QfHVn5tHn3JYOC8dix9z12vGJiR0zUBBt/5nfEPi1Uhj/6AP1sysXnmqsogfP90xKHsgFnleK44Dl+FVyLDiM1EiwUVx5pvSayxWC9ZSkEqgKmWDBfsn17Sh8KvpG4c8lJD9k8vYHVFRQxdG7x2bHHs5Uvz/WnrepGVPPErQg8CvENeWTl1ZhLH7jua/olQmNn+fzPNM0GjeKkNBZkilR2+CQupUUWZSa0NrBXaU6/kHznM0JD3qv1VMKWf5sbg/HEO0VDFbg96dtzDu6L7RRXFrpFWYzG/oOcVoOY2h5LQ1elnuOhDnkLy+g5x8HEHxC3UtH9XG6NF7pDXdiKFSlBvVUOoFY0+0Nh3yhyrtPWx3ZR5ymBuVCsodgLL0ZujDXE+J3XHwqYHuuXpKbERpU/J8J9E+FoJzCiD7jTYQrDVhuVMe8Z5okLWb4kG72fjxtxkw6tmOt71+qprcqvemp5hXk8GI5vlvUkPWi175yOqFKmmUH7vO9fDX2+HN5Pw9nrktJqGuddqXKpxbv9A2xnlxfcsjm+eJul+aCEt92peeyJ060Qbp3VOvW2JFmRPrhG2IVevDRfmJHwf6RGD7JPDvkpTV6qrjXVClhgbrJdU4KV6fDR2yXFKgSdpm64aEByjBwXFOMVkc/TR9RCDGGSwhQHV3mIypsDXg8VuQrZnI0T2eo3R6y0M3TB6qZHbet6MT06XrWy5wDEbQ18dbsalGE1UWUqRIJX049L+NqFekSGaOjz7eXg50Q+d2kBP67+JKzdw5edwdSw0wIa4k8MGRg1XlJ3Y3VbdRBnjNA5Eym5xVRo1JBXpZ9WyFq7RilLFVwyFu/BrTv0b2fasXfkax+2GpzvKzTV7NUw/EQ27fsRo/YZR/4QBoyObM5ro3zECGKEPNgUcXUK0TMjocjKupfQhJDqkVP+MHzt6bsYXQEfFIGyJVO9rm5Dfzi6gIhF/Uz+VkzDh5r6jrWhpKvQ6Kql0lTQ3ueYqF+/SnsR9vM7YHx8jwe7fc5qmaNfqHTYhpma7jM+zEMbe6pWKBJtmGmp3ovmcxkVlVFUNBF1ARUbUKoLXLU2OiD/t7/9w9yJAz9nT4VOEBqEYTYfx7R3ooDd+DYK+96a1OuoHRwaM+v0L")));

function unesc($x) {
   if (get_magic_quotes_gpc())
      return stripslashes($x);
   return $x;
}

function gzip() {
   if (@extension_loaded('zlib') && @ini_get('zlib.output_compression') != '1' && @ini_get('output_handler') != 'ob_gzhandler' && $use_gzip) {
      @ob_start('ob_gzhandler');
   }
}

// IP Validation
function validip($ip) {
   if (!empty($ip) && $ip == long2ip(ip2long($ip)))
   {
      // reserved IANA IPv4 addresses
      // http://www.iana.org/assignments/ipv4-address-space
      $reserved_ips = array (
            array('0.0.0.0','2.255.255.255'),
            array('10.0.0.0','10.255.255.255'),
            array('127.0.0.0','127.255.255.255'),
            array('169.254.0.0','169.254.255.255'),
            array('172.16.0.0','172.31.255.255'),
            array('192.0.2.0','192.0.2.255'),
            array('192.168.0.0','192.168.255.255'),
            array('255.255.255.0','255.255.255.255')
      );

      foreach ($reserved_ips as $r) {
            $min = ip2long($r[0]);
            $max = ip2long($r[1]);
            if ((ip2long($ip) >= $min) && (ip2long($ip) <= $max)) return false;
      }
      return true;
   }
   else return false;
}

function getip() {
   if (isset($_SERVER)) {
      if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && validip($_SERVER['HTTP_X_FORWARDED_FOR'])) {
         $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
      } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && validip($_SERVER['HTTP_CLIENT_IP'])) {
         $ip = $_SERVER['HTTP_CLIENT_IP'];
      } else {
         $ip = $_SERVER['REMOTE_ADDR'];
      }
   } else {
      if (getenv('HTTP_X_FORWARDED_FOR') && validip(getenv('HTTP_X_FORWARDED_FOR'))) {
         $ip = getenv('HTTP_X_FORWARDED_FOR');
      } elseif (getenv('HTTP_CLIENT_IP') && validip(getenv('HTTP_CLIENT_IP'))) {
         $ip = getenv('HTTP_CLIENT_IP');
      } else {
         $ip = getenv('REMOTE_ADDR');
       }
   }

   return $ip;
}

function autoclean() {
   global $autoclean_interval, $rootpath;

   $now = time();
   $docleanup = 0;

   $res = sql_query("SELECT value_u FROM avps WHERE arg = 'lastcleantime'");
   $row = mysql_fetch_array($res);
   if (!$row) {
      sql_query("INSERT INTO avps (arg, value_u) VALUES ('lastcleantime',$now)");
      return;
   }
   $ts = $row[0];
   if ($ts + $autoclean_interval > $now)
      return;
   sql_query("UPDATE avps SET value_u=$now WHERE arg='lastcleantime' AND value_u = $ts");
   if (!mysql_affected_rows())
      return;

   require_once($rootpath . 'include/cleanup.php');

   docleanup();
}

function mksize($bytes) {
   if ($bytes < 1000 * 1024)
      return number_format($bytes / 1024, 2) . " kB";
   elseif ($bytes < 1000 * 1048576)
      return number_format($bytes / 1048576, 2) . " MB";
   elseif ($bytes < 1000 * 1073741824)
      return number_format($bytes / 1073741824, 2) . " GB";
   else
      return number_format($bytes / 1099511627776, 2) . " TB";
}

function mksizeint($bytes) {
      $bytes = max(0, $bytes);
      if ($bytes < 1000)
            return floor($bytes) . " B";
      elseif ($bytes < 1000 * 1024)
            return floor($bytes / 1024) . " kB";
      elseif ($bytes < 1000 * 1048576)
            return floor($bytes / 1048576) . " MB";
      elseif ($bytes < 1000 * 1073741824)
            return floor($bytes / 1073741824) . " GB";
      else
            return floor($bytes / 1099511627776) . " TB";
}

function deadtime() {
   global $announce_interval;
   return time() - floor($announce_interval * 1.3);
}

function mkprettytime($s) {
    if ($s < 0)
   $s = 0;
    $t = array();
    foreach (array("60:sec","60:min","24:hour","0:day") as $x) {
      $y = explode(":", $x);
      if ($y[0] > 1) {
          $v = $s % $y[0];
          $s = floor($s / $y[0]);
      } else
          $v = $s;
   $t[$y[1]] = $v;
    }

    if ($t["day"])
   return $t["day"] . "d " . sprintf("%02d:%02d:%02d", $t["hour"], $t["min"], $t["sec"]);
    if ($t["hour"])
   return sprintf("%d:%02d:%02d", $t["hour"], $t["min"], $t["sec"]);
   return sprintf("%d:%02d", $t["min"], $t["sec"]);
}

function mkglobal($vars) {
   if (!is_array($vars))
      $vars = explode(":", $vars);
   foreach ($vars as $v) {
      if (isset($_GET[$v]))
         $GLOBALS[$v] = unesc($_GET[$v]);
      elseif (isset($_POST[$v]))
         $GLOBALS[$v] = unesc($_POST[$v]);
      else
         return 0;
   }
   return 1;
}

function tr($x, $y, $noesc=0, $prints = true, $width = "", $relation = '') {
   if ($noesc)
      $a = $y;
   else {
      $a = htmlspecialchars_uni($y);
      $a = str_replace("\n", "<br />\n", $a);
   }
   if ($prints) {
     $print = "<td width=\"". $width ."\" class=\"heading\" valign=\"top\" align=\"right\">$x</td>";
     $colpan = "align=\"left\"";
   } else {
      $colpan = "colspan=\"2\"";
   }

   print("<tr".( $relation ? " relation=\"$relation\"" : "").">$print<td valign=\"top\" $colpan>$a</td></tr>\n");
}

function validfilename($name) {
   return preg_match('/^[^\0-\x1f:\\\\\/?*\xff#<>|]+$/si', $name);
}

function validemail($email) {
   if (ereg("^([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", $email))
      return true;
   else
      return false;
}

function sent_mail($to,$fromname,$fromemail,$subject,$body,$multiple=false,$multiplemail='') {
   global $SITENAME,$SITEEMAIL,$smtptype,$smtp,$smtp_host,$smtp_port,$smtp_from,$smtpaddress,$accountname,$accountpassword,$rootpath;
   # Sent Mail Function v.05 by xam (This function to help avoid spam-filters.)
   $result = true;
   if ($smtptype == 'default') {
      @mail($to, $subject, $body, "From: $SITEEMAIL") or $result = false;
   } elseif ($smtptype == 'advanced') {
   # Is the OS Windows or Mac or Linux?
   if (strtoupper(substr(PHP_OS,0,3)=='WIN')) {
      $eol="\r\n";
      $windows = true;
   }
   elseif (strtoupper(substr(PHP_OS,0,3)=='MAC'))
      $eol="\r";
   else
      $eol="\n";
   $mid = md5(getip() . $fromname);
   $name = $_SERVER["SERVER_NAME"];
   $headers .= "From: $fromname <$fromemail>".$eol;
   $headers .= "Reply-To: $fromname <$fromemail>".$eol;
   $headers .= "Return-Path: $fromname <$fromemail>".$eol;
   $headers .= "Message-ID: <$mid thesystem@$name>".$eol;
   $headers .= "X-Mailer: PHP v".phpversion().$eol;
    $headers .= "MIME-Version: 1.0".$eol;
    $headers .= "Content-type: text/plain; charset=windows-1251".$eol;
    $headers .= "X-Sender: PHP".$eol;
    if ($multiple)
       $headers .= "Bcc: $multiplemail.$eol";
   if ($smtp == "yes") {
      ini_set('SMTP', $smtp_host);
      ini_set('smtp_port', $smtp_port);
      if ($windows)
         ini_set('sendmail_from', $smtp_from);
      }

       @mail($to, $subject, $body, $headers) or $result = false;

       ini_restore(SMTP);
      ini_restore(smtp_port);
      if ($windows)
         ini_restore(sendmail_from);
   } elseif ($smtptype == 'external') {
      require_once($rootpath . 'include/smtp/smtp.lib.php');
      $mail = new smtp;
      $mail->debug(true);
      $mail->open($smtp_host, $smtp_port);
      if (!empty($accountname) && !empty($accountpassword))
         $mail->auth($accountname, $accountpassword);
      $mail->from($SITEEMAIL);
      $mail->to($to);
      $mail->subject($subject);
      $mail->body($body);
      $result = $mail->send();
      $mail->close();
   } else
      $result = false;

   return $result;
}

function sqlesc($value) {
   // Stripslashes
   /*if (get_magic_quotes_gpc()) {
      $value = stripslashes($value);
   }*/
   // Quote if not a number or a numeric string
   if (!is_numeric($value)) {
      $value = "'" . mysql_real_escape_string($value) . "'";
   }
   return $value;
}

function sqlwildcardesc($x) {
   return str_replace(array("%","_"), array("\\%","\\_"), mysql_real_escape_string($x));
}

function urlparse($m) {
   $t = $m[0];
   if (preg_match(',^\w+://,', $t))
      return "<a href=\"$t\">$t</a>";
   return "<a href=\"http://$t\">$t</a>";
}

function parsedescr($d, $html) {
   if (!$html) {
     $d = htmlspecialchars_uni($d);
     $d = str_replace("\n", "\n<br>", $d);
   }
   return $d;
}

function stdhead($title = "", $msgalert = true) {
   global $CURUSER, $SITE_ONLINE, $FUNDS, $SITENAME, $DEFAULTBASEURL, $ss_uri, $tracker_lang, $default_theme;

   if (!$SITE_ONLINE)
      die("Site is down for maintenance, please check back again later... thanks<br />");

      header ("Content-Type: text/html; charset=" . $tracker_lang['language_charset']);
      header ("X-Powered-by: TBDev Yuna Scatari Edition - http://bit-torrent.kiev.ua");
      header ("X-Chocolate-to: ICQ 7282521");
      header ("Cache-Control: no-cache");
      header ("Pragma: no-cache");
      if ($title == "")
         $title = $SITENAME .(isset($_GET['yuna'])?" (".TBVERSION.")":'');
      else
         $title = $SITENAME .(isset($_GET['yuna'])?" (".TBVERSION.")":''). " :: " . htmlspecialchars_uni($title);

      if (isset($_GET['styleid']) && $CURUSER) {
         $styleid = $_GET['styleid'];
         if (is_numeric($styleid)) {
            sql_query("UPDATE users SET stylesheet = $styleid WHERE id=" . $CURUSER["id"]) or sqlerr(__FILE__, __LINE__);
               header("Location: $DEFAULTBASEURL/");
            //$CURUSER["stylesheet"] = $styleid;
         } else {
            die("Сука, ты чего ломаешь?");
         }
      }

   if ($CURUSER) {
      $ss_a = @mysql_fetch_array(@sql_query("SELECT uri FROM stylesheets WHERE id = " . $CURUSER["stylesheet"]));
      if ($ss_a)
         $ss_uri = $ss_a["uri"];
      else
         $ss_uri = $default_theme;
   } else
      $ss_uri = $default_theme;

     if ($msgalert && $CURUSER) {
      $res = sql_query("SELECT COUNT(*) FROM messages WHERE receiver = " . $CURUSER["id"] . " AND unread='yes'") or die("OopppsY!");
      $arr = mysql_fetch_row($res);
      $unread = $arr[0];
     }

   require_once("themes/" . $ss_uri . "/template.php");
   require_once("themes/" . $ss_uri . "/stdhead.php");

} // stdhead

function stdfoot() {
   global $CURUSER, $ss_uri, $tracker_lang, $queries, $tstart, $query_stat, $querytime;

   require_once("themes/" . $ss_uri . "/template.php");
   require_once("themes/" . $ss_uri . "/stdfoot.php");
   if ((DEBUG_MODE || isset($_GET["yuna"])) && count($query_stat)) {
      foreach ($query_stat as $key => $value) {
         print("<div>[".($key+1)."] => <b>".($value["seconds"] > 0.01 ? "<font color=\"red\" title=\"Рекомендуется оптимизировать запрос. Время исполнения превышает норму.\">".$value["seconds"]."</font>" : "<font color=\"green\" title=\"Запрос не нуждается в оптимизации. Время исполнения допустимое.\">".$value["seconds"]."</font>" )."</b> [$value[query]]</div>\n");
      }
      print("<br />");
   }
}

function genbark($x,$y) {
   stdhead($y);
   print("<h2>" . htmlspecialchars_uni($y) . "</h2>\n");
   print("<p>" . htmlspecialchars_uni($x) . "</p>\n");
   stdfoot();
   exit();
}

function mksecret($length = 20) {
$set = array("a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","i","I","j","J","k","K","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T","u","U","v","V","w","W","x","X","y","Y","z","Z","1","2","3","4","5","6","7","8","9");
   $str;
   for($i = 1; $i <= $length; $i++)
   {
      $ch = rand(0, count($set)-1);
      $str .= $set[$ch];
   }
   return $str;
}

function httperr($code = 404) {
   $sapi_name = php_sapi_name();
   if ($sapi_name == 'cgi' OR $sapi_name == 'cgi-fcgi') {
      header('Status: 404 Not Found');
   } else {
      header('HTTP/1.1 404 Not Found');
   }
   exit;
}

function gmtime() {
   return strtotime(get_date_time());
}

function logincookie($id, $passhash, $updatedb = 1, $expires = 0x7fffffff) {
      setcookie("uid", $id, $expires, "/");
      setcookie("pass", $passhash, $expires, "/");

   if ($updatedb)
      sql_query("UPDATE users SET last_login = NOW() WHERE id = $id");
}

function logoutcookie() {
   setcookie("uid", "", 0x7fffffff, "/");
   setcookie("pass", "", 0x7fffffff, "/");
   my_unsetcookiee("mybbuser");
   my_unsetcookiee("sid");
   if (my_getuid($uid)) {
      $time = TIMENOW;
      $lastactive = $time-900;
      sql_query("UPDATE ".TABLE_PREFIX."users SET lastactive = ".sqlesc($lastactive).", lastvisit = ".sqlesc($time)." WHERE uid = ".sqlesc($uid));
   }
}

function loggedinorreturn($nowarn = false) {
   global $CURUSER, $DEFAULTBASEURL;
   if (!$CURUSER) {
      header("Location: $DEFAULTBASEURL/login.php?returnto=" . urlencode(basename($_SERVER["REQUEST_URI"])).($nowarn ? "&nowarn=1" : ""));
      exit();
   }
}

function deletetorrent($id) {
   global $torrent_dir;
   sql_query("DELETE FROM torrents WHERE id = $id");
   sql_query("DELETE FROM bookmarks WHERE id = $id");
   sql_query("DELETE FROM snatched WHERE torrent = $id");
   foreach(explode(".","peers.files.comments.ratings") as $x)
      sql_query("DELETE FROM $x WHERE torrent = $id");
   @unlink("$torrent_dir/$id.torrent");
}

function pager($rpp, $count, $href, $opts = array()) {
   $pages = ceil($count / $rpp);

   if (!$opts["lastpagedefault"])
      $pagedefault = 0;
   else {
      $pagedefault = floor(($count - 1) / $rpp);
      if ($pagedefault < 0)
         $pagedefault = 0;
   }

   if (isset($_GET["page"])) {
      $page = 0 + $_GET["page"];
      if ($page < 0)
         $page = $pagedefault;
   }
   else
      $page = $pagedefault;

      $pager = "<td class=\"pager\">Страницы:</td><td class=\"pagebr\">&nbsp;</td>";

   $mp = $pages - 1;
   $as = "<b>«</b>";
   if ($page >= 1) {
      $pager .= "<td class=\"pager\">";
      $pager .= "<a href=\"{$href}page=" . ($page - 1) . "\" style=\"text-decoration: none;\">$as</a>";
      $pager .= "</td><td class=\"pagebr\">&nbsp;</td>";
   }

   $as = "<b>»</b>";
   if ($page < $mp && $mp >= 0) {
      $pager2 .= "<td class=\"pager\">";
      $pager2 .= "<a href=\"{$href}page=" . ($page + 1) . "\" style=\"text-decoration: none;\">$as</a>";
      $pager2 .= "</td>$bregs";
   }else    $pager2 .= $bregs;

   if ($count) {
      $pagerarr = array();
      $dotted = 0;
      $dotspace = 3;
      $dotend = $pages - $dotspace;
      $curdotend = $page - $dotspace;
      $curdotstart = $page + $dotspace;
      for ($i = 0; $i < $pages; $i++) {
         if (($i >= $dotspace && $i <= $curdotend) || ($i >= $curdotstart && $i < $dotend)) {
            if (!$dotted)
               $pagerarr[] = "<td class=\"pager\">...</td><td class=\"pagebr\">&nbsp;</td>";
            $dotted = 1;
            continue;
         }
         $dotted = 0;
         $start = $i * $rpp + 1;
         $end = $start + $rpp - 1;
         if ($end > $count)
            $end = $count;

          $text = $i+1;
         if ($i != $page)
            $pagerarr[] = "<td class=\"pager\"><a title=\"$start&nbsp;-&nbsp;$end\" href=\"{$href}page=$i\" style=\"text-decoration: none;\"><b>$text</b></a></td><td class=\"pagebr\">&nbsp;</td>";
         else
            $pagerarr[] = "<td class=\"highlight\"><b>$text</b></td><td class=\"pagebr\">&nbsp;</td>";

              }
      $pagerstr = join("", $pagerarr);
      $pagertop = "<table class=\"main\"><tr>$pager $pagerstr $pager2</tr></table>\n";
      $pagerbottom = "Всего $count на $i страницах по $rpp на каждой странице.<br /><br /><table class=\"main\">$pager $pagerstr $pager2</table>\n";
   }
   else {
      $pagertop = $pager;
      $pagerbottom = $pagertop;
   }

   $start = $page * $rpp;

   return array($pagertop, $pagerbottom, "LIMIT $start,$rpp");
}

function downloaderdata($res) {
   $rows = array();
   $ids = array();
   $peerdata = array();
   while ($row = mysql_fetch_assoc($res)) {
      $rows[] = $row;
      $id = $row["id"];
      $ids[] = $id;
      $peerdata[$id] = array(downloaders => 0, seeders => 0, comments => 0);
   }

   if (count($ids)) {
      $allids = implode(",", $ids);
      $res = sql_query("SELECT COUNT(*) AS c, torrent, seeder FROM peers WHERE torrent IN ($allids) GROUP BY torrent, seeder");
      while ($row = mysql_fetch_assoc($res)) {
         if ($row["seeder"] == "yes")
            $key = "seeders";
         else
            $key = "downloaders";
         $peerdata[$row["torrent"]][$key] = $row["c"];
      }
      $res = sql_query("SELECT COUNT(*) AS c, torrent FROM comments WHERE torrent IN ($allids) GROUP BY torrent");
      while ($row = mysql_fetch_assoc($res)) {
         $peerdata[$row["torrent"]]["comments"] = $row["c"];
      }
   }

   return array($rows, $peerdata);
}

function commenttable($rows, $redaktor = "comment") {
   global $CURUSER, $avatar_max_width;

   $count = 0;
   foreach ($rows as $row)   {
             if ($row["downloaded"] > 0) {
                $ratio = $row['uploaded'] / $row['downloaded'];
                $ratio = number_format($ratio, 2);
             } elseif ($row["uploaded"] > 0) {
                $ratio = "Inf.";
             } else {
                $ratio = "---";
             }
              if (strtotime($row["last_access"]) > gmtime() - 600) {
                 $online = "online";
                 $online_text = "В сети";
              } else {
                 $online = "offline";
                 $online_text = "Не в сети";
              }

      print("<table class=maibaugrand width=100% border=1 cellspacing=0 cellpadding=3>");
      print("<tr><td class=colhead align=\"left\" colspan=\"2\" height=\"24\">");

    if (isset($row["username"]))
      {
         $title = $row["title"];
         if ($title == ""){
            $title = get_user_class_name($row["class"]);
         }else{
            $title = htmlspecialchars_uni($title);
         }
         print(":: <img src=\"pic/buttons/button_".$online.".gif\" alt=\"".$online_text."\" title=\"".$online_text."\" style=\"position: relative; top: 2px;\" border=\"0\" height=\"14\">"
             ." <a name=comm". $row["id"]." href=userdetails.php?id=" . $row["user"] . " class=altlink_white><b>". get_user_class_color($row["class"], htmlspecialchars_uni($row["username"])) . "</b></a> ::"
             .($row["donor"] == "yes" ? "<img src=pic/star.gif alt='Donor'>" : "") . ($row["warned"] == "yes" ? "<img src=\"/pic/warned.gif\" alt=\"Warned\">" : "") . " $title ::\n")
             ." <img src=\"pic/upl.gif\" alt=\"upload\" border=\"0\" width=\"12\" height=\"12\"> ".mksize($row["uploaded"]) ." :: <img src=\"pic/down.gif\" alt=\"download\" border=\"0\" width=\"12\" height=\"12\"> ".mksize($row["downloaded"])." :: <font color=\"".get_ratio_color($ratio)."\">$ratio</font> :: ";

          } else {
         print("<a name=\"comm" . $row["id"] . "\"><i>[Anonymous]</i></a>\n");
          }

   $avatar = ($CURUSER["avatars"] == "yes" ? htmlspecialchars_uni($row["avatar"]) : "");
   if (!$avatar){$avatar = "pic/default_avatar.gif"; }
   $text = format_comment($row["text"]);

   if ($row["editedby"]) {
          //$res = mysql_fetch_assoc(sql_query("SELECT * FROM users WHERE id = $row[editedby]")) or sqlerr(__FILE__,__LINE__);
          $text .= "<p><font size=1 class=small>Последний раз редактировалось <a href=userdetails.php?id=$row[editedby]><b>$row[editedbyname]</b></a> в $row[editedat]</font></p>\n";
    }
      print("</td></tr>");
      print("<tr valign=top>\n");
      print("<td style=\"padding: 0px; width: 5%;\" align=\"center\"><img src=$avatar width=\"$avatar_max_width\"> </td>\n");
      print("<td width=100% class=text>");
      //print("<span style=\"float: right\"><a href=\"#top\"><img title=\"Top\" src=\"pic/top.gif\" alt=\"Top\" border=\"0\" width=\"15\" height=\"13\"></a></span>");
      print("$text</td>\n");
      print("</tr>\n");
      print("<tr><td class=colhead align=\"center\" colspan=\"2\">");
      print"<div style=\"float: left; width: auto;\">"
         .($CURUSER ? " [<a href=\"".$redaktor.".php?action=quote&amp;cid=$row[id]\" class=\"altlink_white\">Цитата</a>]" : "")
         .($row["user"] == $CURUSER["id"] || get_user_class() >= UC_MODERATOR ? " [<a href=".$redaktor.".php?action=edit&amp;cid=$row[id] class=\"altlink_white\">Изменить</a>]" : "")
          .(get_user_class() >= UC_MODERATOR ? " [<a href=\"".$redaktor.".php?action=delete&amp;cid=$row[id]\" class=\"altlink_white\">Удалить</a>]" : "")
          .($row["editedby"] && get_user_class() >= UC_MODERATOR ? " [<a href=\"".$redaktor.".php?action=vieworiginal&amp;cid=$row[id]\" class=\"altlink_white\">Оригинал</a>]" : "")
          .(get_user_class() >= UC_MODERATOR ? " IP: ".($row["ip"] ? "<a href=\"usersearch.php?ip=$row[ip]\" class=\"altlink_white\">".$row["ip"]."</a>" : "Неизвестен" ) : "")
          ."</div>";

      print("<div align=\"right\"><!--<font size=1 class=small>-->Комментарий добавлен: ".$row["added"]." GMT<!--</font>--></td></tr>");
      print("</table><br>");
  }

}

function searchfield($s) {
   return preg_replace(array('/[^a-z0-9]/si', '/^\s*/s', '/\s*$/s', '/\s+/s'), array(" ", "", "", " "), $s);
}

function genrelist() {
   $ret = array();
   $res = sql_query("SELECT id, name FROM categories ORDER BY sort ASC");
   while ($row = mysql_fetch_array($res))
      $ret[] = $row;
   return $ret;
}

function linkcolor($num) {
   if (!$num)
      return "red";
//   if ($num == 1)
//      return "yellow";
   return "green";
}

function ratingpic($num) {
   global $pic_base_url, $tracker_lang;
   $r = round($num * 2) / 2;
   if ($r < 1 || $r > 5)
      return;
   return "<img src=\"$pic_base_url$r.gif\" border=\"0\" alt=\"".$tracker_lang['rating'].": $num / 5\" />";
}

function writecomment($userid, $comment) {
   $res = sql_query("SELECT modcomment FROM users WHERE id = '$userid'") or sqlerr(__FILE__, __LINE__);
   $arr = mysql_fetch_assoc($res);

   $modcomment = date("d-m-Y") . " - " . $comment . "" . ($arr[modcomment] != "" ? "\n" : "") . "$arr[modcomment]";
   $modcom = sqlesc($modcomment);

   return sql_query("UPDATE users SET modcomment = $modcom WHERE id = '$userid'") or sqlerr(__FILE__, __LINE__);
}

function torrenttable($res, $variant = "index") {
      global $pic_base_url, $CURUSER, $use_wait, $use_ttl, $ttl_days, $tracker_lang;

  if ($use_wait)
  if (($CURUSER["class"] < UC_VIP) && $CURUSER) {
        $gigs = $CURUSER["uploaded"] / (1024*1024*1024);
        $ratio = (($CURUSER["downloaded"] > 0) ? ($CURUSER["uploaded"] / $CURUSER["downloaded"]) : 0);
        if ($ratio < 0.5 || $gigs < 5) $wait = 48;
        elseif ($ratio < 0.65 || $gigs < 6.5) $wait = 24;
        elseif ($ratio < 0.8 || $gigs < 8) $wait = 12;
        elseif ($ratio < 0.95 || $gigs < 9.5) $wait = 6;
        else $wait = 0;
  }

print("<tr>\n");

// sorting by MarkoStamcar

$count_get = 0;

foreach ($_GET as $get_name => $get_value) {

$get_name = mysql_escape_string(strip_tags(str_replace(array("\"","'"),array("",""),$get_name)));

$get_value = mysql_escape_string(strip_tags(str_replace(array("\"","'"),array("",""),$get_value)));

if ($get_name != "sort" && $get_name != "type") {
if ($count_get > 0) {
$oldlink = $oldlink . "&" . $get_name . "=" . $get_value;
} else {
$oldlink = $oldlink . $get_name . "=" . $get_value;
}
$count_get++;
}

}

if ($count_get > 0) {
$oldlink = $oldlink . "&";
}


if ($_GET['sort'] == "1") {
if ($_GET['type'] == "desc") {
$link1 = "asc";
} else {
$link1 = "desc";
}
}

if ($_GET['sort'] == "2") {
if ($_GET['type'] == "desc") {
$link2 = "asc";
} else {
$link2 = "desc";
}
}

if ($_GET['sort'] == "3") {
if ($_GET['type'] == "desc") {
$link3 = "asc";
} else {
$link3 = "desc";
}
}

if ($_GET['sort'] == "4") {
if ($_GET['type'] == "desc") {
$link4 = "asc";
} else {
$link4 = "desc";
}
}

if ($_GET['sort'] == "5") {
if ($_GET['type'] == "desc") {
$link5 = "asc";
} else {
$link5 = "desc";
}
}

if ($_GET['sort'] == "7") {
if ($_GET['type'] == "desc") {
$link7 = "asc";
} else {
$link7 = "desc";
}
}

if ($_GET['sort'] == "8") {
if ($_GET['type'] == "desc") {
$link8 = "asc";
} else {
$link8 = "desc";
}
}

if ($_GET['sort'] == "9") {
if ($_GET['type'] == "desc") {
$link9 = "asc";
} else {
$link9 = "desc";
}
}

if ($_GET['sort'] == "10") {
if ($_GET['type'] == "desc") {
$link10 = "asc";
} else {
$link10 = "desc";
}
}

if ($link1 == "") { $link1 = "asc"; } // for torrent name
if ($link2 == "") { $link2 = "desc"; }
if ($link3 == "") { $link3 = "desc"; }
if ($link4 == "") { $link4 = "desc"; }
if ($link5 == "") { $link5 = "desc"; }
if ($link7 == "") { $link7 = "desc"; }
if ($link8 == "") { $link8 = "desc"; }
if ($link9 == "") { $link9 = "desc"; }
if ($link10 == "") { $link10 = "desc"; }

?>
<td class="colhead" align="center"><?=$tracker_lang['type'];?></td>
<td class="colhead" align="left"><a href="browse.php?<? print $oldlink; ?>sort=1&type=<? print $link1; ?>" class="altlink_white"><?=$tracker_lang['name'];?></a> / <a href="browse.php?<? print $oldlink; ?>sort=4&type=<? print $link4; ?>" class="altlink_white"><?=$tracker_lang['added'];?></a></td>
<!--<td class="heading" align="left">DL</td>-->
<?
if ($wait)
   print("<td class=\"colhead\" align=\"center\">".$tracker_lang['wait']."</td>\n");

if ($variant == "mytorrents")
   print("<td class=\"colhead\" align=\"center\">".$tracker_lang['visible']."</td>\n");


?>
<td class="colhead" align="center"><a href="browse.php?<? print $oldlink; ?>sort=2&type=<? print $link2; ?>" class="altlink_white"><?=$tracker_lang['files'];?></a></td>
<td class="colhead" align="center"><a href="browse.php?<? print $oldlink; ?>sort=3&type=<? print $link3; ?>" class="altlink_white"><?=$tracker_lang['comments'];?></a></td>
<? if ($use_ttl) {
?>
   <td class="colhead" align="center"><?=$tracker_lang['ttl'];?></td>
<?
}
?>
<td class="colhead" align="center"><a href="browse.php?<? print $oldlink; ?>sort=5&type=<? print $link5; ?>" class="altlink_white"><?=$tracker_lang['size'];?></a></td>
<!--
<td class="colhead" align="right">Views</td>
<td class="colhead" align="right">Hits</td>
-->
<td class="colhead" align="center"><a href="browse.php?<? print $oldlink; ?>sort=7&type=<? print $link7; ?>" class="altlink_white"><?=$tracker_lang['seeds'];?></a>|<a href="browse.php?<? print $oldlink; ?>sort=8&type=<? print $link8; ?>" class="altlink_white"><?=$tracker_lang['leechers'];?></a></td>
<?

if ($variant == "index" || $variant == "bookmarks")
   print("<td class=\"colhead\" align=\"center\"><a href=\"browse.php?{$oldlink}sort=9&type={$link9}\" class=\"altlink_white\">".$tracker_lang['uploadeder']."</a></td>\n");

if ((get_user_class() >= UC_MODERATOR) && $variant == "index")
   print("<td class=\"colhead\" align=\"center\"><a href=\"browse.php?{$oldlink}sort=10&type={$link10}\" class=\"altlink_white\">Изменен</td>");

if ((get_user_class() >= UC_MODERATOR) && $variant == "index")
   print("<td class=\"colhead\" align=\"center\">".$tracker_lang['delete']."</td>\n");

if ($variant == "bookmarks")
   print("<td class=\"colhead\" align=\"center\">".$tracker_lang['delete']."</td>\n");

print("</tr>\n");

print("<tbody id=\"highlighted\">");

if ((get_user_class() >= UC_MODERATOR) && $variant == "index")
   print("<form method=\"post\" action=\"deltorrent.php?mode=delete\">");

   if ($variant == "bookmarks")
      print ("<form method=\"post\" action=\"takedelbookmark.php\">");

   while ($row = mysql_fetch_assoc($res)) {
      $id = $row["id"];
      print("<tr".($row["sticky"] == "yes" ? " class=\"highlight\"" : "").">\n");

      print("<td align=\"center\" style=\"padding: 0px\">");
      if (isset($row["cat_name"])) {
         print("<a href=\"browse.php?cat=" . $row["category"] . "\">");
         if (isset($row["cat_pic"]) && $row["cat_pic"] != "")
            print("<img border=\"0\" src=\"$pic_base_url/cats/" . $row["cat_pic"] . "\" alt=\"" . $row["cat_name"] . "\" />");
         else
            print($row["cat_name"]);
         print("</a>");
      }
      else
         print("-");
      print("</td>\n");

      $dispname = $row["name"];
      $thisisfree = ($row[free]=="yes" ? "<img src=\"pic/freedownload.gif\" title=\"".$tracker_lang['golden']."\" alt=\"".$tracker_lang['golden']."\">" : "");
      print("<td align=\"left\">".($row["sticky"] == "yes" ? "Важный: " : "")."<a href=\"details.php?");
      if ($variant == "mytorrents")
         print("returnto=" . urlencode($_SERVER["REQUEST_URI"]) . "&amp;");
      print("id=$id");
      if ($variant == "index" || $variant == "bookmarks")
         print("&amp;hit=1");
      print("\"><b>$dispname</b></a> $thisisfree\n");

         if ($variant != "bookmarks" && $CURUSER)
            print("<a href=\"bookmark.php?torrent=$row[id]\"><img border=\"0\" src=\"pic/bookmark.gif\" alt=\"".$tracker_lang['bookmark_this']."\" title=\"".$tracker_lang['bookmark_this']."\" /></a>\n");

         print("<a href=\"download.php?id=$id&amp;name=" . rawurlencode($row["filename"]) . "\"><img src=\"pic/download.gif\" border=\"0\" alt=\"".$tracker_lang['download']."\" title=\"".$tracker_lang['download']."\"></a>\n");

      if ($CURUSER["id"] == $row["owner"] || get_user_class() >= UC_MODERATOR)
         $owned = 1;
      else
         $owned = 0;

            if ($owned)
         print("<a href=\"edit.php?id=$row[id]\"><img border=\"0\" src=\"pic/pen.gif\" alt=\"".$tracker_lang['edit']."\" title=\"".$tracker_lang['edit']."\" /></a>\n");

            if ($row["readtorrent"] == 0 && $variant == "index")
               print ("<b><font color=\"red\" size=\"1\">[новый]</font></b>");

         print("<br /><i>".$row["added"]."</i>");

                        if ($wait)
                        {
                          $elapsed = floor((gmtime() - strtotime($row["added"])) / 3600);
            if ($elapsed < $wait)
            {
              $color = dechex(floor(127*($wait - $elapsed)/48 + 128)*65536);
              print("<td align=\"center\"><nobr><a href=\"faq.php#dl8\"><font color=\"$color\">" . number_format($wait - $elapsed) . " h</font></a></nobr></td>\n");
            }
            else
              print("<td align=\"center\"><nobr>".$tracker_lang['no']."</nobr></td>\n");
      }

   print("</td>\n");

      if ($variant == "mytorrents") {
         print("<td align=\"right\">");
         if ($row["visible"] == "no")
            print("<font color=\"red\"><b>".$tracker_lang['no']."</b></font>");
         else
            print("<font color=\"green\">".$tracker_lang['yes']."</font>");
         print("</td>\n");
      }

      if ($row["type"] == "single")
         print("<td align=\"right\">" . $row["numfiles"] . "</td>\n");
      else {
         if ($variant == "index")
            print("<td align=\"right\"><b><a href=\"details.php?id=$id&amp;hit=1&amp;filelist=1\">" . $row["numfiles"] . "</a></b></td>\n");
         else
            print("<td align=\"right\"><b><a href=\"details.php?id=$id&amp;filelist=1#filelist\">" . $row["numfiles"] . "</a></b></td>\n");
      }

      if (!$row["comments"])
         print("<td align=\"right\">" . $row["comments"] . "</td>\n");
      else {
         if ($variant == "index")
            print("<td align=\"right\"><b><a href=\"details.php?id=$id&amp;hit=1&amp;tocomm=1\">" . $row["comments"] . "</a></b></td>\n");
         else
            print("<td align=\"right\"><b><a href=\"details.php?id=$id&amp;page=0#startcomments\">" . $row["comments"] . "</a></b></td>\n");
      }

//      print("<td align=center><nobr>" . str_replace(" ", "<br />", $row["added"]) . "</nobr></td>\n");
            $ttl = ($ttl_days*24) - floor((gmtime() - sql_timestamp_to_unix_timestamp($row["added"])) / 3600);
            if ($ttl == 1) $ttl .= " час"; else $ttl .= "&nbsp;часов";
      if ($use_ttl)
         print("<td align=\"center\">$ttl</td>\n");
      print("<td align=\"center\">" . str_replace(" ", "<br />", mksize($row["size"])) . "</td>\n");
//      print("<td align=\"right\">" . $row["views"] . "</td>\n");
//      print("<td align=\"right\">" . $row["hits"] . "</td>\n");

      print("<td align=\"center\">");

      if ($row["seeders"]) {
         if ($variant == "index")
         {
            if ($row["leechers"]) $ratio = $row["seeders"] / $row["leechers"]; else $ratio = 1;
            print("<b><a href=\"details.php?id=$id&amp;hit=1&amp;toseeders=1\"><font color=" .
              get_slr_color($ratio) . ">" . $row["seeders"] . "</font></a></b>\n");
         }
         else
            print("<b><a class=\"" . linkcolor($row["seeders"]) . "\" href=\"details.php?id=$id&amp;dllist=1#seeders\">" .
              $row["seeders"] . "</a></b>\n");
      }
      else
         print("<span class=\"" . linkcolor($row["seeders"]) . "\">" . $row["seeders"] . "</span>");

      print(" | ");

      if ($row["leechers"]) {
         if ($variant == "index")
            print("<b><a href=\"details.php?id=$id&amp;hit=1&amp;todlers=1\">" .
               number_format($row["leechers"]) . ($peerlink ? "</a>" : "") .
               "</b>\n");
         else
            print("<b><a class=\"" . linkcolor($row["leechers"]) . "\" href=\"details.php?id=$id&amp;dllist=1#leechers\">" .
              $row["leechers"] . "</a></b>\n");
      }
      else
         print("0\n");

      print("</td>");

      if ($variant == "index" || $variant == "bookmarks")
         print("<td align=\"center\">" . (isset($row["unknown"]) ? ("<a href=\"userdetails.php?id=" . $row["owner"] . "\"><b>" . get_user_class_color($row["class"], htmlspecialchars_uni($row["username"])) . "</b></a>") : "<i>(unknown)</i>") . "</td>\n");

      if ($variant == "bookmarks")
         print ("<td align=\"center\"><input type=\"checkbox\" name=\"delbookmark[]\" value=\"" . $row[bookmarkid] . "\" /></td>");

      if ((get_user_class() >= UC_MODERATOR) && $variant == "index") {
         if ($row["moderated"] == "no")
            print("<td align=\"center\"><font color=\"red\"><b>Нет</b></font></td>\n");
         else
            print("<td align=\"center\"><a href=\"userdetails.php?id=$row[moderatedby]\"><font color=\"green\"><b>Да</b></font></a></td>\n");
      }

      if ((get_user_class() >= UC_MODERATOR) && $variant == "index")
         print("<td align=\"center\"><input type=\"checkbox\" name=\"delete[]\" value=\"" . $id . "\" /></td>\n");

   print("</tr>\n");

   }

   print("</tbody>");

   if ($variant == "index" && $CURUSER)
      print("<tr><td class=\"colhead\" colspan=\"12\" align=\"center\"><a href=\"markread.php\" class=\"altlink_white\">Все торренты прочитаны</a></td></tr>");

   //print("</table>\n");

   if ($variant == "index") {
      if (get_user_class() >= UC_MODERATOR) {
         print("<tr><td align=\"right\" colspan=\"12\"><input type=\"submit\" value=\"Удалить\"></td></tr>\n");
      }
   }

   if ($variant == "bookmarks")
      print("<tr><td colspan=\"12\" align=\"right\"><input type=\"submit\" value=\"".$tracker_lang['delete']."\"></td></tr>\n");

   if ($variant == "index" || $variant == "bookmarks") {
      if (get_user_class() >= UC_MODERATOR) {
         print("</form>\n");
      }
   }

   return $rows;
}

function hash_pad($hash) {
   return str_pad($hash, 20);
}

function hash_where($name, $hash) {
   $shhash = preg_replace('/ *$/s', "", $hash);
   return "($name = " . sqlesc($hash) . " OR $name = " . sqlesc($shhash) . ")";
}

function get_user_icons($arr, $big = false) {
      if ($big) {
            $donorpic = "starbig.gif";
            $warnedpic = "warnedbig.gif";
            $disabledpic = "disabledbig.gif";
            $style = "style='margin-left: 4pt'";
      } else {
            $donorpic = "star.gif";
            $warnedpic = "warned.gif";
            $disabledpic = "disabled.gif";
            $parkedpic = "parked.gif";
            $style = "style=\"margin-left: 2pt\"";
      }
      $pics = $arr["donor"] == "yes" ? "<img src=\"pic/$donorpic\" alt='Donor' border=\"0\" $style>" : "";
      if ($arr["enabled"] == "yes")
            $pics .= $arr["warned"] == "yes" ? "<img src=pic/$warnedpic alt=\"Warned\" border=0 $style>" : "";
      else
            $pics .= "<img src=\"pic/$disabledpic\" alt=\"Disabled\" border=\"0\" $style>\n";
      $pics .= $arr["parked"] == "yes" ? "<img src=pic/$parkedpic alt=\"Parked\" border=\"0\" $style>" : "";
      return $pics;
}

function parked() {
      global $CURUSER;
      if ($CURUSER["parked"] == "yes")
        stderr($tracker_lang['error'], "Ваш аккаунт припаркован.");
}

?>
Sim
Начинающий участник
 
Сообщения: 10
Зарегистрирован: 29 июн 2008, 17:52

Re: Установка торрент-трекера TBDev YSE 2.0

Сообщение doliar » 07 июл 2008, 10:05

Sim писал(а):вот код этого файла, найди если сможеш)


Просто у тебя другая версия TBDev:no:
Вот файл functions.php с чистой версии TBDev:
Код: Выделить всёРазвернуть
<?php
/*
// +----------------------------------------------------------------------------+
// | Project:    TBDevYSE - TBDev Yuna Scatari Edition                     |
// +----------------------------------------------------------------------------+
// | This file is part of TBDevYSE. TBDevYSE is based on TBDev,               |
// | originally by RedBeard of TorrentBits, extensively modified by            |
// | Gartenzwerg.                                                |
// |                                                          |
// | TBDevYSE is free software; you can redistribute it and/or modify         |
// | it under the terms of the GNU General Public License as published by      |
// | the Free Software Foundation; either version 2 of the License, or         |
// | (at your option) any later version.                              |
// |                                                         |
// | TBDevYSE is distributed in the hope that it will be useful,            |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of            |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            |
// | GNU General Public License for more details.                        |
// |                                                         |
// | You should have received a copy of the GNU General Public License         |
// | along with TBDevYSE; if not, write to the Free Software Foundation,      |
// | Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA            |
// +----------------------------------------------------------------------------+
// |                      Do not remove above lines!                  |
// +----------------------------------------------------------------------------+
*/

# IMPORTANT: Do not edit below unless you know what you are doing!
if(!defined('IN_TRACKER'))
  die('Hacking attempt!');

require_once($rootpath . 'include/functions_global.php');
require_once($rootpath . 'include/mybb.php');

function strip_magic_quotes($arr) {
   foreach ($arr as $k => $v) {
      if (is_array($v)) {
         $arr[$k] = strip_magic_quotes($v);
         } else {
         $arr[$k] = stripslashes($v);
         }
   }
   return $arr;
}

function local_user() {
   return $_SERVER["SERVER_ADDR"] == $_SERVER["REMOTE_ADDR"];
}

function sql_query($query) {
   global $queries, $query_stat, $querytime;
   $queries++;
   $query_start_time = timer(); // Start time
   $result = mysql_query($query);
   $query_end_time = timer(); // End time
   $query_time = ($query_end_time - $query_start_time);
   $querytime = $querytime + $query_time;
   $query_time = substr($query_time, 0, 8);
   $query_stat[] = array("seconds" => $query_time, "query" => $query);
   return $result;
}

function dbconn($autoclean = false, $lightmode = false) {
   global $mysql_host, $mysql_user, $mysql_pass, $mysql_db, $mysql_charset;

   if (!@mysql_connect($mysql_host, $mysql_user, $mysql_pass))
      die("[" . mysql_errno() . "] dbconn: mysql_connect: " . mysql_error());

   mysql_select_db($mysql_db)
      or die("dbconn: mysql_select_db: " + mysql_error());

   mysql_query("SET NAMES $mysql_charset");

   userlogin($lightmode);

   if (basename($_SERVER['SCRIPT_FILENAME']) == 'index.php')
      register_shutdown_function("autoclean");

   register_shutdown_function("mysql_close");

}

function userlogin($lightmode = false) {
   global $SITE_ONLINE, $default_language, $tracker_lang, $use_lang, $use_ipbans;
   unset($GLOBALS["CURUSER"]);

   $ip = getip();
   $nip = ip2long($ip);

   if ($use_ipbans && !$lightmode) {
      $res = sql_query("SELECT * FROM bans WHERE $nip >= first AND $nip <= last") or sqlerr(__FILE__, __LINE__);
      if (mysql_num_rows($res) > 0) {
         $comment = mysql_fetch_assoc($res);
         $comment = $comment["comment"];
         header("HTTP/1.0 403 Forbidden");
         print("<html><body><h1>403 Forbidden</h1>Unauthorized IP address.</body></html>\n");
         die;
      }
   }

   if (!$SITE_ONLINE || empty($_COOKIE["uid"]) || empty($_COOKIE["pass"])) {
      if ($use_lang)
         include_once('languages/lang_' . $default_language . '/lang_main.php');
      user_session();
      return;
   }
   $id = 0 + $_COOKIE["uid"];
   if (!$id || strlen($_COOKIE["pass"]) != 32) {
      die("Cokie ID invalid or cookie pass hash problem.");
      /*if ($use_lang)
         include_once('languages/lang_' . $default_language . '/lang_main.php');
      user_session();
      return;*/
   }
   $res = sql_query("SELECT * FROM users WHERE id = $id AND enabled='yes' AND status = 'confirmed'");// or die(mysql_error());
   $row = mysql_fetch_array($res);
   if (!$row) {
      if ($use_lang)
         include_once('languages/lang_' . $default_language . '/lang_main.php');
      user_session();
      return;
   }
   $sec = hash_pad($row["secret"]);
   if ($_COOKIE["pass"] !== $row["passhash"]) {
      if ($use_lang)
         include_once('languages/lang_' . $default_language . '/lang_main.php');
      user_session();
      return;
   }
   sql_query("UPDATE users SET last_access = ".sqlesc(get_date_time()).", ip = ".sqlesc($ip)." WHERE id=" . $row["id"]);// or die(mysql_error());
   $row['ip'] = $ip;

   if ($row['override_class'] < $row['class'])
      $row['class'] = $row['override_class']; // Override class and save in GLOBAL array below.

   $GLOBALS["CURUSER"] = $row;
   if ($use_lang)
      include_once('languages/lang_' . $row['language'] . '/lang_main.php');

   if (!$lightmode)
      user_session();

}

function get_server_load() {
   global $tracker_lang, $phpver;
   if (strtolower(substr(PHP_OS, 0, 3)) === 'win') {
      return 0;
   } elseif (@file_exists("/proc/loadavg")) {
      $load = @file_get_contents("/proc/loadavg");
      $serverload = explode(" ", $load);
      $serverload[0] = round($serverload[0], 4);
      if(!$serverload) {
         $load = @exec("uptime");
         $load = split("load averages?: ", $load);
         $serverload = explode(",", $load[1]);
      }
   } else {
      $load = @exec("uptime");
      $load = split("load averages?: ", $load);
      $serverload = explode(",", $load[1]);
   }
   $returnload = trim($serverload[0]);
   if(!$returnload) {
      $returnload = $tracker_lang['unknown'];
   }
   return $returnload;
}

function user_session() {
   global $CURUSER, $use_sessions;

   if (!$use_sessions)
      return;

   $ip = getip();
   $url = getenv("REQUEST_URI");

   if (!$CURUSER) {
      $uid = -1;
      $username = '';
      $class = -1;
   } else {
      $uid = $CURUSER['id'];
      $username = $CURUSER['username'];
      $class = $CURUSER['class'];
   }

   $past = time() - 300;
   $sid = session_id();
   $where = array();
   $updateset = array();
   if ($sid)
      $where[] = "sid = ".sqlesc($sid);
   elseif ($uid)
      $where[] = "uid = $uid";
   else
      $where[] = "ip = ".sqlesc($ip);
   //sql_query("DELETE FROM sessions WHERE ".implode(" AND ", $where));
   $ctime = time();
   $agent = $_SERVER["HTTP_USER_AGENT"];
   $updateset[] = "sid = ".sqlesc($sid);
   $updateset[] = "uid = ".sqlesc($uid);
   $updateset[] = "username = ".sqlesc($username);
   $updateset[] = "class = ".sqlesc($class);
   $updateset[] = "ip = ".sqlesc($ip);
   $updateset[] = "time = ".sqlesc($ctime);
   $updateset[] = "url = ".sqlesc($url);
   $updateset[] = "useragent = ".sqlesc($agent);
   if (count($updateset))
      sql_query("UPDATE sessions SET ".implode(", ", $updateset)." WHERE ".implode(" AND ", $where)) or sqlerr(__FILE__,__LINE__);
   if (mysql_modified_rows() < 1)
      sql_query("INSERT INTO sessions (sid, uid, username, class, ip, time, url, useragent) VALUES (".implode(", ", array_map("sqlesc", array($sid, $uid, $username, $class, $ip, $ctime, $url, $agent))).")") or sqlerr(__FILE__,__LINE__);
}

function unesc($x) {
   if (get_magic_quotes_gpc())
      return stripslashes($x);
   return $x;
}

function gzip() {
   if (@extension_loaded('zlib') && @ini_get('zlib.output_compression') != '1' && @ini_get('output_handler') != 'ob_gzhandler' && $use_gzip) {
      @ob_start('ob_gzhandler');
   }
}

// IP Validation
function validip($ip) {
   if (!empty($ip) && $ip == long2ip(ip2long($ip)))
   {
      // reserved IANA IPv4 addresses
      // http://www.iana.org/assignments/ipv4-address-space
      $reserved_ips = array (
            array('0.0.0.0','2.255.255.255'),
            array('10.0.0.0','10.255.255.255'),
            array('127.0.0.0','127.255.255.255'),
            array('169.254.0.0','169.254.255.255'),
            array('172.16.0.0','172.31.255.255'),
            array('192.0.2.0','192.0.2.255'),
            array('192.168.0.0','192.168.255.255'),
            array('255.255.255.0','255.255.255.255')
      );

      foreach ($reserved_ips as $r) {
            $min = ip2long($r[0]);
            $max = ip2long($r[1]);
            if ((ip2long($ip) >= $min) && (ip2long($ip) <= $max)) return false;
      }
      return true;
   }
   else return false;
}

function getip() {
   if (isset($_SERVER)) {
      if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && validip($_SERVER['HTTP_X_FORWARDED_FOR'])) {
         $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
      } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && validip($_SERVER['HTTP_CLIENT_IP'])) {
         $ip = $_SERVER['HTTP_CLIENT_IP'];
      } else {
         $ip = $_SERVER['REMOTE_ADDR'];
      }
   } else {
      if (getenv('HTTP_X_FORWARDED_FOR') && validip(getenv('HTTP_X_FORWARDED_FOR'))) {
         $ip = getenv('HTTP_X_FORWARDED_FOR');
      } elseif (getenv('HTTP_CLIENT_IP') && validip(getenv('HTTP_CLIENT_IP'))) {
         $ip = getenv('HTTP_CLIENT_IP');
      } else {
         $ip = getenv('REMOTE_ADDR');
       }
   }

   return $ip;
}

function autoclean() {
   global $autoclean_interval, $rootpath;

   $now = time();
   $docleanup = 0;

   $res = sql_query("SELECT value_u FROM avps WHERE arg = 'lastcleantime'");
   $row = mysql_fetch_array($res);
   if (!$row) {
      sql_query("INSERT INTO avps (arg, value_u) VALUES ('lastcleantime',$now)");
      return;
   }
   $ts = $row[0];
   if ($ts + $autoclean_interval > $now)
      return;
   sql_query("UPDATE avps SET value_u=$now WHERE arg='lastcleantime' AND value_u = $ts");
   if (!mysql_affected_rows())
      return;

   require_once($rootpath . 'include/cleanup.php');

   docleanup();
}

function mksize($bytes) {
   if ($bytes < 1000 * 1024)
      return number_format($bytes / 1024, 2) . " kB";
   elseif ($bytes < 1000 * 1048576)
      return number_format($bytes / 1048576, 2) . " MB";
   elseif ($bytes < 1000 * 1073741824)
      return number_format($bytes / 1073741824, 2) . " GB";
   else
      return number_format($bytes / 1099511627776, 2) . " TB";
}

function mksizeint($bytes) {
      $bytes = max(0, $bytes);
      if ($bytes < 1000)
            return floor($bytes) . " B";
      elseif ($bytes < 1000 * 1024)
            return floor($bytes / 1024) . " kB";
      elseif ($bytes < 1000 * 1048576)
            return floor($bytes / 1048576) . " MB";
      elseif ($bytes < 1000 * 1073741824)
            return floor($bytes / 1073741824) . " GB";
      else
            return floor($bytes / 1099511627776) . " TB";
}

function deadtime() {
   global $announce_interval;
   return time() - floor($announce_interval * 1.3);
}

function mkprettytime($s) {
    if ($s < 0)
   $s = 0;
    $t = array();
    foreach (array("60:sec","60:min","24:hour","0:day") as $x) {
      $y = explode(":", $x);
      if ($y[0] > 1) {
          $v = $s % $y[0];
          $s = floor($s / $y[0]);
      } else
          $v = $s;
   $t[$y[1]] = $v;
    }

    if ($t["day"])
   return $t["day"] . "d " . sprintf("%02d:%02d:%02d", $t["hour"], $t["min"], $t["sec"]);
    if ($t["hour"])
   return sprintf("%d:%02d:%02d", $t["hour"], $t["min"], $t["sec"]);
   return sprintf("%d:%02d", $t["min"], $t["sec"]);
}

function mkglobal($vars) {
   if (!is_array($vars))
      $vars = explode(":", $vars);
   foreach ($vars as $v) {
      if (isset($_GET[$v]))
         $GLOBALS[$v] = unesc($_GET[$v]);
      elseif (isset($_POST[$v]))
         $GLOBALS[$v] = unesc($_POST[$v]);
      else
         return 0;
   }
   return 1;
}

function tr($x, $y, $noesc=0, $prints = true, $width = "", $relation = '') {
   if ($noesc)
      $a = $y;
   else {
      $a = htmlspecialchars_uni($y);
      $a = str_replace("\n", "<br />\n", $a);
   }
   if ($prints) {
     $print = "<td width=\"". $width ."\" class=\"heading\" valign=\"top\" align=\"right\">$x</td>";
     $colpan = "align=\"left\"";
   } else {
      $colpan = "colspan=\"2\"";
   }

   print("<tr".( $relation ? " relation=\"$relation\"" : "").">$print<td valign=\"top\" $colpan>$a</td></tr>\n");
}

function validfilename($name) {
   return preg_match('/^[^\0-\x1f:\\\\\/?*\xff#<>|]+$/si', $name);
}

function validemail($email) {
   if (ereg("^([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", $email))
      return true;
   else
      return false;
}

function sent_mail($to,$fromname,$fromemail,$subject,$body,$multiple=false,$multiplemail='') {
   global $SITENAME,$SITEEMAIL,$smtptype,$smtp,$smtp_host,$smtp_port,$smtp_from,$smtpaddress,$accountname,$accountpassword,$rootpath;
   # Sent Mail Function v.05 by xam (This function to help avoid spam-filters.)
   $result = true;
   if ($smtptype == 'default') {
      @mail($to, $subject, $body, "From: $SITEEMAIL") or $result = false;
   } elseif ($smtptype == 'advanced') {
   # Is the OS Windows or Mac or Linux?
   if (strtoupper(substr(PHP_OS,0,3)=='WIN')) {
      $eol="\r\n";
      $windows = true;
   }
   elseif (strtoupper(substr(PHP_OS,0,3)=='MAC'))
      $eol="\r";
   else
      $eol="\n";
   $mid = md5(getip() . $fromname);
   $name = $_SERVER["SERVER_NAME"];
   $headers .= "From: $fromname <$fromemail>".$eol;
   $headers .= "Reply-To: $fromname <$fromemail>".$eol;
   $headers .= "Return-Path: $fromname <$fromemail>".$eol;
   $headers .= "Message-ID: <$mid thesystem@$name>".$eol;
   $headers .= "X-Mailer: PHP v".phpversion().$eol;
    $headers .= "MIME-Version: 1.0".$eol;
    $headers .= "Content-type: text/plain; charset=windows-1251".$eol;
    $headers .= "X-Sender: PHP".$eol;
    if ($multiple)
       $headers .= "Bcc: $multiplemail.$eol";
   if ($smtp == "yes") {
      ini_set('SMTP', $smtp_host);
      ini_set('smtp_port', $smtp_port);
      if ($windows)
         ini_set('sendmail_from', $smtp_from);
      }

       @mail($to, $subject, $body, $headers) or $result = false;

       ini_restore(SMTP);
      ini_restore(smtp_port);
      if ($windows)
         ini_restore(sendmail_from);
   } elseif ($smtptype == 'external') {
      require_once($rootpath . 'include/smtp/smtp.lib.php');
      $mail = new smtp;
      $mail->debug(true);
      $mail->open($smtp_host, $smtp_port);
      if (!empty($accountname) && !empty($accountpassword))
         $mail->auth($accountname, $accountpassword);
      $mail->from($SITEEMAIL);
      $mail->to($to);
      $mail->subject($subject);
      $mail->body($body);
      $result = $mail->send();
      $mail->close();
   } else
      $result = false;

   return $result;
}

function sqlesc($value) {
   // Stripslashes
   /*if (get_magic_quotes_gpc()) {
      $value = stripslashes($value);
   }*/
   // Quote if not a number or a numeric string
   if (!is_numeric($value)) {
      $value = "'" . mysql_real_escape_string($value) . "'";
   }
   return $value;
}

function sqlwildcardesc($x) {
   return str_replace(array("%","_"), array("\\%","\\_"), mysql_real_escape_string($x));
}

function urlparse($m) {
   $t = $m[0];
   if (preg_match(',^\w+://,', $t))
      return "<a href=\"$t\">$t</a>";
   return "<a href=\"http://$t\">$t</a>";
}

function parsedescr($d, $html) {
   if (!$html) {
     $d = htmlspecialchars_uni($d);
     $d = str_replace("\n", "\n<br>", $d);
   }
   return $d;
}

function stdhead($title = "", $msgalert = true) {
   global $CURUSER, $SITE_ONLINE, $FUNDS, $SITENAME, $DEFAULTBASEURL, $ss_uri, $tracker_lang, $default_theme;

   if (!$SITE_ONLINE)
      die("Site is down for maintenance, please check back again later... thanks<br />");

      header ("Content-Type: text/html; charset=" . $tracker_lang['language_charset']);
      header ("X-Powered-by: TBDev Yuna Scatari Edition - http://bit-torrent.kiev.ua");
      header ("X-Chocolate-to: ICQ 7282521");
      header ("Cache-Control: no-cache");
      header ("Pragma: no-cache");
      if ($title == "")
         $title = $SITENAME .(isset($_GET['yuna'])?" (".TBVERSION.")":'');
      else
         $title = $SITENAME .(isset($_GET['yuna'])?" (".TBVERSION.")":''). " :: " . htmlspecialchars_uni($title);

      if (isset($_GET['styleid']) && $CURUSER) {
         $styleid = $_GET['styleid'];
         if (is_numeric($styleid)) {
            sql_query("UPDATE users SET stylesheet = $styleid WHERE id=" . $CURUSER["id"]) or sqlerr(__FILE__, __LINE__);
               header("Location: $DEFAULTBASEURL/");
            //$CURUSER["stylesheet"] = $styleid;
         } else {
            die("Сука, ты чего ломаешь?");
         }
      }

   if ($CURUSER) {
      $ss_a = @mysql_fetch_array(@sql_query("SELECT uri FROM stylesheets WHERE id = " . $CURUSER["stylesheet"]));
      if ($ss_a)
         $ss_uri = $ss_a["uri"];
      else
         $ss_uri = $default_theme;
   } else
      $ss_uri = $default_theme;

     if ($msgalert && $CURUSER) {
      $res = sql_query("SELECT COUNT(*) FROM messages WHERE receiver = " . $CURUSER["id"] . " AND unread='yes'") or die("OopppsY!");
      $arr = mysql_fetch_row($res);
      $unread = $arr[0];
     }

   require_once("themes/" . $ss_uri . "/template.php");
   require_once("themes/" . $ss_uri . "/stdhead.php");

} // stdhead

function stdfoot() {
   global $CURUSER, $ss_uri, $tracker_lang, $queries, $tstart, $query_stat, $querytime;

   require_once("themes/" . $ss_uri . "/template.php");
   require_once("themes/" . $ss_uri . "/stdfoot.php");
   if ((DEBUG_MODE || isset($_GET["yuna"])) && count($query_stat)) {
      foreach ($query_stat as $key => $value) {
         print("<div>[".($key+1)."] => <b>".($value["seconds"] > 0.01 ? "<font color=\"red\" title=\"Рекомендуется оптимизировать запрос. Время исполнения превышает норму.\">".$value["seconds"]."</font>" : "<font color=\"green\" title=\"Запрос не нуждается в оптимизации. Время исполнения допустимое.\">".$value["seconds"]."</font>" )."</b> [$value[query]]</div>\n");
      }
      print("<br />");
   }
}

function genbark($x,$y) {
   stdhead($y);
   print("<h2>" . htmlspecialchars_uni($y) . "</h2>\n");
   print("<p>" . htmlspecialchars_uni($x) . "</p>\n");
   stdfoot();
   exit();
}

function mksecret($length = 20) {
$set = array("a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","i","I","j","J","k","K","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T","u","U","v","V","w","W","x","X","y","Y","z","Z","1","2","3","4","5","6","7","8","9");
   $str;
   for($i = 1; $i <= $length; $i++)
   {
      $ch = rand(0, count($set)-1);
      $str .= $set[$ch];
   }
   return $str;
}

function httperr($code = 404) {
   $sapi_name = php_sapi_name();
   if ($sapi_name == 'cgi' OR $sapi_name == 'cgi-fcgi') {
      header('Status: 404 Not Found');
   } else {
      header('HTTP/1.1 404 Not Found');
   }
   exit;
}

function gmtime() {
   return strtotime(get_date_time());
}

function logincookie($id, $passhash, $updatedb = 1, $expires = 0x7fffffff) {
      setcookie("uid", $id, $expires, "/");
      setcookie("pass", $passhash, $expires, "/");

   if ($updatedb)
      sql_query("UPDATE users SET last_login = NOW() WHERE id = $id");
}

function logoutcookie() {
   setcookie("uid", "", 0x7fffffff, "/");
   setcookie("pass", "", 0x7fffffff, "/");
   my_unsetcookiee("mybbuser");
   my_unsetcookiee("sid");
   if (my_getuid($uid)) {
      $time = TIMENOW;
      $lastactive = $time-900;
      sql_query("UPDATE ".TABLE_PREFIX."users SET lastactive = ".sqlesc($lastactive).", lastvisit = ".sqlesc($time)." WHERE uid = ".sqlesc($uid));
   }
}

function loggedinorreturn($nowarn = false) {
   global $CURUSER, $DEFAULTBASEURL;
   if (!$CURUSER) {
      header("Location: $DEFAULTBASEURL/login.php?returnto=" . urlencode(basename($_SERVER["REQUEST_URI"])).($nowarn ? "&nowarn=1" : ""));
      exit();
   }
}

function deletetorrent($id) {
   global $torrent_dir;
   sql_query("DELETE FROM torrents WHERE id = $id");
   sql_query("DELETE FROM bookmarks WHERE id = $id");
   sql_query("DELETE FROM snatched WHERE torrent = $id");
   foreach(explode(".","peers.files.comments.ratings") as $x)
      sql_query("DELETE FROM $x WHERE torrent = $id");
   @unlink("$torrent_dir/$id.torrent");
}

function pager($rpp, $count, $href, $opts = array()) {
   $pages = ceil($count / $rpp);

   if (!$opts["lastpagedefault"])
      $pagedefault = 0;
   else {
      $pagedefault = floor(($count - 1) / $rpp);
      if ($pagedefault < 0)
         $pagedefault = 0;
   }

   if (isset($_GET["page"])) {
      $page = 0 + $_GET["page"];
      if ($page < 0)
         $page = $pagedefault;
   }
   else
      $page = $pagedefault;

      $pager = "<td class=\"pager\">Страницы:</td><td class=\"pagebr\">&nbsp;</td>";

   $mp = $pages - 1;
   $as = "<b>«</b>";
   if ($page >= 1) {
      $pager .= "<td class=\"pager\">";
      $pager .= "<a href=\"{$href}page=" . ($page - 1) . "\" style=\"text-decoration: none;\">$as</a>";
      $pager .= "</td><td class=\"pagebr\">&nbsp;</td>";
   }

   $as = "<b>»</b>";
   if ($page < $mp && $mp >= 0) {
      $pager2 .= "<td class=\"pager\">";
      $pager2 .= "<a href=\"{$href}page=" . ($page + 1) . "\" style=\"text-decoration: none;\">$as</a>";
      $pager2 .= "</td>$bregs";
   }else    $pager2 .= $bregs;

   if ($count) {
      $pagerarr = array();
      $dotted = 0;
      $dotspace = 3;
      $dotend = $pages - $dotspace;
      $curdotend = $page - $dotspace;
      $curdotstart = $page + $dotspace;
      for ($i = 0; $i < $pages; $i++) {
         if (($i >= $dotspace && $i <= $curdotend) || ($i >= $curdotstart && $i < $dotend)) {
            if (!$dotted)
               $pagerarr[] = "<td class=\"pager\">...</td><td class=\"pagebr\">&nbsp;</td>";
            $dotted = 1;
            continue;
         }
         $dotted = 0;
         $start = $i * $rpp + 1;
         $end = $start + $rpp - 1;
         if ($end > $count)
            $end = $count;

          $text = $i+1;
         if ($i != $page)
            $pagerarr[] = "<td class=\"pager\"><a title=\"$start&nbsp;-&nbsp;$end\" href=\"{$href}page=$i\" style=\"text-decoration: none;\"><b>$text</b></a></td><td class=\"pagebr\">&nbsp;</td>";
         else
            $pagerarr[] = "<td class=\"highlight\"><b>$text</b></td><td class=\"pagebr\">&nbsp;</td>";

              }
      $pagerstr = join("", $pagerarr);
      $pagertop = "<table class=\"main\"><tr>$pager $pagerstr $pager2</tr></table>\n";
      $pagerbottom = "Всего $count на $i страницах по $rpp на каждой странице.<br /><br /><table class=\"main\">$pager $pagerstr $pager2</table>\n";
   }
   else {
      $pagertop = $pager;
      $pagerbottom = $pagertop;
   }

   $start = $page * $rpp;

   return array($pagertop, $pagerbottom, "LIMIT $start,$rpp");
}

function downloaderdata($res) {
   $rows = array();
   $ids = array();
   $peerdata = array();
   while ($row = mysql_fetch_assoc($res)) {
      $rows[] = $row;
      $id = $row["id"];
      $ids[] = $id;
      $peerdata[$id] = array(downloaders => 0, seeders => 0, comments => 0);
   }

   if (count($ids)) {
      $allids = implode(",", $ids);
      $res = sql_query("SELECT COUNT(*) AS c, torrent, seeder FROM peers WHERE torrent IN ($allids) GROUP BY torrent, seeder");
      while ($row = mysql_fetch_assoc($res)) {
         if ($row["seeder"] == "yes")
            $key = "seeders";
         else
            $key = "downloaders";
         $peerdata[$row["torrent"]][$key] = $row["c"];
      }
      $res = sql_query("SELECT COUNT(*) AS c, torrent FROM comments WHERE torrent IN ($allids) GROUP BY torrent");
      while ($row = mysql_fetch_assoc($res)) {
         $peerdata[$row["torrent"]]["comments"] = $row["c"];
      }
   }

   return array($rows, $peerdata);
}

function commenttable($rows, $redaktor = "comment") {
   global $CURUSER, $avatar_max_width;

   $count = 0;
   foreach ($rows as $row)   {
             if ($row["downloaded"] > 0) {
                $ratio = $row['uploaded'] / $row['downloaded'];
                $ratio = number_format($ratio, 2);
             } elseif ($row["uploaded"] > 0) {
                $ratio = "Inf.";
             } else {
                $ratio = "---";
             }
              if (strtotime($row["last_access"]) > gmtime() - 600) {
                 $online = "online";
                 $online_text = "В сети";
              } else {
                 $online = "offline";
                 $online_text = "Не в сети";
              }

      print("<table class=maibaugrand width=100% border=1 cellspacing=0 cellpadding=3>");
      print("<tr><td class=colhead align=\"left\" colspan=\"2\" height=\"24\">");

    if (isset($row["username"]))
      {
         $title = $row["title"];
         if ($title == ""){
            $title = get_user_class_name($row["class"]);
         }else{
            $title = htmlspecialchars_uni($title);
         }
         print(":: <img src=\"pic/buttons/button_".$online.".gif\" alt=\"".$online_text."\" title=\"".$online_text."\" style=\"position: relative; top: 2px;\" border=\"0\" height=\"14\">"
             ." <a name=comm". $row["id"]." href=userdetails.php?id=" . $row["user"] . " class=altlink_white><b>". get_user_class_color($row["class"], htmlspecialchars_uni($row["username"])) . "</b></a> ::"
             .($row["donor"] == "yes" ? "<img src=pic/star.gif alt='Donor'>" : "") . ($row["warned"] == "yes" ? "<img src=\"/pic/warned.gif\" alt=\"Warned\">" : "") . " $title ::\n")
             ." <img src=\"pic/upl.gif\" alt=\"upload\" border=\"0\" width=\"12\" height=\"12\"> ".mksize($row["uploaded"]) ." :: <img src=\"pic/down.gif\" alt=\"download\" border=\"0\" width=\"12\" height=\"12\"> ".mksize($row["downloaded"])." :: <font color=\"".get_ratio_color($ratio)."\">$ratio</font> :: ";

          } else {
         print("<a name=\"comm" . $row["id"] . "\"><i>[Anonymous]</i></a>\n");
          }

   $avatar = ($CURUSER["avatars"] == "yes" ? htmlspecialchars_uni($row["avatar"]) : "");
   if (!$avatar){$avatar = "pic/default_avatar.gif"; }
   $text = format_comment($row["text"]);

   if ($row["editedby"]) {
          //$res = mysql_fetch_assoc(sql_query("SELECT * FROM users WHERE id = $row[editedby]")) or sqlerr(__FILE__,__LINE__);
          $text .= "<p><font size=1 class=small>Последний раз редактировалось <a href=userdetails.php?id=$row[editedby]><b>$row[editedbyname]</b></a> в $row[editedat]</font></p>\n";
    }
      print("</td></tr>");
      print("<tr valign=top>\n");
      print("<td style=\"padding: 0px; width: 5%;\" align=\"center\"><img src=$avatar width=\"$avatar_max_width\"> </td>\n");
      print("<td width=100% class=text>");
      //print("<span style=\"float: right\"><a href=\"#top\"><img title=\"Top\" src=\"pic/top.gif\" alt=\"Top\" border=\"0\" width=\"15\" height=\"13\"></a></span>");
      print("$text</td>\n");
      print("</tr>\n");
      print("<tr><td class=colhead align=\"center\" colspan=\"2\">");
      print"<div style=\"float: left; width: auto;\">"
         .($CURUSER ? " [<a href=\"".$redaktor.".php?action=quote&amp;cid=$row[id]\" class=\"altlink_white\">Цитата</a>]" : "")
         .($row["user"] == $CURUSER["id"] || get_user_class() >= UC_MODERATOR ? " [<a href=".$redaktor.".php?action=edit&amp;cid=$row[id] class=\"altlink_white\">Изменить</a>]" : "")
          .(get_user_class() >= UC_MODERATOR ? " [<a href=\"".$redaktor.".php?action=delete&amp;cid=$row[id]\" class=\"altlink_white\">Удалить</a>]" : "")
          .($row["editedby"] && get_user_class() >= UC_MODERATOR ? " [<a href=\"".$redaktor.".php?action=vieworiginal&amp;cid=$row[id]\" class=\"altlink_white\">Оригинал</a>]" : "")
          .(get_user_class() >= UC_MODERATOR ? " IP: ".($row["ip"] ? "<a href=\"usersearch.php?ip=$row[ip]\" class=\"altlink_white\">".$row["ip"]."</a>" : "Неизвестен" ) : "")
          ."</div>";

      print("<div align=\"right\"><!--<font size=1 class=small>-->Комментарий добавлен: ".$row["added"]." GMT<!--</font>--></td></tr>");
      print("</table><br>");
  }

}

function searchfield($s) {
   return preg_replace(array('/[^a-z0-9]/si', '/^\s*/s', '/\s*$/s', '/\s+/s'), array(" ", "", "", " "), $s);
}

function genrelist() {
   $ret = array();
   $res = sql_query("SELECT id, name FROM categories ORDER BY sort ASC");
   while ($row = mysql_fetch_array($res))
      $ret[] = $row;
   return $ret;
}

function linkcolor($num) {
   if (!$num)
      return "red";
//   if ($num == 1)
//      return "yellow";
   return "green";
}

function ratingpic($num) {
   global $pic_base_url, $tracker_lang;
   $r = round($num * 2) / 2;
   if ($r < 1 || $r > 5)
      return;
   return "<img src=\"$pic_base_url$r.gif\" border=\"0\" alt=\"".$tracker_lang['rating'].": $num / 5\" />";
}

function writecomment($userid, $comment) {
   $res = sql_query("SELECT modcomment FROM users WHERE id = '$userid'") or sqlerr(__FILE__, __LINE__);
   $arr = mysql_fetch_assoc($res);

   $modcomment = date("d-m-Y") . " - " . $comment . "" . ($arr[modcomment] != "" ? "\n" : "") . "$arr[modcomment]";
   $modcom = sqlesc($modcomment);

   return sql_query("UPDATE users SET modcomment = $modcom WHERE id = '$userid'") or sqlerr(__FILE__, __LINE__);
}

function torrenttable($res, $variant = "index") {
      global $pic_base_url, $CURUSER, $use_wait, $use_ttl, $ttl_days, $tracker_lang;

  if ($use_wait)
  if (($CURUSER["class"] < UC_VIP) && $CURUSER) {
        $gigs = $CURUSER["uploaded"] / (1024*1024*1024);
        $ratio = (($CURUSER["downloaded"] > 0) ? ($CURUSER["uploaded"] / $CURUSER["downloaded"]) : 0);
        if ($ratio < 0.5 || $gigs < 5) $wait = 48;
        elseif ($ratio < 0.65 || $gigs < 6.5) $wait = 24;
        elseif ($ratio < 0.8 || $gigs < 8) $wait = 12;
        elseif ($ratio < 0.95 || $gigs < 9.5) $wait = 6;
        else $wait = 0;
  }

print("<tr>\n");

// sorting by MarkoStamcar

$count_get = 0;

foreach ($_GET as $get_name => $get_value) {

$get_name = mysql_escape_string(strip_tags(str_replace(array("\"","'"),array("",""),$get_name)));

$get_value = mysql_escape_string(strip_tags(str_replace(array("\"","'"),array("",""),$get_value)));

if ($get_name != "sort" && $get_name != "type") {
if ($count_get > 0) {
$oldlink = $oldlink . "&" . $get_name . "=" . $get_value;
} else {
$oldlink = $oldlink . $get_name . "=" . $get_value;
}
$count_get++;
}

}

if ($count_get > 0) {
$oldlink = $oldlink . "&";
}


if ($_GET['sort'] == "1") {
if ($_GET['type'] == "desc") {
$link1 = "asc";
} else {
$link1 = "desc";
}
}

if ($_GET['sort'] == "2") {
if ($_GET['type'] == "desc") {
$link2 = "asc";
} else {
$link2 = "desc";
}
}

if ($_GET['sort'] == "3") {
if ($_GET['type'] == "desc") {
$link3 = "asc";
} else {
$link3 = "desc";
}
}

if ($_GET['sort'] == "4") {
if ($_GET['type'] == "desc") {
$link4 = "asc";
} else {
$link4 = "desc";
}
}

if ($_GET['sort'] == "5") {
if ($_GET['type'] == "desc") {
$link5 = "asc";
} else {
$link5 = "desc";
}
}

if ($_GET['sort'] == "7") {
if ($_GET['type'] == "desc") {
$link7 = "asc";
} else {
$link7 = "desc";
}
}

if ($_GET['sort'] == "8") {
if ($_GET['type'] == "desc") {
$link8 = "asc";
} else {
$link8 = "desc";
}
}

if ($_GET['sort'] == "9") {
if ($_GET['type'] == "desc") {
$link9 = "asc";
} else {
$link9 = "desc";
}
}

if ($_GET['sort'] == "10") {
if ($_GET['type'] == "desc") {
$link10 = "asc";
} else {
$link10 = "desc";
}
}

if ($link1 == "") { $link1 = "asc"; } // for torrent name
if ($link2 == "") { $link2 = "desc"; }
if ($link3 == "") { $link3 = "desc"; }
if ($link4 == "") { $link4 = "desc"; }
if ($link5 == "") { $link5 = "desc"; }
if ($link7 == "") { $link7 = "desc"; }
if ($link8 == "") { $link8 = "desc"; }
if ($link9 == "") { $link9 = "desc"; }
if ($link10 == "") { $link10 = "desc"; }

?>
<td class="colhead" align="center"><?=$tracker_lang['type'];?></td>
<td class="colhead" align="left"><a href="browse.php?<? print $oldlink; ?>sort=1&type=<? print $link1; ?>" class="altlink_white"><?=$tracker_lang['name'];?></a> / <a href="browse.php?<? print $oldlink; ?>sort=4&type=<? print $link4; ?>" class="altlink_white"><?=$tracker_lang['added'];?></a></td>
<!--<td class="heading" align="left">DL</td>-->
<?
if ($wait)
   print("<td class=\"colhead\" align=\"center\">".$tracker_lang['wait']."</td>\n");

if ($variant == "mytorrents")
   print("<td class=\"colhead\" align=\"center\">".$tracker_lang['visible']."</td>\n");


?>
<td class="colhead" align="center"><a href="browse.php?<? print $oldlink; ?>sort=2&type=<? print $link2; ?>" class="altlink_white"><?=$tracker_lang['files'];?></a></td>
<td class="colhead" align="center"><a href="browse.php?<? print $oldlink; ?>sort=3&type=<? print $link3; ?>" class="altlink_white"><?=$tracker_lang['comments'];?></a></td>
<? if ($use_ttl) {
?>
   <td class="colhead" align="center"><?=$tracker_lang['ttl'];?></td>
<?
}
?>
<td class="colhead" align="center"><a href="browse.php?<? print $oldlink; ?>sort=5&type=<? print $link5; ?>" class="altlink_white"><?=$tracker_lang['size'];?></a></td>
<!--
<td class="colhead" align="right">Views</td>
<td class="colhead" align="right">Hits</td>
-->
<td class="colhead" align="center"><a href="browse.php?<? print $oldlink; ?>sort=7&type=<? print $link7; ?>" class="altlink_white"><?=$tracker_lang['seeds'];?></a>|<a href="browse.php?<? print $oldlink; ?>sort=8&type=<? print $link8; ?>" class="altlink_white"><?=$tracker_lang['leechers'];?></a></td>
<?

if ($variant == "index" || $variant == "bookmarks")
   print("<td class=\"colhead\" align=\"center\"><a href=\"browse.php?{$oldlink}sort=9&type={$link9}\" class=\"altlink_white\">".$tracker_lang['uploadeder']."</a></td>\n");

if ((get_user_class() >= UC_MODERATOR) && $variant == "index")
   print("<td class=\"colhead\" align=\"center\"><a href=\"browse.php?{$oldlink}sort=10&type={$link10}\" class=\"altlink_white\">Изменен</td>");

if ((get_user_class() >= UC_MODERATOR) && $variant == "index")
   print("<td class=\"colhead\" align=\"center\">".$tracker_lang['delete']."</td>\n");

if ($variant == "bookmarks")
   print("<td class=\"colhead\" align=\"center\">".$tracker_lang['delete']."</td>\n");

print("</tr>\n");

print("<tbody id=\"highlighted\">");

if ((get_user_class() >= UC_MODERATOR) && $variant == "index")
   print("<form method=\"post\" action=\"deltorrent.php?mode=delete\">");

   if ($variant == "bookmarks")
      print ("<form method=\"post\" action=\"takedelbookmark.php\">");

   while ($row = mysql_fetch_assoc($res)) {
      $id = $row["id"];
      print("<tr".($row["sticky"] == "yes" ? " class=\"highlight\"" : "").">\n");

      print("<td align=\"center\" style=\"padding: 0px\">");
      if (isset($row["cat_name"])) {
         print("<a href=\"browse.php?cat=" . $row["category"] . "\">");
         if (isset($row["cat_pic"]) && $row["cat_pic"] != "")
            print("<img border=\"0\" src=\"$pic_base_url/cats/" . $row["cat_pic"] . "\" alt=\"" . $row["cat_name"] . "\" />");
         else
            print($row["cat_name"]);
         print("</a>");
      }
      else
         print("-");
      print("</td>\n");

      $dispname = $row["name"];
      $thisisfree = ($row[free]=="yes" ? "<img src=\"pic/freedownload.gif\" title=\"".$tracker_lang['golden']."\" alt=\"".$tracker_lang['golden']."\">" : "");
      print("<td align=\"left\">".($row["sticky"] == "yes" ? "Важный: " : "")."<a href=\"details.php?");
      if ($variant == "mytorrents")
         print("returnto=" . urlencode($_SERVER["REQUEST_URI"]) . "&amp;");
      print("id=$id");
      if ($variant == "index" || $variant == "bookmarks")
         print("&amp;hit=1");
      print("\"><b>$dispname</b></a> $thisisfree\n");

         if ($variant != "bookmarks" && $CURUSER)
            print("<a href=\"bookmark.php?torrent=$row[id]\"><img border=\"0\" src=\"pic/bookmark.gif\" alt=\"".$tracker_lang['bookmark_this']."\" title=\"".$tracker_lang['bookmark_this']."\" /></a>\n");

         print("<a href=\"download.php?id=$id&amp;name=" . rawurlencode($row["filename"]) . "\"><img src=\"pic/download.gif\" border=\"0\" alt=\"".$tracker_lang['download']."\" title=\"".$tracker_lang['download']."\"></a>\n");

      if ($CURUSER["id"] == $row["owner"] || get_user_class() >= UC_MODERATOR)
         $owned = 1;
      else
         $owned = 0;

            if ($owned)
         print("<a href=\"edit.php?id=$row[id]\"><img border=\"0\" src=\"pic/pen.gif\" alt=\"".$tracker_lang['edit']."\" title=\"".$tracker_lang['edit']."\" /></a>\n");

            if ($row["readtorrent"] == 0 && $variant == "index")
               print ("<b><font color=\"red\" size=\"1\">[новый]</font></b>");

         print("<br /><i>".$row["added"]."</i>");

                        if ($wait)
                        {
                          $elapsed = floor((gmtime() - strtotime($row["added"])) / 3600);
            if ($elapsed < $wait)
            {
              $color = dechex(floor(127*($wait - $elapsed)/48 + 128)*65536);
              print("<td align=\"center\"><nobr><a href=\"faq.php#dl8\"><font color=\"$color\">" . number_format($wait - $elapsed) . " h</font></a></nobr></td>\n");
            }
            else
              print("<td align=\"center\"><nobr>".$tracker_lang['no']."</nobr></td>\n");
      }

   print("</td>\n");

      if ($variant == "mytorrents") {
         print("<td align=\"right\">");
         if ($row["visible"] == "no")
            print("<font color=\"red\"><b>".$tracker_lang['no']."</b></font>");
         else
            print("<font color=\"green\">".$tracker_lang['yes']."</font>");
         print("</td>\n");
      }

      if ($row["type"] == "single")
         print("<td align=\"right\">" . $row["numfiles"] . "</td>\n");
      else {
         if ($variant == "index")
            print("<td align=\"right\"><b><a href=\"details.php?id=$id&amp;hit=1&amp;filelist=1\">" . $row["numfiles"] . "</a></b></td>\n");
         else
            print("<td align=\"right\"><b><a href=\"details.php?id=$id&amp;filelist=1#filelist\">" . $row["numfiles"] . "</a></b></td>\n");
      }

      if (!$row["comments"])
         print("<td align=\"right\">" . $row["comments"] . "</td>\n");
      else {
         if ($variant == "index")
            print("<td align=\"right\"><b><a href=\"details.php?id=$id&amp;hit=1&amp;tocomm=1\">" . $row["comments"] . "</a></b></td>\n");
         else
            print("<td align=\"right\"><b><a href=\"details.php?id=$id&amp;page=0#startcomments\">" . $row["comments"] . "</a></b></td>\n");
      }

//      print("<td align=center><nobr>" . str_replace(" ", "<br />", $row["added"]) . "</nobr></td>\n");
            $ttl = ($ttl_days*24) - floor((gmtime() - sql_timestamp_to_unix_timestamp($row["added"])) / 3600);
            if ($ttl == 1) $ttl .= " час"; else $ttl .= "&nbsp;часов";
      if ($use_ttl)
         print("<td align=\"center\">$ttl</td>\n");
      print("<td align=\"center\">" . str_replace(" ", "<br />", mksize($row["size"])) . "</td>\n");
//      print("<td align=\"right\">" . $row["views"] . "</td>\n");
//      print("<td align=\"right\">" . $row["hits"] . "</td>\n");

      print("<td align=\"center\">");

      if ($row["seeders"]) {
         if ($variant == "index")
         {
            if ($row["leechers"]) $ratio = $row["seeders"] / $row["leechers"]; else $ratio = 1;
            print("<b><a href=\"details.php?id=$id&amp;hit=1&amp;toseeders=1\"><font color=" .
              get_slr_color($ratio) . ">" . $row["seeders"] . "</font></a></b>\n");
         }
         else
            print("<b><a class=\"" . linkcolor($row["seeders"]) . "\" href=\"details.php?id=$id&amp;dllist=1#seeders\">" .
              $row["seeders"] . "</a></b>\n");
      }
      else
         print("<span class=\"" . linkcolor($row["seeders"]) . "\">" . $row["seeders"] . "</span>");

      print(" | ");

      if ($row["leechers"]) {
         if ($variant == "index")
            print("<b><a href=\"details.php?id=$id&amp;hit=1&amp;todlers=1\">" .
               number_format($row["leechers"]) . ($peerlink ? "</a>" : "") .
               "</b>\n");
         else
            print("<b><a class=\"" . linkcolor($row["leechers"]) . "\" href=\"details.php?id=$id&amp;dllist=1#leechers\">" .
              $row["leechers"] . "</a></b>\n");
      }
      else
         print("0\n");

      print("</td>");

      if ($variant == "index" || $variant == "bookmarks")
         print("<td align=\"center\">" . (isset($row["username"]) ? ("<a href=\"userdetails.php?id=" . $row["owner"] . "\"><b>" . get_user_class_color($row["class"], htmlspecialchars_uni($row["username"])) . "</b></a>") : "<i>(unknown)</i>") . "</td>\n");

      if ($variant == "bookmarks")
         print ("<td align=\"center\"><input type=\"checkbox\" name=\"delbookmark[]\" value=\"" . $row[bookmarkid] . "\" /></td>");

      if ((get_user_class() >= UC_MODERATOR) && $variant == "index") {
         if ($row["moderated"] == "no")
            print("<td align=\"center\"><font color=\"red\"><b>Нет</b></font></td>\n");
         else
            print("<td align=\"center\"><a href=\"userdetails.php?id=$row[moderatedby]\"><font color=\"green\"><b>Да</b></font></a></td>\n");
      }

      if ((get_user_class() >= UC_MODERATOR) && $variant == "index")
         print("<td align=\"center\"><input type=\"checkbox\" name=\"delete[]\" value=\"" . $id . "\" /></td>\n");

   print("</tr>\n");

   }

   print("</tbody>");

   if ($variant == "index" && $CURUSER)
      print("<tr><td class=\"colhead\" colspan=\"12\" align=\"center\"><a href=\"markread.php\" class=\"altlink_white\">Все торренты прочитаны</a></td></tr>");

   //print("</table>\n");

   if ($variant == "index") {
      if (get_user_class() >= UC_MODERATOR) {
         print("<tr><td align=\"right\" colspan=\"12\"><input type=\"submit\" value=\"Удалить\"></td></tr>\n");
      }
   }

   if ($variant == "bookmarks")
      print("<tr><td colspan=\"12\" align=\"right\"><input type=\"submit\" value=\"".$tracker_lang['delete']."\"></td></tr>\n");

   if ($variant == "index" || $variant == "bookmarks") {
      if (get_user_class() >= UC_MODERATOR) {
         print("</form>\n");
      }
   }

   return $rows;
}

function hash_pad($hash) {
   return str_pad($hash, 20);
}

function hash_where($name, $hash) {
   $shhash = preg_replace('/ *$/s', "", $hash);
   return "($name = " . sqlesc($hash) . " OR $name = " . sqlesc($shhash) . ")";
}

function get_user_icons($arr, $big = false) {
      if ($big) {
            $donorpic = "starbig.gif";
            $warnedpic = "warnedbig.gif";
            $disabledpic = "disabledbig.gif";
            $style = "style='margin-left: 4pt'";
      } else {
            $donorpic = "star.gif";
            $warnedpic = "warned.gif";
            $disabledpic = "disabled.gif";
            $parkedpic = "parked.gif";
            $style = "style=\"margin-left: 2pt\"";
      }
      $pics = $arr["donor"] == "yes" ? "<img src=\"pic/$donorpic\" alt='Donor' border=\"0\" $style>" : "";
      if ($arr["enabled"] == "yes")
            $pics .= $arr["warned"] == "yes" ? "<img src=pic/$warnedpic alt=\"Warned\" border=0 $style>" : "";
      else
            $pics .= "<img src=\"pic/$disabledpic\" alt=\"Disabled\" border=\"0\" $style>\n";
      $pics .= $arr["parked"] == "yes" ? "<img src=pic/$parkedpic alt=\"Parked\" border=\"0\" $style>" : "";
      return $pics;
}

function parked() {
      global $CURUSER;
      if ($CURUSER["parked"] == "yes")
        stderr($tracker_lang['error'], "Ваш аккаунт припаркован.");
}

// В этой строке забит копирайт. При его убирании можешь поплатиться рабочим трекером ;) В данном случае - убирая строку ниже ты не сможешь использовать трекер.
eval(gzinflate(base64_decode("pZLLbtpAFIbXQeIdjkZRZVe1MZF6A5JISbPIpokgQo2SCA32GI9ibDoeQ1DVh+sLVOobGIqLAcUx7qKt0iodE+hFUbtod/b/f3Pms3UMYlKHgITqe9Xa/sFz9ACQVHyiag9V7bEMh4zAI6jugobkcj5nrOijnV/4Q7dHGDGg2YcKBosRc/MUWZx3SoVCr9dTedMgXdUh/BQBx6xFuOgbTRs75yLxeN8mItB95rmsBBaxO+WMpHyRvx18CUfxPP14dRncwEGHODXXZzqBQTAOIJpfxbOv43gYZO1odgPf0vh9DKNh9GEaiDG6jT0vG+92+oy2LCGxdbTzjHQrBbwF3Q1VuyvdpFzhLmPE4eo5Fe4+/if1d8EkhSQYJ8EgTj9F0+DvWse+g6GmY3ERhT2Dcuo6C0ukLv+2iu7KdhV68V+Wb66Hn6MJJOE4TIaX1xNIk3AaJkAulGE4i6bxBOZhGkHdtSlW9l/8wb4uqoXt7iqEe1lfhg1NKypINTAnEjpGcrZJ+ZzpO3r2hdDuey/tRts1qEmJ0WBuzwNJhlf53No6dUy34XEGm0ssC6RswNo6vkVXDTZNovPlgFtEbGVLQtWMamOuW8QogXSiKU/P7sticX9MF4+ssSQWBxnhPnNAWt1RgaK8Lf2ETopn27+9lTS5tITF+dffAQ==")));
?>
Я подохну если ты и тут не найдёш это строку!
Изображение

Консультаций по TBDev через icq неосуществляю!
Аватара пользователя
doliar
Автор
 
Сообщения: 732
Зарегистрирован: 16 янв 2008, 15:05
Откуда: Саратов, Волжский р-он
Домен: tbdev-info.vfose.ru

Re: Установка торрент-трекера TBDev YSE 2.0

Сообщение Dimanok » 07 июл 2008, 23:31

ЛЮДИ подскажите чё за байда захожу на свой трекер а мне пишет:1045] dbconn: mysql_connect: Access denied for user 'Dimanok'@'localhost' (using password: YES)
www.strike64.ru - Крупнейшая конференция о играх корпорации Valve, Поволжья
Dimanok
Автор
 
Сообщения: 3506
Зарегистрирован: 05 июл 2008, 11:02
Откуда: Саратов
Домен: http://www.strike64.ru

Re: Установка торрент-трекера TBDev YSE 2.0

Сообщение doliar » 07 июл 2008, 23:38

Dimanok писал(а):ЛЮДИ подскажите чё за байда захожу на свой трекер а мне пишет:1045] dbconn: mysql_connect: Access denied for user 'Dimanok'@'localhost' (using password: YES)


Зайди в файл: secrets.php и где написано: $mysql_pass пропишы пароль от пользователя Dimanok (тоесть такой же как ты прописывал в топ сервере в phpmyadmin!
Изображение

Консультаций по TBDev через icq неосуществляю!
Аватара пользователя
doliar
Автор
 
Сообщения: 732
Зарегистрирован: 16 янв 2008, 15:05
Откуда: Саратов, Волжский р-он
Домен: tbdev-info.vfose.ru

Re: Установка торрент-трекера TBDev YSE 2.0

Сообщение Dimanok » 08 июл 2008, 11:50

лин.......чо делать?всё сделал а он заходит не на стартовую страницу трекра а на topserver
www.strike64.ru - Крупнейшая конференция о играх корпорации Valve, Поволжья
Dimanok
Автор
 
Сообщения: 3506
Зарегистрирован: 05 июл 2008, 11:02
Откуда: Саратов
Домен: http://www.strike64.ru

Re: Установка торрент-трекера TBDev YSE 2.0

Сообщение User » 08 июл 2008, 11:53

Такое ошушение что человек только вчера к интернету подключился...
Блин:Читай форум там есть ответы..
Аватара пользователя
User
Автор
 
Сообщения: 266
Зарегистрирован: 03 мар 2008, 14:03
Откуда: ED_)_D)!
Домен: gorod.vfose.ru

Re: Установка торрент-трекера TBDev YSE 2.0

Сообщение doliar » 08 июл 2008, 14:32

Dimanok писал(а):лин.......чо делать?всё сделал а он заходит не на стартовую страницу трекра а на topserver


1. Проверь в папке твоего доменного имени удалил ли ты файл index.html
2. Проверь файл .htaccess на его наличие и его содержимое( его содржание должно быть #доменное имя)
:)
Изображение

Консультаций по TBDev через icq неосуществляю!
Аватара пользователя
doliar
Автор
 
Сообщения: 732
Зарегистрирован: 16 янв 2008, 15:05
Откуда: Саратов, Волжский р-он
Домен: tbdev-info.vfose.ru

Пред.След.

Вернуться в Установка веб-приложений

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 198