mirror of
https://github.com/torrentpier/torrentpier
synced 2025-08-21 13:54:02 -07:00
Перенос файлов движка в корень
This commit is contained in:
parent
584f692288
commit
f94c0dd2ee
585 changed files with 14 additions and 14 deletions
21
install/other/converter/TBDevYSE_pre6/ReadMe.txt
Normal file
21
install/other/converter/TBDevYSE_pre6/ReadMe.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
TBDev Yuna Scatari Edition pre6 to TorrentPier 1.0.x converter.
|
||||
|
||||
Quick guide:
|
||||
1. Install and configure TorrentPier 1.0.0 or higher.
|
||||
2. Import your TBDevYSE database into TorrentPier database (concretely 'comments', 'categories', 'torrents' and 'users' tables).
|
||||
3. Put the contents of folder 'root' into your TorrentPier root.
|
||||
4. Configure 'converter/settings.php' for optimal settings.
|
||||
5. Run convert.php.
|
||||
6. See 'converter/passwords.php' for new password to login under admin account.
|
||||
7. Resychronize statistics using admin panel.
|
||||
8. Make your new tracker popular!
|
||||
----
|
||||
9. If you need to notify users for new passwords (which are needed to login in TorrentPier) via TBDevYSE PM system,
|
||||
copy two files: automatically generated 'converter/passwords.php' and 'for_tbdev/pass.php' to your TBDevYSE root and run pass.php
|
||||
(Don't forget to remove these files after completion).
|
||||
You allow to change message text, see $msg in pass.php for this.
|
||||
10. If you want to redirect peers from older announce to new announce everytime, replace original TBDev's announce.php with
|
||||
'for_tbdev/announce.php'
|
||||
|
||||
Cheers, RoadTrain.
|
||||
http://torrentpier.me/
|
62
install/other/converter/TBDevYSE_pre6/for_tbdev/announce.php
Normal file
62
install/other/converter/TBDevYSE_pre6/for_tbdev/announce.php
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
|
||||
// TorrentPier bridge
|
||||
define ('TP_ROOT', './../ptv/'); // Absolete or related local path to your TorrentPier installation
|
||||
define ('USER_ID_DIFF', 1); // User_id difference between TP and TBDev (tp_user_id - tb_user_id)
|
||||
|
||||
// TorrentPier Database
|
||||
$dbhost = 'localhost';
|
||||
$dbname = 'dbase';
|
||||
$dbuser = 'user';
|
||||
$dbpasswd = 'pass';
|
||||
$dbcharset = 'utf8';
|
||||
|
||||
// Start announce
|
||||
define ('IN_ANNOUNCE', true);
|
||||
require_once('./include/core_announce.php');
|
||||
|
||||
$passkey = @$_GET['passkey'];
|
||||
|
||||
if (!$passkey)
|
||||
{
|
||||
err('Passkey required');
|
||||
}
|
||||
|
||||
dbconn();
|
||||
|
||||
$res = mysql_query("SELECT id FROM users WHERE passkey = " . sqlesc($passkey)) or err(mysql_error());
|
||||
|
||||
if (mysql_affected_rows() == 0)
|
||||
{
|
||||
err('Invalid passkey! Re-download the .torrent from '.$DEFAULTBASEURL);
|
||||
}
|
||||
|
||||
$user = mysql_fetch_array($res);
|
||||
$user_id = $user['id'];
|
||||
|
||||
mysql_close();
|
||||
|
||||
// Init connection to TP database for get passkey
|
||||
@mysql_connect($dbhost, $dbuser, $dbpasswd);
|
||||
@mysql_select_db($dbname);
|
||||
mysql_query("SET NAMES $dbcharset");
|
||||
|
||||
// Get passkey for TorrentPier
|
||||
$user_id += USER_ID_DIFF;
|
||||
$res = mysql_query("SELECT auth_key FROM bb_bt_users WHERE user_id = $user_id") or err(mysql_error());
|
||||
|
||||
if (mysql_affected_rows() == 0)
|
||||
{
|
||||
err('Passkey doesn\'t created on new tracker or user doesn\'t exist');
|
||||
}
|
||||
|
||||
$user = mysql_fetch_array($res);
|
||||
mysql_close();
|
||||
|
||||
$_GET['uk'] = $user['auth_key'];
|
||||
|
||||
unset($res, $user, $dbpasswd, $passkey, $user_id);
|
||||
|
||||
// Execute TP's announce
|
||||
chdir(TP_ROOT .'bt/');
|
||||
require('announce.php');
|
44
install/other/converter/TBDevYSE_pre6/for_tbdev/pass.php
Normal file
44
install/other/converter/TBDevYSE_pre6/for_tbdev/pass.php
Normal file
|
@ -0,0 +1,44 @@
|
|||
<?php
|
||||
|
||||
require_once("include/bittorrent.php");
|
||||
|
||||
dbconn();
|
||||
|
||||
loggedinorreturn();
|
||||
|
||||
$new_tr_url = "http://torrentpier.me/"; // with ending slash
|
||||
$subject = "Переезд на новый движок";
|
||||
$msg = '[b]Внимание![/b] Наш трекер переехал на новый движок! Адрес трекера - [url='.$new_tr_url.']'.$new_tr_url.'[/url]
|
||||
Вся база перенесена на новый движок, регистрироваться заново не надо.
|
||||
Войти на трекер можно [url='.$new_tr_url.'login.php]здесь[/url]. Ваши данные на новом трекере:
|
||||
[b]Логин:[/b] %s
|
||||
[b]Пароль:[/b] %s
|
||||
Сменить пароль можно после входа на трекер в [url='.$new_tr_url.'profile.php?mode=editprofile]настройках[/url].';
|
||||
|
||||
if (empty($_POST['confirm']))
|
||||
{
|
||||
stdhead();
|
||||
echo '
|
||||
<br />
|
||||
<center>
|
||||
<form action="'. $_SERVER['PHP_SELF'] .'" method="post">
|
||||
<input type="submit" name="confirm" value="Start mass PM" />
|
||||
</form>
|
||||
</center>
|
||||
';
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!file_exists('passwords.php')) stderr($tracker_lang['error'], 'passwords.php not exists');
|
||||
|
||||
include('passwords.php');
|
||||
stdhead();
|
||||
foreach ($passwords as $user)
|
||||
{
|
||||
$msg_sql = sprintf($msg, $user['username'], $user['new_passwd']);
|
||||
sql_query("INSERT INTO messages (receiver, added, subject, msg) VALUES({$user['tb_user_id']}, NOW(), ".sqlesc($subject).", ".sqlesc($msg_sql).")");
|
||||
}
|
||||
stdmsg('OK', 'Mass PM succesful');
|
||||
}
|
||||
|
||||
stdfoot();
|
261
install/other/converter/TBDevYSE_pre6/root/convert.php
Normal file
261
install/other/converter/TBDevYSE_pre6/root/convert.php
Normal file
|
@ -0,0 +1,261 @@
|
|||
<?php
|
||||
|
||||
define ('IN_FORUM', true);
|
||||
define ('BB_ROOT', './');
|
||||
require (BB_ROOT .'common.php');
|
||||
require(BB_ROOT . 'converter/constants.php');
|
||||
require(BB_ROOT . 'converter/settings.php');
|
||||
require(BB_ROOT . 'converter/functions.php');
|
||||
|
||||
// Start session management
|
||||
$user->session_start();
|
||||
|
||||
if (!IS_ADMIN) die("Restricted access");
|
||||
while (@ob_end_flush());
|
||||
ob_implicit_flush();
|
||||
|
||||
error_reporting(E_ALL);
|
||||
@ini_set('display_errors', 1);
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html dir="ltr">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<title></title>
|
||||
</head>
|
||||
<body style="font: 12px Courier, monospace; white-space: nowrap;">
|
||||
|
||||
<?php
|
||||
|
||||
if (empty($_POST['confirm']))
|
||||
{
|
||||
echo '
|
||||
<br />
|
||||
<center>
|
||||
<form action="'. $_SERVER['PHP_SELF'] .'" method="post">
|
||||
<input type="submit" name="confirm" value="Start convert" />
|
||||
</form>
|
||||
</center>
|
||||
</body>
|
||||
';
|
||||
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ini_set('memory_limit', '512M');
|
||||
@ini_set('max_execution_time', @ini_get('max_execution_time') + 1200);
|
||||
|
||||
// Step 1: Converting Users
|
||||
if (CONVERT_USERS)
|
||||
{
|
||||
if (CLEAN)
|
||||
{
|
||||
tp_users_cleanup();
|
||||
print_ok ("Users cleared");
|
||||
}
|
||||
|
||||
$max_uid = (int) get_max_val(BB_USERS, 'user_id');
|
||||
$max_uid = ($max_uid > 1) ? $max_uid : 1;
|
||||
|
||||
$users_count = (int) get_count(TB_USERS_TABLE, 'id');
|
||||
$loops = (int) ceil($users_count / C_USERS_PER_ONCE);
|
||||
$pass = array();
|
||||
|
||||
switch(TR_TYPE)
|
||||
{
|
||||
case 'yse':
|
||||
$_sql = 'avatar, ';
|
||||
break;
|
||||
|
||||
default:
|
||||
$_sql = '';
|
||||
break;
|
||||
}
|
||||
|
||||
for ($i = 0; $i < $loops; $i++)
|
||||
{
|
||||
$start = $i * C_USERS_PER_ONCE;
|
||||
$offset = C_USERS_PER_ONCE;
|
||||
|
||||
$sql = "
|
||||
SELECT
|
||||
id, username, email, status, UNIX_TIMESTAMP(added) AS added, UNIX_TIMESTAMP(last_access) AS last_access,
|
||||
class, icq, msn, aim, yahoo, website, $_sql
|
||||
uploaded, downloaded, enabled, language
|
||||
FROM ". TB_USERS_TABLE ."
|
||||
ORDER BY id
|
||||
LIMIT $start, $offset";
|
||||
|
||||
$users = DB()->fetch_rowset($sql);
|
||||
DB()->sql_freeresult();
|
||||
|
||||
foreach ($users as $user)
|
||||
{
|
||||
$user['id'] += $max_uid;
|
||||
$user['password'] = make_rand_str(15);
|
||||
convert_user($user);
|
||||
$pass[] = array(
|
||||
'tb_user_id' => $user['id'] - $max_uid,
|
||||
'username' => $user['username'],
|
||||
'new_passwd' => $user['password'],
|
||||
);
|
||||
}
|
||||
}
|
||||
$passf = fopen('./converter/passwords.php', 'w');
|
||||
$to_write = "<?php \n";
|
||||
$to_write .= '$passwords = '. var_export($pass, true) .';';
|
||||
fwrite($passf, $to_write);
|
||||
fclose($passf);
|
||||
set_auto_increment(BB_USERS, 'user_id');
|
||||
|
||||
print_ok ("Total $users_count users from TBDev converted");
|
||||
unset($users, $pass, $to_write);
|
||||
}
|
||||
|
||||
if (CONVERT_TORRENTS)
|
||||
{
|
||||
require_once(INC_DIR .'functions_post.php');
|
||||
require_once(INC_DIR .'bbcode.php');
|
||||
|
||||
if (CLEAN)
|
||||
{
|
||||
tp_categories_cleanup();
|
||||
tp_forums_cleanup();
|
||||
tp_topics_cleanup();
|
||||
print_ok ("Categories, forums and topics cleared");
|
||||
}
|
||||
|
||||
$max_uid = !empty($max_uid) ? $max_uid : 1;
|
||||
|
||||
//Create a category for torrents
|
||||
$max_cat_id = (int) get_max_val(BB_CATEGORIES, 'cat_id');
|
||||
$tr_cat_id = $max_cat_id + 1;
|
||||
|
||||
$tp_cat_data = array(
|
||||
"cat_id" => $tr_cat_id,
|
||||
"cat_title" => 'Tracker',
|
||||
);
|
||||
tp_add_category($tp_cat_data);
|
||||
set_auto_increment(BB_CATEGORIES, 'cat_id');
|
||||
unset($tp_cat_data);
|
||||
|
||||
$cats = $db->fetch_rowset("SELECT id, sort, name FROM ". TB_CATEGORIES_TABLE);
|
||||
DB()->sql_freeresult();
|
||||
|
||||
$max_forum_id = (int) get_max_val(BB_FORUMS, 'forum_id');
|
||||
|
||||
foreach ($cats as $cat)
|
||||
{
|
||||
$cat['id'] += $max_forum_id;
|
||||
$cat['cat_id'] = $tr_cat_id;
|
||||
convert_cat($cat);
|
||||
}
|
||||
set_auto_increment(BB_FORUMS, 'forum_id');
|
||||
print_ok ("Categories from TBDev converted");
|
||||
unset($cats);
|
||||
|
||||
// Start of torrents converting
|
||||
switch(TR_TYPE)
|
||||
{
|
||||
case 'yse':
|
||||
$_sql = 'image1, image2, ';
|
||||
break;
|
||||
|
||||
case 'sky':
|
||||
$_sql = 'poster, screenshot1, screenshot2, screenshot3, screenshot4, ';
|
||||
break;
|
||||
|
||||
default:
|
||||
$_sql = '';
|
||||
break;
|
||||
}
|
||||
|
||||
$max_topic_id = (int) get_max_val(BB_TOPICS, 'topic_id');
|
||||
$max_post_id = (int) get_max_val(BB_POSTS, 'post_id');
|
||||
$max_attach_id = (int) get_max_val(BB_ATTACHMENTS, 'attach_id');
|
||||
|
||||
$torrents_count = (int) get_count(TB_TORRENTS_TABLE, 'id');
|
||||
$loops = (int) ceil($torrents_count / C_TORRENTS_PER_ONCE);
|
||||
|
||||
for ($i = 0; $i < $loops; $i++)
|
||||
{
|
||||
$start = $i * C_TORRENTS_PER_ONCE;
|
||||
$offset = C_TORRENTS_PER_ONCE;
|
||||
$sql = "
|
||||
SELECT
|
||||
id, info_hash, name, filename, search_text, descr, $_sql
|
||||
category, UNIX_TIMESTAMP(added) AS added, size, views,
|
||||
UNIX_TIMESTAMP(last_action) AS lastseed, times_completed, owner, sticky
|
||||
FROM ". TB_TORRENTS_TABLE ."
|
||||
ORDER BY id
|
||||
LIMIT $start, $offset";
|
||||
|
||||
$torrents = DB()->fetch_rowset($sql);
|
||||
DB()->sql_freeresult();
|
||||
|
||||
foreach ($torrents as $torrent)
|
||||
{
|
||||
$torrent['topic_id'] = $torrent['id'] + $max_topic_id;
|
||||
$torrent['post_id'] = $torrent['id'] + $max_post_id;
|
||||
$torrent['attach_id'] = $torrent['id'] + $max_attach_id;
|
||||
$torrent['owner'] += $max_uid;
|
||||
$torrent['descr'] = append_images($torrent);
|
||||
convert_torrent($torrent);
|
||||
//print_r($torrent);
|
||||
}
|
||||
}
|
||||
set_auto_increment(BB_TOPICS, 'topic_id');
|
||||
set_auto_increment(BB_POSTS, 'post_id');
|
||||
print_ok ("Total $torrents_count torrents from TBDev converted");
|
||||
unset($torrents);
|
||||
|
||||
if (CONVERT_COMMENTS)
|
||||
{
|
||||
$max_post_id = (int) get_max_val(BB_POSTS, 'post_id');
|
||||
$max_topic_id = (int) get_max_val(BB_TOPICS, 'topic_id');
|
||||
$max_attach_id = (int) get_max_val(BB_ATTACHMENTS, 'attach_id');
|
||||
|
||||
$comments_count = (int) get_count(TB_COMMENTS_TABLE, 'id');
|
||||
$loops = (int) ceil($comments_count / C_COMMENTS_PER_ONCE);
|
||||
|
||||
for ($i = 0; $i < $loops; $i++)
|
||||
{
|
||||
$start = $i * C_COMMENTS_PER_ONCE;
|
||||
$offset = C_COMMENTS_PER_ONCE;
|
||||
$sql = "
|
||||
SELECT
|
||||
c.id, c.user, c.torrent, c.text, tor.category,
|
||||
UNIX_TIMESTAMP(c.added) AS added, UNIX_TIMESTAMP(c.editedat) AS editedat, c.ip
|
||||
FROM ". TB_COMMENTS_TABLE ." c
|
||||
LEFT JOIN ". TB_TORRENTS_TABLE ." tor ON(tor.id = c.torrent)
|
||||
WHERE c.torrent <> 0
|
||||
ORDER BY c.id
|
||||
LIMIT $start, $offset";
|
||||
|
||||
$comments = DB()->fetch_rowset($sql);
|
||||
DB()->sql_freeresult();
|
||||
|
||||
foreach ($comments as $comment)
|
||||
{
|
||||
$comment['user'] += $max_uid;
|
||||
$comment['id'] += $max_post_id;
|
||||
convert_comment($comment);
|
||||
}
|
||||
}
|
||||
unset($comments);
|
||||
set_auto_increment(BB_POSTS, 'post_id');
|
||||
print_ok ("Total $comments_count comments from TBDev converted");
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
</div>
|
||||
<br />
|
||||
Converting completed.
|
||||
</body>
|
||||
</html>
|
||||
<?php } ?>
|
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
|
||||
if (!defined('EXCLUDED_USERS_CSV')) { define('EXCLUDED_USERS_CSV', join(',', array(GUEST_UID, BOT_UID,))); }
|
||||
define('TB_USERS_TABLE', 'users');
|
||||
define('TB_CATEGORIES_TABLE', 'categories');
|
||||
define('TB_TORRENTS_TABLE', 'torrents');
|
||||
define('TB_COMMENTS_TABLE', 'comments');
|
||||
define('MYBB_FORUMS_TABLE', 'mybb_forums');
|
|
@ -0,0 +1,424 @@
|
|||
<?php
|
||||
|
||||
function print_ok ($sql)
|
||||
{
|
||||
global $err;
|
||||
|
||||
echo ($err) ? "\n<br />" : '';
|
||||
$err = '';
|
||||
|
||||
echo '<div>';
|
||||
echo "<font color=darkgreen><b>OK</b> - $sql</font>". str_repeat(' ', 256) ."\n<br />";
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
function hex2bin($h)
|
||||
{
|
||||
if (!is_string($h)) return null;
|
||||
$r='';
|
||||
for ($a=0; $a<strlen($h); $a+=2) { $r.=chr(hexdec($h{$a}.$h{($a+1)})); }
|
||||
return $r;
|
||||
}
|
||||
|
||||
function get_max_val($table_name, $column)
|
||||
{
|
||||
$row = DB()->fetch_row("SELECT MAX($column) AS $column FROM $table_name LIMIT 1");
|
||||
return $row[$column];
|
||||
}
|
||||
|
||||
function get_count($table_name, $column)
|
||||
{
|
||||
$row = DB()->fetch_row("SELECT COUNT($column) AS $column FROM $table_name LIMIT 1");
|
||||
return $row[$column];
|
||||
}
|
||||
|
||||
function set_auto_increment($table_name, $column, $val = null)
|
||||
{
|
||||
if (empty($val))
|
||||
{
|
||||
$row = DB()->fetch_row("SELECT MAX($column) AS val FROM $table_name LIMIT 1");
|
||||
DB()->sql_freeresult();
|
||||
$val = (int) $row['val'] + 1;
|
||||
}
|
||||
DB()->query("ALTER TABLE $table_name auto_increment = $val");
|
||||
}
|
||||
|
||||
// Users functions
|
||||
function tp_users_cleanup()
|
||||
{
|
||||
DB()->query('DELETE FROM '. BB_USERS .' WHERE user_id NOT IN('. EXCLUDED_USERS_CSV .')');
|
||||
DB()->query('TRUNCATE '. BB_BT_USERS);
|
||||
}
|
||||
|
||||
function tp_user_level($tb_class)
|
||||
{
|
||||
switch($tb_class)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
$level = 0;
|
||||
break;
|
||||
case 4:
|
||||
$level = 2;
|
||||
break;
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
$level = 1;
|
||||
break;
|
||||
default:
|
||||
$level = 0;
|
||||
break;
|
||||
}
|
||||
return $level;
|
||||
}
|
||||
|
||||
function convert_user($user)
|
||||
{
|
||||
$user_data = array(
|
||||
"user_id" => $user['id'],
|
||||
"user_active" => ($user['enabled'] == 'yes') ? true : false,
|
||||
"username" => $user['username'],
|
||||
"user_password" => md5($user['password']),
|
||||
"user_lastvisit" => $user['last_access'],
|
||||
"user_regdate" => $user['added'],
|
||||
"user_level" => tp_user_level($user['class']),
|
||||
"user_lang" => $user['language'],
|
||||
"user_dateformat" => "Y-m-d H:i",
|
||||
"user_opt" => 0,
|
||||
"user_avatar" => !empty($user['avatar']) ? $user['avatar'] : null,
|
||||
"user_avatar_type" => !empty($user['avatar']) ? 2 : null,
|
||||
"user_email" => $user['email'],
|
||||
"user_website" => $user['website'],
|
||||
);
|
||||
|
||||
$columns = $values = array();
|
||||
|
||||
foreach ($user_data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_columns = implode(',', $columns);
|
||||
$sql_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO ". BB_USERS . " ($sql_columns) VALUES($sql_values);");
|
||||
|
||||
$bt_user_data = array(
|
||||
"user_id" => $user['id'],
|
||||
"auth_key" => make_rand_str(BT_AUTH_KEY_LENGTH),
|
||||
"u_up_total" => $user['uploaded'],
|
||||
"u_down_total" => $user['downloaded'],
|
||||
);
|
||||
$columns = $values = array();
|
||||
|
||||
foreach ($bt_user_data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_bt_columns = implode(',', $columns);
|
||||
$sql_bt_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO ". BB_BT_USERS . " ($sql_bt_columns) VALUES($sql_bt_values);");
|
||||
}
|
||||
|
||||
//Torrents and categories functions
|
||||
function tp_categories_cleanup()
|
||||
{
|
||||
DB()->query('DELETE FROM '. BB_CATEGORIES);
|
||||
}
|
||||
|
||||
function tp_add_category_old($id, $cat_title)
|
||||
{
|
||||
DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES ." (cat_id, cat_title)
|
||||
VALUES ($id, '". DB()->escape($cat_title) ."')");
|
||||
return;
|
||||
}
|
||||
|
||||
function tp_add_category($cat_data)
|
||||
{
|
||||
$columns = $values = array();
|
||||
|
||||
foreach ($cat_data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_bt_columns = implode(',', $columns);
|
||||
$sql_bt_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES . " ($sql_bt_columns) VALUES($sql_bt_values);");
|
||||
}
|
||||
|
||||
function tp_topics_cleanup()
|
||||
{
|
||||
DB()->query("TRUNCATE ". BB_ATTACHMENTS);
|
||||
DB()->query("TRUNCATE ". BB_ATTACHMENTS_DESC);
|
||||
DB()->query("TRUNCATE ". BB_BT_TORRENTS);
|
||||
DB()->query("TRUNCATE ". BB_POSTS);
|
||||
DB()->query("TRUNCATE ". BB_POSTS_HTML);
|
||||
DB()->query("TRUNCATE ". BB_POSTS_SEARCH);
|
||||
DB()->query("TRUNCATE ". BB_POSTS_TEXT);
|
||||
DB()->query("TRUNCATE ". BB_TOPICS);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function tp_add_topic($topic_data)
|
||||
{
|
||||
$columns = $values = array();
|
||||
foreach ($topic_data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_columns = implode(',', $columns);
|
||||
$sql_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO ". BB_TOPICS . " ($sql_columns) VALUES($sql_values);");
|
||||
return;
|
||||
}
|
||||
|
||||
function tp_add_post($post_data)
|
||||
{
|
||||
foreach ($post_data as $key => $data)
|
||||
{
|
||||
$columns = $values = array();
|
||||
foreach ($data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_columns = implode(',', $columns);
|
||||
$sql_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO bb_{$key} ($sql_columns) VALUES($sql_values);");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
function tp_add_attach($attach_data)
|
||||
{
|
||||
foreach ($attach_data as $key => $data)
|
||||
{
|
||||
$columns = $values = array();
|
||||
foreach ($data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_columns = implode(',', $columns);
|
||||
$sql_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO bb_{$key} ($sql_columns) VALUES($sql_values);");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
function make_img_path ($name)
|
||||
{
|
||||
global $bb_cfg;
|
||||
|
||||
return make_url("files/images/" . $name);
|
||||
}
|
||||
|
||||
function append_images($tor)
|
||||
{
|
||||
$poster = $screens = '';
|
||||
switch(TR_TYPE)
|
||||
{
|
||||
case 'yse':
|
||||
if (!empty($tor['image1']))
|
||||
{
|
||||
$poster = "[img=right]".make_img_path($tor['image1'])."[/img]";
|
||||
}
|
||||
if (!empty($tor['image2']))
|
||||
{
|
||||
$screens = '[spoiler="Скриншоты"][img]'.make_img_path($tor['image2'])."[/img][/spoiler]";
|
||||
}
|
||||
break;
|
||||
case 'sky':
|
||||
if (!empty($tor['poster']))
|
||||
{
|
||||
$poster = "[img=right]".make_img_path($tor['poster'])."[/img]";
|
||||
}
|
||||
$has_screens = !empty($tor['screenshot1']) || !empty($tor['screenshot2']) || !empty($tor['screenshot3']) || !empty($tor['screenshot4']);
|
||||
if ($has_screens)
|
||||
{
|
||||
$screens .= '[spoiler="Скриншоты"]';
|
||||
for ($i = 1; $i <= 4; $i++)
|
||||
{
|
||||
if (!empty($tor['screenshot'.$i]))
|
||||
{
|
||||
$screens .= "[img]".make_img_path($tor['screenshot'.$i])."[/img] \n";
|
||||
}
|
||||
}
|
||||
$screens .= "[/spoiler]";
|
||||
}
|
||||
break;
|
||||
}
|
||||
return ($poster . $tor['descr'] . $screens);
|
||||
}
|
||||
|
||||
function convert_torrent($torrent)
|
||||
{
|
||||
$topic_data = array(
|
||||
"topic_id" => $torrent['topic_id'],
|
||||
"forum_id" => $torrent['category'],
|
||||
"topic_title" => $torrent['name'],
|
||||
"topic_poster" => $torrent['owner'],
|
||||
"topic_time" => $torrent['added'],
|
||||
"topic_views" => $torrent['views'],
|
||||
"topic_type" => ($torrent['sticky'] == 'yes') ? 1 : 0,
|
||||
"topic_first_post_id" => $torrent['id'],
|
||||
"topic_last_post_id" => $torrent['id'],
|
||||
"topic_attachment" => 1,
|
||||
"topic_dl_type" => 1,
|
||||
"topic_last_post_time" => $torrent['added'],
|
||||
);
|
||||
tp_add_topic($topic_data);
|
||||
$post_text = stripslashes(prepare_message(addslashes(unprepare_message($torrent['descr'])), true, true));
|
||||
|
||||
$post_data = array(
|
||||
"posts" => array(
|
||||
"post_id" => $torrent['post_id'],
|
||||
"topic_id" => $torrent['topic_id'],
|
||||
"forum_id" => $torrent['category'],
|
||||
"poster_id" => $torrent['owner'],
|
||||
"post_time" => $torrent['added'],
|
||||
"post_attachment" => 1,
|
||||
),
|
||||
"posts_text" => array(
|
||||
"post_id" => $torrent['post_id'],
|
||||
"post_text" => $post_text,
|
||||
),
|
||||
"posts_search" => array(
|
||||
"post_id" => $torrent['post_id'],
|
||||
"search_words" => $torrent['search_text'],
|
||||
),
|
||||
);
|
||||
tp_add_post($post_data);
|
||||
|
||||
$attach_data = array(
|
||||
"attachments" => array(
|
||||
"attach_id" => $torrent['attach_id'],
|
||||
"post_id" => $torrent['post_id'],
|
||||
"user_id_1" => $torrent['owner'],
|
||||
),
|
||||
"attachments_desc" => array(
|
||||
"attach_id" => $torrent['attach_id'],
|
||||
"physical_filename" => $torrent['id'] . ".torrent",
|
||||
"real_filename" => $torrent['filename'],
|
||||
"extension" => "torrent",
|
||||
"mimetype" => "application/x-bittorrent",
|
||||
"filesize" => @filesize(get_attachments_dir() .'/'. $torrent['id'] .".torrent"),
|
||||
"filetime" => $torrent['added'],
|
||||
"tracker_status" => 1,
|
||||
),
|
||||
);
|
||||
tp_add_attach($attach_data);
|
||||
|
||||
//Torrents
|
||||
if (BDECODE)
|
||||
{
|
||||
$filename = get_attachments_dir() .'/'. $torrent['id'] .".torrent";
|
||||
if (!file_exists($filename))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (!function_exists('bdecode_file')) include_once(INC_DIR .'functions_torrent.php');
|
||||
$tor = bdecode_file($filename);
|
||||
$info = ($tor['info']) ? $tor['info'] : array();
|
||||
$info_hash = pack('H*', sha1(bencode($info)));
|
||||
$info_hash_sql = rtrim(DB()->escape($info_hash), ' ');
|
||||
}
|
||||
else
|
||||
{
|
||||
$info_hash_sql = hex2bin($torrent['info_hash']);
|
||||
}
|
||||
|
||||
$torrent_data = array(
|
||||
"info_hash" => $info_hash_sql,
|
||||
"post_id" => $torrent['post_id'],
|
||||
"poster_id" => $torrent['owner'],
|
||||
"topic_id" => $torrent['topic_id'],
|
||||
"forum_id" => $torrent['category'],
|
||||
"attach_id" => $torrent['attach_id'],
|
||||
"size" => $torrent['size'],
|
||||
"reg_time" => $torrent['added'],
|
||||
"complete_count" => $torrent['times_completed'],
|
||||
"seeder_last_seen" => $torrent['lastseed'],
|
||||
);
|
||||
|
||||
$columns = $values = array();
|
||||
|
||||
foreach ($torrent_data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". $db->escape($value) ."'";
|
||||
}
|
||||
$sql_columns = implode(', ', $columns);
|
||||
$sql_values = implode(', ', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO ". BB_BT_TORRENTS . " ($sql_columns) VALUES($sql_values);");
|
||||
return;
|
||||
}
|
||||
|
||||
// Comments functions
|
||||
function convert_comment($comment)
|
||||
{
|
||||
$post_text = prepare_message($comment['text'], true, true);
|
||||
|
||||
$post_data = array(
|
||||
"posts" => array(
|
||||
"post_id" => $comment['id'],
|
||||
"topic_id" => $comment['torrent'],
|
||||
"forum_id" => $comment['category'],
|
||||
"poster_id" => $comment['user'],
|
||||
"post_time" => $comment['added'],
|
||||
"poster_ip" => encode_ip($comment['ip']),
|
||||
"post_edit_time" => $comment['editedat'],
|
||||
"post_edit_count" => $comment['editedat'] ? 1 : 0,
|
||||
),
|
||||
"posts_text" => array(
|
||||
"post_id" => $comment['id'],
|
||||
"post_text" => $post_text,
|
||||
),
|
||||
);
|
||||
tp_add_post($post_data);
|
||||
return;
|
||||
}
|
||||
|
||||
//Forums functions
|
||||
function tp_forums_cleanup()
|
||||
{
|
||||
DB()->query('TRUNCATE '. BB_FORUMS);
|
||||
}
|
||||
|
||||
function convert_cat($forum, $allow_torrents = true)
|
||||
{
|
||||
$forum_data = array(
|
||||
"forum_id" => $forum['id'],
|
||||
"cat_id" => $forum['cat_id'],
|
||||
"forum_name" => $forum['name'],
|
||||
"forum_order" => $forum['sort'],
|
||||
"allow_reg_tracker" => $allow_torrents,
|
||||
"allow_porno_topic" => $allow_torrents,
|
||||
);
|
||||
|
||||
$columns = $values = array();
|
||||
|
||||
foreach ($forum_data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_columns = implode(',', $columns);
|
||||
$sql_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO ". BB_FORUMS . " ($sql_columns) VALUES($sql_values);");
|
||||
return;
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
<?php
|
||||
|
||||
$passwords = array();
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
// Tracker type
|
||||
define('TR_TYPE', 'yse'); // 'sky' (SkyTracker) or 'yse' (TBDev YSE)
|
||||
// Options
|
||||
define('CLEAN', true); // Clean TorrentPier's database before converting?
|
||||
//Users
|
||||
define('CONVERT_USERS', true); // Converting users is enabled?
|
||||
define('C_USERS_PER_ONCE', 250); // Number of users converting per once
|
||||
//Torrents and categories
|
||||
define('CONVERT_TORRENTS', true); // Converting torrents and categories is enabled?
|
||||
define('C_TORRENTS_PER_ONCE', 400); // Number of torrents converting per once
|
||||
define('BDECODE', false); // Recalculate info_hash using bdecode?
|
||||
//Comments
|
||||
define('CONVERT_COMMENTS', true); // Converting comments is enabled?
|
||||
define('C_COMMENTS_PER_ONCE', 400); // Number of comments converting per once
|
||||
//Mybb forums & topics
|
||||
define('CONVERT_MYBB_FORUMS', false); // Converting forums is enabled?
|
||||
define('C_FORUMS_PER_ONCE', 100); // Number of forums converting per once
|
98
install/other/converter/TBDevYSE_pre6/root/recover.php
Normal file
98
install/other/converter/TBDevYSE_pre6/root/recover.php
Normal file
|
@ -0,0 +1,98 @@
|
|||
<?php
|
||||
|
||||
define('IN_FORUM', true);
|
||||
define('BB_ROOT', './');
|
||||
require(BB_ROOT .'common.php');
|
||||
require(INC_DIR .'functions_torrent.php');
|
||||
require(BB_ROOT . 'converter/settings.php');
|
||||
require(BB_ROOT . 'converter/functions.php');
|
||||
|
||||
// Init userdata
|
||||
$user->session_start();
|
||||
|
||||
while (@ob_end_flush());
|
||||
ob_implicit_flush();
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html dir="ltr">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<title></title>
|
||||
</head>
|
||||
<body style="font: 12px Courier, monospace; white-space: nowrap;">
|
||||
|
||||
<?php
|
||||
|
||||
if (empty($_POST['confirm']))
|
||||
{
|
||||
echo '
|
||||
<br />
|
||||
<center>
|
||||
<form action="'. $_SERVER['PHP_SELF'] .'" method="post">
|
||||
<input type="submit" name="confirm" value="Recover" />
|
||||
</form>
|
||||
</center>
|
||||
</body>
|
||||
';
|
||||
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ini_set('memory_limit', '512M');
|
||||
@ini_set('max_execution_time', @ini_get('max_execution_time') + 1200);
|
||||
|
||||
$torrents_count = (int) get_count(BB_BT_TORRENTS, 'attach_id');
|
||||
$loops = (int) ceil($torrents_count / C_TORRENTS_PER_ONCE);
|
||||
|
||||
$not_exist = array();
|
||||
|
||||
$attach_dir = get_attachments_dir() .'/';
|
||||
|
||||
for ($i = 0; $i < $loops; $i++)
|
||||
{
|
||||
$start = $i * C_TORRENTS_PER_ONCE;
|
||||
$offset = C_TORRENTS_PER_ONCE;
|
||||
|
||||
$sql = "SELECT
|
||||
tor.attach_id, tor.topic_id, ad.physical_filename
|
||||
FROM ". BB_BT_TORRENTS ." tor
|
||||
LEFT JOIN ". BB_ATTACHMENTS_DESC ." ad ON(ad.attach_id = tor.attach_id)
|
||||
ORDER BY tor.attach_id
|
||||
LIMIT $start, $offset";
|
||||
|
||||
$torrents = DB()->fetch_rowset($sql);
|
||||
DB()->sql_freeresult();
|
||||
|
||||
foreach ($torrents as $torrent)
|
||||
{
|
||||
$filename = $attach_dir . $torrent['physical_filename'];
|
||||
if (!file_exists($filename))
|
||||
{
|
||||
$not_exist[] = '<a href="viewtopic.php?t='. $torrent['topic_id'] .'">'. $filename .'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$tor = bdecode_file($filename);
|
||||
$info = (!empty($tor['info'])) ? $tor['info'] : array();
|
||||
$info_hash = pack('H*', sha1(bencode($info)));
|
||||
$info_hash_sql = rtrim(DB()->escape($info_hash), ' ');
|
||||
|
||||
DB()->query("UPDATE ". BB_BT_TORRENTS ."
|
||||
SET info_hash = '$info_hash_sql'
|
||||
WHERE attach_id = {$torrent['attach_id']}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print_ok ("Completed");
|
||||
|
||||
if (!empty($not_exist))
|
||||
{
|
||||
print_ok ("These torrents doesn't exist in filesystem: ". implode(', ', array_unique($not_exist)));
|
||||
}
|
||||
|
||||
}
|
8
install/other/recover/converter/constants.php
Normal file
8
install/other/recover/converter/constants.php
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
|
||||
if (!defined('EXCLUDED_USERS_CSV')) { define('EXCLUDED_USERS_CSV', join(',', array(GUEST_UID, BOT_UID,))); }
|
||||
define('TB_USERS_TABLE', 'users');
|
||||
define('TB_CATEGORIES_TABLE', 'categories');
|
||||
define('TB_TORRENTS_TABLE', 'torrents');
|
||||
define('TB_COMMENTS_TABLE', 'comments');
|
||||
define('MYBB_FORUMS_TABLE', 'mybb_forums');
|
430
install/other/recover/converter/functions.php
Normal file
430
install/other/recover/converter/functions.php
Normal file
|
@ -0,0 +1,430 @@
|
|||
<?php
|
||||
|
||||
function print_ok ($sql)
|
||||
{
|
||||
global $err;
|
||||
|
||||
echo ($err) ? "\n<br />" : '';
|
||||
$err = '';
|
||||
|
||||
echo '<div>';
|
||||
echo "<font color=darkgreen><b>OK</b> - $sql</font>". str_repeat(' ', 256) ."\n<br />";
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
function hex2bin($h)
|
||||
{
|
||||
if (!is_string($h)) return null;
|
||||
$r='';
|
||||
for ($a=0; $a<strlen($h); $a+=2) { $r.=chr(hexdec($h{$a}.$h{($a+1)})); }
|
||||
return $r;
|
||||
}
|
||||
|
||||
function get_max_val($table_name, $column)
|
||||
{
|
||||
$row = DB()->fetch_row("SELECT MAX($column) AS $column FROM $table_name LIMIT 1");
|
||||
return $row[$column];
|
||||
}
|
||||
|
||||
function get_count($table_name, $column)
|
||||
{
|
||||
$row = DB()->fetch_row("SELECT COUNT($column) AS $column FROM $table_name LIMIT 1");
|
||||
return $row[$column];
|
||||
}
|
||||
|
||||
function set_auto_increment($table_name, $column, $val = null)
|
||||
{
|
||||
if (empty($val))
|
||||
{
|
||||
$row = DB()->fetch_row("SELECT MAX($column) AS val FROM $table_name LIMIT 1");
|
||||
DB()->sql_freeresult();
|
||||
$val = (int) $row['val'] + 1;
|
||||
}
|
||||
DB()->query("ALTER TABLE $table_name auto_increment = $val");
|
||||
}
|
||||
|
||||
//Users functions
|
||||
function tp_users_cleanup()
|
||||
{
|
||||
DB()->query('DELETE FROM '. BB_USERS .' WHERE user_id NOT IN('. EXCLUDED_USERS_CSV .')');
|
||||
DB()->query('TRUNCATE '. BB_BT_USERS);
|
||||
}
|
||||
|
||||
function tp_user_level($tb_class)
|
||||
{
|
||||
switch($tb_class)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
$level = 0;
|
||||
break;
|
||||
case 4:
|
||||
$level = 2;
|
||||
break;
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
$level = 1;
|
||||
break;
|
||||
default:
|
||||
$level = 0;
|
||||
break;
|
||||
}
|
||||
return $level;
|
||||
}
|
||||
|
||||
function convert_user($user)
|
||||
{
|
||||
$user_data = array(
|
||||
"user_id" => $user['id'],
|
||||
"user_active" => ($user['enabled'] == 'yes') ? true : false,
|
||||
"username" => $user['username'],
|
||||
"user_password" => md5($user['password']),
|
||||
"user_lastvisit" => $user['last_access'],
|
||||
"user_regdate" => $user['added'],
|
||||
"user_level" => tp_user_level($user['class']),
|
||||
"user_lang" => $user['language'],
|
||||
"user_dateformat" => "Y-m-d H:i",
|
||||
"user_opt" => $user['opt'], // Added
|
||||
"user_avatar" => !empty($user['avatar']) ? $user['avatar'] : null,
|
||||
"user_avatar_type" => !empty($user['avatar']) ? 2 : null,
|
||||
"user_email" => $user['email'],
|
||||
"user_website" => $user['website'],
|
||||
"user_icq" => $user['icq'],
|
||||
"user_skype" => $user['skype'],
|
||||
"user_twitter" => $user['twitter'],
|
||||
"user_gender" => $user['gender'],
|
||||
"user_birthday" => $user['user_birthday'],
|
||||
);
|
||||
|
||||
$columns = $values = array();
|
||||
|
||||
foreach ($user_data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_columns = implode(',', $columns);
|
||||
$sql_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO ". BB_USERS . " ($sql_columns) VALUES ($sql_values);");
|
||||
|
||||
$bt_user_data = array(
|
||||
"user_id" => $user['id'],
|
||||
"auth_key" => make_rand_str(BT_AUTH_KEY_LENGTH),
|
||||
"u_up_total" => $user['uploaded'],
|
||||
"u_down_total" => $user['downloaded'],
|
||||
);
|
||||
$columns = $values = array();
|
||||
|
||||
foreach ($bt_user_data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_bt_columns = implode(',', $columns);
|
||||
$sql_bt_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO ". BB_BT_USERS . " ($sql_bt_columns) VALUES ($sql_bt_values);");
|
||||
}
|
||||
|
||||
//Torrents and categories functions
|
||||
function tp_categories_cleanup()
|
||||
{
|
||||
DB()->query('DELETE FROM '. BB_CATEGORIES);
|
||||
}
|
||||
|
||||
function tp_add_category_old($id, $cat_title)
|
||||
{
|
||||
DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES ." (cat_id, cat_title)
|
||||
VALUES ($id, '". DB()->escape($cat_title) ."')");
|
||||
return;
|
||||
}
|
||||
|
||||
function tp_add_category($cat_data)
|
||||
{
|
||||
$columns = $values = array();
|
||||
|
||||
foreach ($cat_data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_bt_columns = implode(',', $columns);
|
||||
$sql_bt_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO ". BB_CATEGORIES . " ($sql_bt_columns) VALUES ($sql_bt_values);");
|
||||
}
|
||||
|
||||
function tp_topics_cleanup()
|
||||
{
|
||||
DB()->query("TRUNCATE ". BB_ATTACHMENTS);
|
||||
DB()->query("TRUNCATE ". BB_ATTACHMENTS_DESC);
|
||||
DB()->query("TRUNCATE ". BB_BT_TORRENTS);
|
||||
DB()->query("TRUNCATE ". BB_POSTS);
|
||||
DB()->query("TRUNCATE ". BB_POSTS_HTML);
|
||||
DB()->query("TRUNCATE ". BB_POSTS_SEARCH);
|
||||
DB()->query("TRUNCATE ". BB_POSTS_TEXT);
|
||||
DB()->query("TRUNCATE ". BB_TOPICS);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function tp_add_topic($topic_data)
|
||||
{
|
||||
$columns = $values = array();
|
||||
foreach ($topic_data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_columns = implode(',', $columns);
|
||||
$sql_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO ". BB_TOPICS . " ($sql_columns) VALUES ($sql_values);");
|
||||
return;
|
||||
}
|
||||
|
||||
function tp_add_post($post_data)
|
||||
{
|
||||
foreach ($post_data as $key => $data)
|
||||
{
|
||||
$columns = $values = array();
|
||||
foreach ($data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_columns = implode(',', $columns);
|
||||
$sql_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO bb_{$key} ($sql_columns) VALUES ($sql_values);");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
function tp_add_attach($attach_data)
|
||||
{
|
||||
foreach ($attach_data as $key => $data)
|
||||
{
|
||||
$columns = $values = array();
|
||||
foreach ($data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_columns = implode(',', $columns);
|
||||
$sql_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO bb_{$key} ($sql_columns) VALUES ($sql_values);");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
function make_img_path ($name)
|
||||
{
|
||||
global $bb_cfg;
|
||||
|
||||
return make_url("files/images/" . $name);
|
||||
}
|
||||
|
||||
function append_images($tor)
|
||||
{
|
||||
$poster = $screens = '';
|
||||
switch(TR_TYPE)
|
||||
{
|
||||
case 'yse':
|
||||
if (!empty($tor['image1']))
|
||||
{
|
||||
$poster = "[img=right]".make_img_path($tor['image1'])."[/img]";
|
||||
}
|
||||
if (!empty($tor['image2']))
|
||||
{
|
||||
$screens = '[spoiler="Скриншоты"][img]'.make_img_path($tor['image2'])."[/img][/spoiler]";
|
||||
}
|
||||
break;
|
||||
case 'sky':
|
||||
if (!empty($tor['poster']))
|
||||
{
|
||||
$poster = "[img=right]".make_img_path($tor['poster'])."[/img]";
|
||||
}
|
||||
$has_screens = !empty($tor['screenshot1']) || !empty($tor['screenshot2']) || !empty($tor['screenshot3']) || !empty($tor['screenshot4']);
|
||||
if ($has_screens)
|
||||
{
|
||||
$screens .= '[spoiler="Скриншоты"]';
|
||||
for ($i = 1; $i <= 4; $i++)
|
||||
{
|
||||
if (!empty($tor['screenshot'.$i]))
|
||||
{
|
||||
$screens .= "[img]".make_img_path($tor['screenshot'.$i])."[/img] \n";
|
||||
}
|
||||
}
|
||||
$screens .= "[/spoiler]";
|
||||
}
|
||||
break;
|
||||
}
|
||||
return ($poster . $tor['descr'] . $screens);
|
||||
}
|
||||
|
||||
function convert_torrent($torrent)
|
||||
{
|
||||
$topic_data = array(
|
||||
"topic_id" => $torrent['topic_id'],
|
||||
"forum_id" => $torrent['category'],
|
||||
"topic_title" => $torrent['name'],
|
||||
"topic_poster" => $torrent['owner'],
|
||||
"topic_time" => $torrent['added'],
|
||||
"topic_views" => $torrent['views'],
|
||||
"topic_type" => ($torrent['sticky'] == 'yes') ? 1 : 0,
|
||||
"topic_first_post_id" => $torrent['id'],
|
||||
"topic_last_post_id" => $torrent['id'],
|
||||
"topic_attachment" => 1,
|
||||
"topic_dl_type" => 1,
|
||||
"topic_last_post_time" => $torrent['added'],
|
||||
);
|
||||
tp_add_topic($topic_data);
|
||||
|
||||
$post_text = stripslashes(prepare_message(addslashes(unprepare_message($torrent['descr'])), true, true));
|
||||
|
||||
$post_data = array(
|
||||
"posts" => array(
|
||||
"post_id" => $torrent['post_id'],
|
||||
"topic_id" => $torrent['topic_id'],
|
||||
"forum_id" => $torrent['category'],
|
||||
"poster_id" => $torrent['owner'],
|
||||
"post_time" => $torrent['added'],
|
||||
"post_attachment" => 1,
|
||||
),
|
||||
"posts_text" => array(
|
||||
"post_id" => $torrent['post_id'],
|
||||
"post_text" => $post_text,
|
||||
),
|
||||
"posts_search" => array(
|
||||
"post_id" => $torrent['post_id'],
|
||||
"search_words" => $torrent['search_text'],
|
||||
),
|
||||
);
|
||||
tp_add_post($post_data);
|
||||
|
||||
$attach_data = array(
|
||||
"attachments" => array(
|
||||
"attach_id" => $torrent['attach_id'],
|
||||
"post_id" => $torrent['post_id'],
|
||||
"user_id_1" => $torrent['owner'],
|
||||
),
|
||||
"attachments_desc" => array(
|
||||
"attach_id" => $torrent['attach_id'],
|
||||
"physical_filename" => $torrent['id'] . ".torrent",
|
||||
"real_filename" => $torrent['filename'],
|
||||
"extension" => "torrent",
|
||||
"mimetype" => "application/x-bittorrent",
|
||||
"filesize" => @filesize(get_attachments_dir() .'/'. $torrent['id'] .".torrent"),
|
||||
"filetime" => $torrent['added'],
|
||||
"tracker_status" => 1,
|
||||
),
|
||||
);
|
||||
tp_add_attach($attach_data);
|
||||
|
||||
//Torrents
|
||||
if (BDECODE)
|
||||
{
|
||||
$filename = get_attachments_dir() .'/'. $torrent['id'] .".torrent";
|
||||
if (!file_exists($filename))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (!function_exists('bdecode_file')) include_once('./includes/functions_torrent.php');
|
||||
$tor = bdecode_file($filename);
|
||||
$info = ($tor['info']) ? $tor['info'] : array();
|
||||
$info_hash = pack('H*', sha1(bencode($info)));
|
||||
$info_hash_sql = rtrim(DB()->escape($info_hash), ' ');
|
||||
}
|
||||
else
|
||||
{
|
||||
$info_hash_sql = hex2bin($torrent['info_hash']);
|
||||
}
|
||||
|
||||
$torrent_data = array(
|
||||
"info_hash" => $info_hash_sql,
|
||||
"post_id" => $torrent['post_id'],
|
||||
"poster_id" => $torrent['owner'],
|
||||
"topic_id" => $torrent['topic_id'],
|
||||
"forum_id" => $torrent['category'],
|
||||
"attach_id" => $torrent['attach_id'],
|
||||
"size" => $torrent['size'],
|
||||
"reg_time" => $torrent['added'],
|
||||
"complete_count" => $torrent['times_completed'],
|
||||
"seeder_last_seen" => $torrent['lastseed'],
|
||||
);
|
||||
|
||||
$columns = $values = array();
|
||||
|
||||
foreach ($torrent_data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_columns = implode(', ', $columns);
|
||||
$sql_values = implode(', ', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO ". BB_BT_TORRENTS . " ($sql_columns) VALUES($sql_values);");
|
||||
return;
|
||||
}
|
||||
|
||||
//Comments functions
|
||||
function convert_comment($comment)
|
||||
{
|
||||
$post_text = prepare_message($comment['text'], true, true);
|
||||
|
||||
$post_data = array(
|
||||
"posts" => array(
|
||||
"post_id" => $comment['id'],
|
||||
"topic_id" => $comment['torrent'],
|
||||
"forum_id" => $comment['category'],
|
||||
"poster_id" => $comment['user'],
|
||||
"post_time" => $comment['added'],
|
||||
"poster_ip" => encode_ip($comment['ip']),
|
||||
"post_edit_time" => $comment['editedat'],
|
||||
"post_edit_count" => $comment['editedat'] ? 1 : 0,
|
||||
),
|
||||
"posts_text" => array(
|
||||
"post_id" => $comment['id'],
|
||||
"post_text" => $post_text,
|
||||
),
|
||||
);
|
||||
tp_add_post($post_data);
|
||||
return;
|
||||
}
|
||||
|
||||
//Forums functions
|
||||
function tp_forums_cleanup()
|
||||
{
|
||||
DB()->query('TRUNCATE '. BB_FORUMS);
|
||||
}
|
||||
|
||||
function convert_cat($forum, $allow_torrents = true)
|
||||
{
|
||||
$forum_data = array(
|
||||
"forum_id" => $forum['id'],
|
||||
"cat_id" => $forum['cat_id'],
|
||||
"forum_name" => $forum['name'],
|
||||
"forum_order" => $forum['sort'],
|
||||
"allow_reg_tracker" => $allow_torrents,
|
||||
"allow_dl_topic" => $allow_torrents,
|
||||
);
|
||||
|
||||
$columns = $values = array();
|
||||
|
||||
foreach ($forum_data as $column => $value)
|
||||
{
|
||||
$columns[] = $column;
|
||||
$values[] = "'". DB()->escape($value) ."'";
|
||||
}
|
||||
$sql_columns = implode(',', $columns);
|
||||
$sql_values = implode(',', $values);
|
||||
|
||||
DB()->query("INSERT IGNORE INTO ". BB_FORUMS . " ($sql_columns) VALUES ($sql_values);");
|
||||
return;
|
||||
}
|
3
install/other/recover/converter/passwords.php
Normal file
3
install/other/recover/converter/passwords.php
Normal file
|
@ -0,0 +1,3 @@
|
|||
<?php
|
||||
|
||||
$passwords = array();
|
18
install/other/recover/converter/settings.php
Normal file
18
install/other/recover/converter/settings.php
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
// Tracker type
|
||||
define('TR_TYPE', 'yse'); // 'sky' (SkyTracker) or 'yse' (TBDev YSE)
|
||||
// Options
|
||||
define('CLEAN', true); // Clean TorrentPier's database before converting?
|
||||
//Users
|
||||
define('CONVERT_USERS', true); // Converting users is enabled?
|
||||
define('C_USERS_PER_ONCE', 250); // Number of users converting per once
|
||||
//Torrents and categories
|
||||
define('CONVERT_TORRENTS', true); // Converting torrents and categories is enabled?
|
||||
define('C_TORRENTS_PER_ONCE', 400); // Number of torrents converting per once
|
||||
define('BDECODE', false); // Recalculate info_hash using bdecode?
|
||||
//Comments
|
||||
define('CONVERT_COMMENTS', true); // Converting comments is enabled?
|
||||
define('C_COMMENTS_PER_ONCE', 400); // Number of comments converting per once
|
||||
//Mybb forums & topics
|
||||
define('CONVERT_MYBB_FORUMS', false); // Converting forums is enabled?
|
||||
define('C_FORUMS_PER_ONCE', 100); // Number of forums converting per once
|
97
install/other/recover/recover.php
Normal file
97
install/other/recover/recover.php
Normal file
|
@ -0,0 +1,97 @@
|
|||
<?php
|
||||
|
||||
define('IN_FORUM', true);
|
||||
define('BB_ROOT', './');
|
||||
require(BB_ROOT .'common.php');
|
||||
require(INC_DIR .'functions_torrent.php');
|
||||
require(BB_ROOT . 'converter/settings.php');
|
||||
require(BB_ROOT . 'converter/functions.php');
|
||||
|
||||
// Init userdata
|
||||
$user->session_start();
|
||||
|
||||
while (@ob_end_flush());
|
||||
ob_implicit_flush();
|
||||
|
||||
?><!DOCTYPE html>
|
||||
<html dir="ltr">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
|
||||
<meta http-equiv="Content-Style-Type" content="text/css">
|
||||
<title></title>
|
||||
</head>
|
||||
<body style="font: 12px Courier, monospace; white-space: nowrap;">
|
||||
|
||||
<?php
|
||||
|
||||
if (empty($_POST['confirm']))
|
||||
{
|
||||
echo '
|
||||
<br />
|
||||
<center>
|
||||
<form action="'. $_SERVER['PHP_SELF'] .'" method="post">
|
||||
<input type="submit" name="confirm" value="Recover" />
|
||||
</form>
|
||||
</center>
|
||||
</body>
|
||||
';
|
||||
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ini_set('memory_limit', '512M');
|
||||
@ini_set('max_execution_time', @ini_get('max_execution_time') + 1200);
|
||||
|
||||
$torrents_count = (int) get_count(BB_BT_TORRENTS, 'attach_id');
|
||||
$loops = (int) ceil($torrents_count / C_TORRENTS_PER_ONCE);
|
||||
|
||||
$not_exist = array();
|
||||
|
||||
$attach_dir = get_attachments_dir() .'/';
|
||||
|
||||
for ($i = 0; $i < $loops; $i++)
|
||||
{
|
||||
$start = $i * C_TORRENTS_PER_ONCE;
|
||||
$offset = C_TORRENTS_PER_ONCE;
|
||||
|
||||
$sql = "SELECT
|
||||
tor.attach_id, tor.topic_id, ad.physical_filename
|
||||
FROM ". BB_BT_TORRENTS ." tor
|
||||
LEFT JOIN ". BB_ATTACHMENTS_DESC ." ad ON(ad.attach_id = tor.attach_id)
|
||||
ORDER BY tor.attach_id
|
||||
LIMIT $start, $offset";
|
||||
|
||||
$torrents = DB()->fetch_rowset($sql);
|
||||
DB()->sql_freeresult();
|
||||
|
||||
foreach ($torrents as $torrent)
|
||||
{
|
||||
$filename = $attach_dir . $torrent['physical_filename'];
|
||||
if (!file_exists($filename))
|
||||
{
|
||||
$not_exist[] = '<a href="viewtopic.php?t='. $torrent['topic_id'] .'">'. $filename .'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$tor = bdecode_file($filename);
|
||||
$info = (!empty($tor['info'])) ? $tor['info'] : array();
|
||||
$info_hash = pack('H*', sha1(bencode($info)));
|
||||
$info_hash_sql = rtrim(DB()->escape($info_hash), ' ');
|
||||
|
||||
DB()->query("UPDATE ". BB_BT_TORRENTS ."
|
||||
SET info_hash = '$info_hash_sql'
|
||||
WHERE attach_id = {$torrent['attach_id']}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print_ok ("Completed");
|
||||
|
||||
if (!empty($not_exist))
|
||||
{
|
||||
print_ok ("These torrents doesn't exist in filesystem: ". implode(', ', array_unique($not_exist)));
|
||||
}
|
||||
|
||||
}
|
|
@ -128,7 +128,7 @@ http {
|
|||
#allow YOUR_IP;
|
||||
}
|
||||
# Deny folder (Sec. lvl1)
|
||||
location ~ \/(internal_data|library)\/ {
|
||||
location ~ \/(install|internal_data|library)\/ {
|
||||
deny all;
|
||||
}
|
||||
|
||||
|
|
21
install/upgrade/changes.txt
Normal file
21
install/upgrade/changes.txt
Normal file
|
@ -0,0 +1,21 @@
|
|||
Схема изменений начиная с версии 2.1 (R600):
|
||||
|
||||
Изменения в базе:
|
||||
|
||||
DROP TABLE IF EXISTS `bb_reports`;
|
||||
DROP TABLE IF EXISTS `bb_reports_changes`;
|
||||
DROP TABLE IF EXISTS `bb_reports_modules`;
|
||||
DROP TABLE IF EXISTS `bb_reports_reasons`;
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'report_subject_auth';
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'report_modules_cache';
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'report_hack_count';
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'report_notify';
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'report_list_admin';
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'report_new_window';
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'reports_enabled';
|
||||
ALTER TABLE `bb_posts` DROP COLUMN `post_reported`;
|
||||
ALTER TABLE `bb_privmsgs` DROP COLUMN `privmsgs_reported`;
|
||||
ALTER TABLE `bb_topics` DROP COLUMN `topic_reported`;
|
||||
DELETE FROM `bb_cron` WHERE `cron_script` = 'site_backup.php';
|
||||
DELETE FROM `bb_cron` WHERE `cron_script` = 'db_backup.php';
|
||||
UPDATE `bb_cron` SET `cron_script` = 'board_maintenance.php' WHERE `cron_script` = 'bb_maintenance.php';
|
36
install/upgrade/r496-user_birthday.php
Normal file
36
install/upgrade/r496-user_birthday.php
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
define('IN_FORUM', true);
|
||||
define('BB_ROOT', './');
|
||||
require(BB_ROOT . 'common.php');
|
||||
|
||||
$user->session_start();
|
||||
|
||||
set_die_append_msg();
|
||||
if (!IS_SUPER_ADMIN) bb_die($lang['ONLY_FOR_SUPER_ADMIN']);
|
||||
|
||||
$confirm = request_var('confirm', '');
|
||||
|
||||
if ($confirm) {
|
||||
DB()->query("ALTER TABLE ". BB_USERS ." CHANGE COLUMN user_birthday user_birthday_old int(11) NOT NULL DEFAULT 0 AFTER user_gender");
|
||||
DB()->query("ALTER TABLE ". BB_USERS ." ADD user_birthday date NOT NULL DEFAULT '0000-00-00' AFTER user_gender");
|
||||
|
||||
$sql = "SELECT user_id, user_birthday_old FROM ". BB_USERS ." WHERE user_birthday_old != 0 AND user_id NOT IN ('". EXCLUDED_USERS_CSV ."')";
|
||||
|
||||
foreach (DB()->fetch_rowset($sql) as $row)
|
||||
{
|
||||
$birthday = bb_date($row['user_birthday_old'] * 86400 + 1, 'Y-m-d', 0);
|
||||
DB()->query("UPDATE ". BB_USERS ." SET user_birthday = '". $birthday ."' WHERE user_id = ". $row['user_id'] ."");
|
||||
}
|
||||
|
||||
DB()->query("ALTER TABLE ". BB_USERS ." DROP user_birthday_old");
|
||||
|
||||
bb_die('<h1 style="color: green">База данных обновлена</h1>');
|
||||
} else {
|
||||
$msg = '<form method="POST">';
|
||||
$msg .= '<h1 style="color: red">!!! Перед тем как нажать на кнопку, сделайте бекап базы данных !!!</h1><br />';
|
||||
$msg .= '<input type="submit" name="confirm" value="Начать обновление Базы Данных (R496)" style="height: 30px; font:bold 14px Arial, Helvetica, sans-serif;" />';
|
||||
$msg .= '</form>';
|
||||
|
||||
bb_die($msg);
|
||||
}
|
54
install/upgrade/r571-dl_upgrade.php
Normal file
54
install/upgrade/r571-dl_upgrade.php
Normal file
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
|
||||
define('IN_FORUM', true);
|
||||
define('BB_ROOT', './');
|
||||
require(BB_ROOT . 'common.php');
|
||||
|
||||
$user->session_start();
|
||||
|
||||
set_die_append_msg();
|
||||
if (!IS_SUPER_ADMIN) bb_die($lang['ONLY_FOR_SUPER_ADMIN']);
|
||||
|
||||
$confirm = request_var('confirm', '');
|
||||
|
||||
if ($confirm) {
|
||||
DB()->query("
|
||||
CREATE TEMPORARY TABLE tmp_buf_dlstatus (
|
||||
user_id mediumint(9) NOT NULL default '0',
|
||||
topic_id mediumint(8) unsigned NOT NULL default '0',
|
||||
user_status tinyint(1) NOT NULL default '0',
|
||||
PRIMARY KEY (user_id, topic_id)
|
||||
) ENGINE = MyISAM
|
||||
");
|
||||
|
||||
DB()->query("
|
||||
INSERT INTO tmp_buf_dlstatus
|
||||
(user_id, topic_id, user_status)
|
||||
SELECT
|
||||
user_id, topic_id, user_status
|
||||
FROM bb_bt_dlstatus_new
|
||||
");
|
||||
|
||||
DB()->query("
|
||||
REPLACE INTO bb_bt_dlstatus_main
|
||||
(user_id, topic_id, user_status)
|
||||
SELECT
|
||||
user_id, topic_id, user_status
|
||||
FROM tmp_buf_dlstatus
|
||||
");
|
||||
|
||||
DB()->query("DROP TEMPORARY TABLE IF EXISTS tmp_buf_dlstatus");
|
||||
DB()->query("RENAME TABLE bb_bt_dlstatus_main TO bb_bt_dlstatus");
|
||||
|
||||
DB()->query("DROP TABLE IF EXISTS bb_bt_dlstatus_mrg");
|
||||
DB()->query("DROP TABLE IF EXISTS bb_bt_dlstatus_new");
|
||||
|
||||
bb_die('<h1 style="color: green">База данных обновлена</h1>');
|
||||
} else {
|
||||
$msg = '<form method="POST">';
|
||||
$msg .= '<h1 style="color: red">!!! Перед тем как нажать на кнопку, сделайте бекап базы данных !!!</h1><br />';
|
||||
$msg .= '<input type="submit" name="confirm" value="Начать обновление Базы Данных (R571)" style="height: 30px; font:bold 14px Arial, Helvetica, sans-serif;" />';
|
||||
$msg .= '</form>';
|
||||
|
||||
bb_die($msg);
|
||||
}
|
76
install/upgrade/r575-poll_upgrade.php
Normal file
76
install/upgrade/r575-poll_upgrade.php
Normal file
|
@ -0,0 +1,76 @@
|
|||
<?php
|
||||
|
||||
define('IN_FORUM', true);
|
||||
define('BB_ROOT', './');
|
||||
require(BB_ROOT . 'common.php');
|
||||
|
||||
$user->session_start();
|
||||
|
||||
set_die_append_msg();
|
||||
if (!IS_SUPER_ADMIN) bb_die($lang['ONLY_FOR_SUPER_ADMIN']);
|
||||
|
||||
$confirm = request_var('confirm', '');
|
||||
|
||||
if ($confirm) {
|
||||
DB()->query("
|
||||
CREATE TABLE IF NOT EXISTS `bb_poll_users` (
|
||||
`topic_id` int(10) unsigned NOT NULL,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`vote_ip` varchar(32) NOT NULL,
|
||||
`vote_dt` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`topic_id`,`user_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
");
|
||||
|
||||
DB()->query("
|
||||
CREATE TABLE IF NOT EXISTS `bb_poll_votes` (
|
||||
`topic_id` int(10) unsigned NOT NULL,
|
||||
`vote_id` tinyint(4) unsigned NOT NULL,
|
||||
`vote_text` varchar(255) NOT NULL,
|
||||
`vote_result` mediumint(8) unsigned NOT NULL,
|
||||
PRIMARY KEY (`topic_id`,`vote_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
");
|
||||
|
||||
DB()->query("
|
||||
INSERT IGNORE INTO bb_poll_votes
|
||||
(topic_id, vote_id, vote_text, vote_result)
|
||||
SELECT
|
||||
topic_id, 0, vote_text, 0
|
||||
FROM bb_vote_desc;
|
||||
");
|
||||
|
||||
DB()->query("
|
||||
INSERT IGNORE INTO bb_poll_votes
|
||||
(topic_id, vote_id, vote_text, vote_result)
|
||||
SELECT
|
||||
d.topic_id, r.vote_option_id, r.vote_option_text, r.vote_result
|
||||
FROM bb_vote_desc d, bb_vote_results r
|
||||
WHERE
|
||||
d.vote_id = r.vote_id;
|
||||
");
|
||||
|
||||
DB()->query("
|
||||
INSERT IGNORE INTO bb_poll_users
|
||||
(topic_id, user_id, vote_ip)
|
||||
SELECT
|
||||
d.topic_id, v.vote_user_id, v.vote_user_ip
|
||||
FROM bb_vote_desc d, bb_vote_voters v
|
||||
WHERE
|
||||
d.vote_id = v.vote_id
|
||||
AND v.vote_user_id > 0;
|
||||
");
|
||||
|
||||
DB()->query("DROP TABLE IF EXISTS bb_vote_desc");
|
||||
DB()->query("DROP TABLE IF EXISTS bb_vote_results");
|
||||
DB()->query("DROP TABLE IF EXISTS bb_vote_voters");
|
||||
|
||||
bb_die('<h1 style="color: green">База данных обновлена</h1>');
|
||||
} else {
|
||||
$msg = '<form method="POST">';
|
||||
$msg .= '<h1 style="color: red">!!! Перед тем как нажать на кнопку, сделайте бекап базы данных !!!</h1><br />';
|
||||
$msg .= '<input type="submit" name="confirm" value="Начать обновление Базы Данных (R575)" style="height: 30px; font:bold 14px Arial, Helvetica, sans-serif;" />';
|
||||
$msg .= '</form>';
|
||||
|
||||
bb_die($msg);
|
||||
}
|
84
install/upgrade/r583-convert_avatars.php
Normal file
84
install/upgrade/r583-convert_avatars.php
Normal file
|
@ -0,0 +1,84 @@
|
|||
<?php
|
||||
|
||||
define('IN_FORUM', true);
|
||||
define('BB_ROOT', './');
|
||||
require(BB_ROOT . 'common.php');
|
||||
require(INC_DIR . 'functions_upload.php');
|
||||
|
||||
while (@ob_end_flush()) ;
|
||||
ob_implicit_flush();
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
$user->session_start();
|
||||
|
||||
set_die_append_msg();
|
||||
if (!IS_SUPER_ADMIN) bb_die($lang['ONLY_FOR_SUPER_ADMIN']);
|
||||
|
||||
$confirm = request_var('confirm', '');
|
||||
|
||||
if ($confirm) {
|
||||
DB()->query("ALTER TABLE " . BB_USERS . " ADD `avatar_ext_id` TINYINT( 4 ) NOT NULL AFTER `user_rank`");
|
||||
|
||||
$rows_per_cycle = 10000;
|
||||
|
||||
$row = DB()->fetch_row("SELECT MAX(user_id) AS end_id FROM " . BB_USERS);
|
||||
$end_id = (int)$row['end_id'];
|
||||
$start = $avatars_ok = $avatars_err = 0;
|
||||
|
||||
echo "<pre>\n";
|
||||
|
||||
while (true) {
|
||||
set_time_limit(600);
|
||||
echo "$start [ $avatars_ok / $avatars_err ]\n";
|
||||
$end = $start + $rows_per_cycle - 1;
|
||||
$sql = "
|
||||
SELECT user_id, avatar_ext_id, user_avatar
|
||||
FROM " . BB_USERS . "
|
||||
WHERE user_avatar != ''
|
||||
AND avatar_ext_id = 0
|
||||
AND user_id BETWEEN $start AND $end
|
||||
ORDER BY NULL
|
||||
";
|
||||
|
||||
foreach (DB()->fetch_rowset($sql) as $row) {
|
||||
$FILE = array(
|
||||
'name' => '',
|
||||
'type' => '',
|
||||
'size' => 0,
|
||||
'tmp_name' => BB_ROOT . $bb_cfg['avatar_path'] . '/' . basename($row['user_avatar']),
|
||||
'error' => 0,
|
||||
);
|
||||
$upload = new upload_common();
|
||||
|
||||
if ($upload->init($bb_cfg['avatars'], $FILE, false) AND $upload->store('avatar', $row)) {
|
||||
DB()->query("UPDATE " . BB_USERS . " SET avatar_ext_id = {$upload->file_ext_id} WHERE user_id = {$row['user_id']} LIMIT 1");
|
||||
$avatars_ok++;
|
||||
} else {
|
||||
echo "{$row['user_id']}: ", join("\n{$row['user_id']}: ", $upload->errors), "\n";
|
||||
$avatars_err++;
|
||||
}
|
||||
}
|
||||
|
||||
if ($end > $end_id) {
|
||||
break;
|
||||
}
|
||||
$start += $rows_per_cycle;
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
echo "---------- База данных успешно обновлена. Аватары указанных выше пользователей перенесены не были. ----------\n";
|
||||
|
||||
DB()->query("ALTER TABLE " . BB_USERS . " DROP `user_avatar`");
|
||||
DB()->query("ALTER TABLE " . BB_USERS . " DROP `user_avatar_type`");
|
||||
} else {
|
||||
$msg = '<form method="POST">';
|
||||
$msg .= '<h1 style="color: red">Перед тем как нажать на кнопку, сделайте бекап базы данных! В ходе обновления базы данных, произойдет автоматическая конвертация имеющихся аватаров пользователей
|
||||
по новому алгоритму. Для конвертации аватарка пользователя должна соответствовать текущим значениям из конфига: ширина не более ' . $bb_cfg['avatars']['max_width'] . ' пикселов, высота не более ' . $bb_cfg['avatars']['max_height'] . ' пикселов
|
||||
и объем не более ' . $bb_cfg['avatars']['max_size'] . ' байт. Если эти условия не соблюдены - аватарка пользователя не будет конвертирована и пользователю придется залить ее заново! Если вы хотите поправить указанные
|
||||
значения - ПЕРЕД обновлением базы данных сделайте это в config.php!</h1><br />';
|
||||
$msg .= '<input type="submit" name="confirm" value="Начать обновление Базы Данных (R583)" style="height: 30px; font:bold 14px Arial, Helvetica, sans-serif;" />';
|
||||
$msg .= '</form>';
|
||||
|
||||
bb_die($msg);
|
||||
}
|
52
install/upgrade/r588-short_lang.php
Normal file
52
install/upgrade/r588-short_lang.php
Normal file
|
@ -0,0 +1,52 @@
|
|||
<?php
|
||||
|
||||
define('IN_FORUM', true);
|
||||
define('BB_ROOT', './');
|
||||
require(BB_ROOT . 'common.php');
|
||||
|
||||
while (@ob_end_flush()) ;
|
||||
ob_implicit_flush();
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
$user->session_start();
|
||||
|
||||
set_die_append_msg();
|
||||
if (!IS_SUPER_ADMIN) bb_die($lang['ONLY_FOR_SUPER_ADMIN']);
|
||||
|
||||
$confirm = request_var('confirm', '');
|
||||
|
||||
if ($confirm) {
|
||||
DB()->query("UPDATE " . BB_CONFIG . " SET `config_value` = 'ru' WHERE `config_name` = 'default_lang'");
|
||||
DB()->query("ALTER TABLE " . BB_USERS . " ADD `user_twitter` varchar (15) NOT NULL DEFAULT '' AFTER `user_skype`");
|
||||
|
||||
$rows_per_cycle = 10000;
|
||||
|
||||
$row = DB()->fetch_row("SELECT MAX(user_id) AS end_id FROM " . BB_USERS);
|
||||
$end_id = (int)$row['end_id'];
|
||||
$start = 0;
|
||||
|
||||
while (true) {
|
||||
set_time_limit(600);
|
||||
$end = $start + $rows_per_cycle - 1;
|
||||
|
||||
DB()->query("UPDATE " . BB_USERS . " SET user_lang = 'ru' WHERE user_lang = 'russian'");
|
||||
DB()->query("UPDATE " . BB_USERS . " SET user_lang = 'en' WHERE user_lang = 'english'");
|
||||
|
||||
if ($end > $end_id) {
|
||||
break;
|
||||
}
|
||||
$start += $rows_per_cycle;
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
bb_die("База данных успешно обновлена. Можно приступать к обновлению файлов. Не забудьте удалить этот файл.");
|
||||
} else {
|
||||
$msg = '<form method="POST">';
|
||||
$msg .= '<h1 style="color: red">Перед тем как нажать на кнопку, сделайте бекап базы данных! В ходе обновления базы данных, произойдет автоматическая конвертация текущих языков интерфейса пользователей
|
||||
на новое именование, а также будет добавлено поле в базу данных пользователей, для их Twitter-аккаунтов. После этого, вам можно будет приступать к обновлению файлов.</h1><br />';
|
||||
$msg .= '<input type="submit" name="confirm" value="Начать обновление Базы Данных (R588)" style="height: 30px; font:bold 14px Arial, Helvetica, sans-serif;" />';
|
||||
$msg .= '</form>';
|
||||
|
||||
bb_die($msg);
|
||||
}
|
222
install/upgrade/r600-stable.php
Normal file
222
install/upgrade/r600-stable.php
Normal file
|
@ -0,0 +1,222 @@
|
|||
<?php
|
||||
|
||||
define('IN_FORUM', true);
|
||||
define('BB_ROOT', './');
|
||||
require(BB_ROOT . 'common.php');
|
||||
|
||||
while (@ob_end_flush()) ;
|
||||
ob_implicit_flush();
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
|
||||
$user->session_start();
|
||||
|
||||
set_die_append_msg();
|
||||
if (!IS_SUPER_ADMIN) bb_die($lang['ONLY_FOR_SUPER_ADMIN']);
|
||||
|
||||
bb_die('
|
||||
<h1 style="color: red">Для обновления до стабильной ревизии R600, вам необходимо воспользоваться <a
|
||||
href="http://torrentpier.me/threads/26147/">инструкцией, опубликованной в данной теме</a> на нашем форуме.
|
||||
Вы также можете заглянуть в исходный код этого скрипта, в нем опубликована схема изменений от ревизии 400,
|
||||
до ревизии 600. Не забывайте про бекап базы данных перед обновлением!</h1>
|
||||
');
|
||||
|
||||
/*
|
||||
|
||||
Схема изенений r400->r600 для написания конвертера.
|
||||
|
||||
Изменения в базе:
|
||||
|
||||
INSERT INTO `bb_config` VALUES ('tor_comment', '1'); // добавлено 407
|
||||
ALTER TABLE `bb_posts` ADD `post_mod_comment` TEXT NOT NULL DEFAULT ''; // добавлено 458
|
||||
ALTER TABLE `bb_posts` ADD `post_mod_comment_type` TINYINT( 1 ) NOT NULL DEFAULT '0'; // добавлено 458
|
||||
ALTER TABLE `bb_posts` ADD `post_mc_mod_id` mediumint(8) NOT NULL; // добавлено 458
|
||||
ALTER TABLE `bb_posts` ADD `post_mc_mod_name` varchar(25) NOT NULL DEFAULT ''; // добавлено 458
|
||||
|
||||
// 496 - отдельный конвертер
|
||||
|
||||
ALTER TABLE `bb_users` ADD `tpl_name` varchar(255) NOT NULL DEFAULT 'default'; // добавлено 507
|
||||
UPDATE `bb_config` SET `config_value` = '1' WHERE `config_name` = 'bt_unset_dltype_on_tor_unreg';
|
||||
// изменено 508 ↑
|
||||
ALTER TABLE `bb_users` DROP `ignore_srv_load`; // удалено 537
|
||||
UPDATE `bb_users` SET `username` = 'Guest' WHERE `user_id` = -1; // изменено 540
|
||||
DROP TABLE IF EXISTS `bb_bt_torrents_del`; // удалено 551
|
||||
DROP TABLE IF EXISTS `xbt_announce_log`; // удалено 551
|
||||
DROP TABLE IF EXISTS `xbt_config`; // удалено 551
|
||||
DROP TABLE IF EXISTS `xbt_deny_from_hosts`; // удалено 551
|
||||
DROP TABLE IF EXISTS `xbt_files_users`; // удалено 551
|
||||
DROP TABLE IF EXISTS `xbt_scrape_log`; // удалено 551
|
||||
ALTER TABLE `bb_bt_tracker` DROP `xbt_error`; // удалено 551
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'torrent_pass_private_key'; // удалено 551
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'board_email'; // удалено 552
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'board_email_form'; // удалено 552
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'board_email_sig'; // удалено 552
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'smtp_delivery'; // удалено 552
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'smtp_host'; // удалено 552
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'smtp_password'; // удалено 552
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'smtp_username'; // удалено 552
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'gallery_enabled'; // удалено 554
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'pic_dir'; // удалено 554
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'pic_max_size'; // удалено 554
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'auto_delete_posted_pics'; // удалено 554
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'allow_avatar_remote'; // удалено 555
|
||||
ALTER TABLE `bb_topics` DROP COLUMN `is_draft`; // удалено 558
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'bt_add_comment'; // удалено 565
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'bt_add_publisher'; // удалено 565
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'bt_gen_passkey_on_reg'; // удалено 565
|
||||
DROP TABLE IF EXISTS `sph_counter`; // удалено 571
|
||||
|
||||
// 571 - отдельный конвертер
|
||||
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'max_inbox_privmsgs'; // удалено 573
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'max_savebox_privmsgs'; // удалено 573
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'max_sentbox_privmsgs'; // удалено 573
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'privmsg_disable'; // удалено 573
|
||||
|
||||
// 575 - отдельный конвертер
|
||||
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'config_id'; // удалено 579
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'sendmail_fix'; // удалено 579
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'version'; // удалено 579
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'xs_add_comments'; // удалено 579
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'xs_auto_compile'; // удалено 579
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'xs_auto_recompile'; // удалено 579
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'xs_php'; // удалено 579
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'xs_shownav'; // удалено 579
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'xs_template_time'; // удалено 579
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'xs_version'; // удалено 579
|
||||
INSERT INTO `bb_cron` VALUES (22, 1, 'Attach maintenance', 'attach_maintenance.php', 'daily', NULL, '05:00:00', 40, '', '', NULL, 1, '', 0, 1, 0);
|
||||
// добавлено 582 ↑
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'allow_avatar_local'; // удалено 583
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'allow_avatar_upload'; // удалено 583
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'avatar_filesize'; // удалено 583
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'avatar_gallery_path'; // удалено 583
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'avatar_max_height'; // удалено 583
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'avatar_max_width'; // удалено 583
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'avatar_path'; // удалено 583
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'require_activation'; // удалено 583
|
||||
DELETE FROM `bb_config` WHERE `config_name` = 'no_avatar'; // удалено 583
|
||||
UPDATE `bb_config` SET `config_value` = '0' WHERE `config_name` = 'show_mod_index'; // изменено 583
|
||||
DELETE FROM `bb_cron` WHERE `cron_script` = 'avatars_cleanup.php'; // удалено 583
|
||||
UPDATE `bb_cron` SET `cron_id` = '3' WHERE `cron_script` = 'attach_maintenance.php'; // изменено 583
|
||||
|
||||
// 583 - отдельный конвертер
|
||||
|
||||
DROP TABLE IF EXISTS `bb_topic_templates`; // удалено 584
|
||||
ALTER TABLE `bb_forums` DROP `topic_tpl_id`; // удалено 584
|
||||
UPDATE `bb_config` SET `config_value` = 'http://ip-whois.net/ip_geos.php?ip=' WHERE `config_name` = 'whois_info';
|
||||
// обновлено 586 ↑
|
||||
UPDATE `bb_config` SET `config_value` = 'ru' WHERE `config_name` = 'default_lang'; // обновлено 588
|
||||
|
||||
// 588 - отдельный конвертер
|
||||
|
||||
ALTER TABLE `bb_users` DROP `user_next_birthday_greeting`; // удалено 589
|
||||
ALTER TABLE `bb_posts` CHANGE `post_mod_comment` `mc_comment` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
|
||||
// изменено 590 ↑
|
||||
ALTER TABLE `bb_posts` CHANGE `post_mod_comment_type` `mc_type` TINYINT(1) NOT NULL DEFAULT '0';
|
||||
// изменено 590 ↑
|
||||
ALTER TABLE `bb_posts` CHANGE `post_mc_mod_id` `mc_user_id` MEDIUMINT(8) NOT NULL DEFAULT '0';
|
||||
// изменено 590 ↑
|
||||
ALTER TABLE `bb_posts` DROP `post_mc_mod_name`; // удалено 590
|
||||
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'allow_ftp_upload'; // удалено 592
|
||||
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'ftp_server'; // удалено 592
|
||||
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'ftp_path'; // удалено 592
|
||||
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'download_path'; // удалено 592
|
||||
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'ftp_user'; // удалено 592
|
||||
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'ftp_pass'; // удалено 592
|
||||
DELETE FROM `bb_attachments_config` WHERE `config_name` = 'ftp_pasv_mode'; // удалено 592
|
||||
DELETE FROM `bb_extensions` WHERE `extension` = 'wma'; // удалено 592
|
||||
DELETE FROM `bb_extensions` WHERE `extension` = 'swf'; // удалено 592
|
||||
UPDATE `bb_extensions` SET `group_id` = '6' WHERE `extension` = 'torrent'; // изменено 592
|
||||
DELETE FROM `bb_extension_groups` WHERE `group_name` = 'Streams'; // удалено 592
|
||||
DELETE FROM `bb_extension_groups` WHERE `group_name` = 'Flash Files'; // удалено 592
|
||||
UPDATE `bb_extension_groups` SET `group_id` = '6' WHERE `group_id` = 8; // изменено 592
|
||||
INSERT INTO `bb_config` VALUES ('sitemap_time', ''); // добавлено 593
|
||||
INSERT INTO `bb_config` VALUES ('static_sitemap', ''); // добавлено 593
|
||||
INSERT INTO `bb_cron` VALUES (22, 1, 'Sitemap update', 'sitemap.php', 'daily', NULL, '06:00:00', 30, '', '', NULL, 0, '', 0, 0, 0);
|
||||
// добавлено 593 ↑
|
||||
INSERT INTO `bb_cron` VALUES (23, 1, 'Update forums atom', 'update_forums_atom.php', 'interval', NULL, NULL, 255, '', '', '00:15:00', 0, '', 0, 0, 0);
|
||||
// добавлено 595 ↑
|
||||
UPDATE `bb_attachments_config` SET `config_value` = 'old_files' WHERE `config_name` = 'upload_dir';
|
||||
// изменено 595 ↑
|
||||
DELETE FROM `bb_smilies` WHERE `code` = ':cd:'; // удалено 596
|
||||
ALTER TABLE `bb_groups` CHANGE `group_description` `group_description` text NOT NULL DEFAULT '';
|
||||
// изменено 598 ↑
|
||||
ALTER TABLE `bb_groups` ADD `avatar_ext_id` int(15) NOT NULL DEFAULT '0' AFTER `group_id`;
|
||||
// добавлено 598 ↑
|
||||
ALTER TABLE `bb_groups` ADD `mod_time` INT(11) NOT NULL DEFAULT '0' AFTER `group_time`;
|
||||
// добавлено 598 ↑
|
||||
ALTER TABLE `bb_groups` ADD `release_group` tinyint(4) NOT NULL DEFAULT '0' AFTER `group_type`;
|
||||
// добавлено 598 ↑
|
||||
ALTER TABLE `bb_groups` ADD `group_signature` text NOT NULL DEFAULT '' AFTER `group_description`;
|
||||
// добавлено 598 ↑
|
||||
ALTER TABLE `bb_posts` ADD `poster_rg_id` mediumint(8) NOT NULL DEFAULT '0' AFTER `poster_ip`;
|
||||
// добавлено 598 ↑
|
||||
ALTER TABLE `bb_posts` ADD `attach_rg_sig` tinyint(4) NOT NULL DEFAULT '0' AFTER `poster_rg_id`;
|
||||
// добавлено 598 ↑
|
||||
INSERT INTO `bb_config` VALUES ('terms', ''); // добавлено 599b
|
||||
|
||||
Удаленные файлы/папки:
|
||||
|
||||
admin/.htaccess
|
||||
admin/admin_topic_templates.php
|
||||
admin/admin_xs.php
|
||||
admin/xs_cache.php
|
||||
admin/xs_config.php
|
||||
admin/xs_frameset.php
|
||||
admin/xs_include.php
|
||||
admin/xs_index.php
|
||||
develop
|
||||
images/avatars/bot.gif
|
||||
images/logo/logo_big.png
|
||||
images/smiles/cd.gif
|
||||
images/smiles/smileys.pak
|
||||
images/icon_disk.gif
|
||||
images/icon_disk_gray.gif
|
||||
includes/cron/jobs/avatars_cleanup.php
|
||||
includes/topic_templates
|
||||
includes/ucp/torrent_userprofile.php
|
||||
includes/ucp/usercp_activate.php
|
||||
includes/ucp/usercp_attachcp.php
|
||||
includes/ucp/usercp_avatar.php
|
||||
includes/ucp/usercp_bonus.php
|
||||
includes/ucp/usercp_email.php
|
||||
includes/ucp/usercp_register.php
|
||||
includes/ucp/usercp_sendpasswd.php
|
||||
includes/ucp/usercp_viewprofile.php
|
||||
includes/sphinxapi.php
|
||||
includes/topic_templates.php
|
||||
language/lang_english
|
||||
language/lang_russian
|
||||
misc/html
|
||||
misc/.htaccess
|
||||
pictures
|
||||
templates/admin/admin_topic_templates.tpl
|
||||
templates/default/images/lang_english
|
||||
templates/default/images/lang_russian
|
||||
templates/default/images/index.html
|
||||
templates/default/topic_templates
|
||||
templates/default/agreement.tpl
|
||||
templates/default/donate.tpl
|
||||
templates/default/faq.tpl
|
||||
templates/default/gallery.tpl
|
||||
templates/default/posting_poll.tpl
|
||||
templates/default/posting_tpl.tpl
|
||||
templates/default/usercp_avatar_gallery.tpl
|
||||
templates/default/viewonline.tpl
|
||||
templates/xs_mod
|
||||
templates/board_disabled_exit.php
|
||||
templates/limit_load_exit.php
|
||||
templates/topic_tpl_overall_header.html
|
||||
templates/topic_tpl_rules_video.html
|
||||
donate.php
|
||||
download.php
|
||||
faq.php
|
||||
gallery.php
|
||||
viewonline.php
|
||||
|
||||
Прочие изменения:
|
||||
|
||||
Все файлы перекодированы для использования окончаний строк LF.
|
||||
|
||||
*/
|
Loading…
Add table
Add a link
Reference in a new issue