PageRenderTime 25ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/contrib/updates/install/install_update_1.9.0.php

https://gitlab.com/protoneutron/xbtbb3cker
PHP | 243 lines | 146 code | 55 blank | 42 comment | 22 complexity | a0d94d040ebbb4bb4659bf2d4c357f50 MD5 | raw file
  1. <?php
  2. /**
  3. *
  4. * @package ppkBB3cker
  5. * @version $Id: install_update.php 1.000 2012-04-19 11:06:06 PPK $
  6. * @copyright (c) 2012 PPK
  7. * http://www.ppkbb3cker.ru, http://protoneutron.narod.ru
  8. *
  9. */
  10. error_reporting(0);
  11. set_time_limit(0);
  12. define('IN_PHPBB', true);
  13. $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './../';
  14. $phpEx = substr(strrchr(__FILE__, '.'), 1);
  15. header("Content-type: text/html; charset=UTF-8");
  16. require($phpbb_root_path . 'config.'.$phpEx);
  17. if(!in_array($dbms, array('phpbb\\db\\driver\\mysql', 'phpbb\\db\\driver\\mysqli', 'mysql', 'mysqli')))
  18. {
  19. err('Only mysql(i) supported');
  20. }
  21. require("{$phpbb_root_path}ext/ppk/xbtbb3cker/include/db/".(in_array($dbms, array('phpbb\\db\\driver\\mysql', 'mysql')) ? 'mysql' : 'mysqli').".{$phpEx}");
  22. $c=my_sql_connect($dbhost.($dbport ? ":{$dbport}" : ''), $dbuser, $dbpasswd);
  23. if(!$c)
  24. {
  25. err('Error connecting database: '.my_sql_error($c).' ['.my_sql_errno($c).']');
  26. }
  27. $s=my_sql_select_db($dbname, $c);
  28. if(!$s)
  29. {
  30. err('Error selecting database: '.my_sql_error($c));
  31. }
  32. unset($dbpasswd);
  33. define('MY_SQL_ERR_DEBUG', true);
  34. $sql="SET NAMES 'utf8'";
  35. my_sql_query($sql, $c);
  36. // $result=my_sql_query('SELECT VERSION() AS version', $c);
  37. // $mv=my_sql_fetch_row($result);
  38. //
  39. // $m_version=$mv[0];
  40. //
  41. // if(version_compare($m_version, '4.1.3', '>='))
  42. // {
  43. // $mysql_dbms=41;
  44. // }
  45. // else
  46. // {
  47. // $mysql_dbms=40;
  48. // }
  49. //
  50. // if($mysql_dbms!=41)
  51. // {
  52. // err("This mysql version not supported, please upgrade to version 4.1.3 or higher");
  53. // }
  54. $steps=8;
  55. $start=isset($_GET['start']) && $_GET['start'] ? (int) $_GET['start'] : 0;
  56. if(!$start)
  57. {
  58. err('<a href="'.$_SERVER['SCRIPT_NAME'].'?start='.($start+1).'">Start update</a><br />');
  59. }
  60. if($start==1)
  61. {
  62. // $sql="
  63. // CREATE TABLE IF NOT EXISTS `{$table_prefix}tracker_rtrackers` (
  64. // `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  65. // `rtracker_url` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
  66. // `rtracker_md5` varchar(32) COLLATE utf8_bin NOT NULL DEFAULT '',
  67. // PRIMARY KEY (`id`),
  68. // KEY `rtracker_md5` (`rtracker_md5`)
  69. // ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
  70. // ";
  71. // $result=my_sql_query($sql, $c);
  72. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` ADD `rtracker_id` INT(11) UNSIGNED NOT NULL DEFAULT '0' AFTER `forb_type`, ADD INDEX (`rtracker_id`)";
  73. $result=my_sql_query($sql, $c);
  74. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` ADD `rtracker_type` ENUM('s','u','t') CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT 't' AFTER `rtracker_id`";
  75. $result=my_sql_query($sql, $c);
  76. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` ADD `user_torrent_zone` INT(11) UNSIGNED NOT NULL DEFAULT '0' AFTER `rtracker_type`, ADD INDEX (`user_torrent_zone`)";
  77. $result=my_sql_query($sql, $c);
  78. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` CHANGE `forb_type` `forb_type` ENUM('r','s','i','') CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT ''";
  79. $result=my_sql_query($sql, $c);
  80. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` CHANGE `rtrack_remote` `rtracker_remote` TINYINT(1) NOT NULL DEFAULT '0'";
  81. $result=my_sql_query($sql, $c);
  82. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` CHANGE `rtrack_forb` `rtracker_forb` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0'";
  83. $result=my_sql_query($sql, $c);
  84. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` CHANGE `rtrack_enabled` `rtracker_enabled` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1'";
  85. $result=my_sql_query($sql, $c);
  86. next_step($start, $steps);
  87. }
  88. else if($start==2)
  89. {
  90. $sql="SELECT * FROM `{$table_prefix}tracker_rtrack` GROUP BY rtrack_url";
  91. $result=my_sql_query($sql, $c);
  92. $rtrackurl_row=my_sql_fetch_array($result);
  93. foreach($rtrackurl_row as $row)
  94. {
  95. if(strlen($row['rtrack_url']) < 256)
  96. {
  97. $sql="INSERT INTO `{$table_prefix}tracker_rtrackers` (id, rtracker_url) VALUES(NULL, '{$row['rtrack_url']}')";
  98. $result2=my_sql_query($sql, $c);
  99. }
  100. }
  101. my_sql_free_result($result);
  102. next_step($start, $steps);
  103. }
  104. else if($start==3)
  105. {
  106. $sql="UPDATE `{$table_prefix}tracker_rtrackers` SET rtracker_md5=MD5(rtracker_url)";
  107. $result=my_sql_query($sql, $c);
  108. next_step($start, $steps);
  109. }
  110. else if($start==4)
  111. {
  112. //torrent
  113. $sql="UPDATE `{$table_prefix}tracker_rtrack` SET rtracker_type='t', user_torrent_zone=torrent, forb_type='', rtracker_enabled=1 WHERE torrent!=0";
  114. $result=my_sql_query($sql, $c);
  115. //user
  116. $sql="UPDATE `{$table_prefix}tracker_rtrack` SET rtracker_type='u', user_torrent_zone=zone_id, forb_type='', rtracker_remote=0 WHERE zone_id!=0 AND rtrack_user=1";
  117. $result=my_sql_query($sql, $c);
  118. //zone
  119. $sql="UPDATE `{$table_prefix}tracker_rtrack` SET rtracker_type='s', user_torrent_zone=zone_id, forb_type='', rtracker_remote=0 WHERE zone_id!=0 AND rtrack_user=0 AND torrent=0";
  120. $result=my_sql_query($sql, $c);
  121. //system
  122. $sql="UPDATE `{$table_prefix}tracker_rtrack` SET rtracker_type='s', user_torrent_zone=0 WHERE zone_id=0 AND rtrack_user=0 AND torrent=0";
  123. $result=my_sql_query($sql, $c);
  124. next_step($start, $steps);
  125. }
  126. else if($start==5)
  127. {
  128. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` DROP `torrent`";
  129. $result=my_sql_query($sql, $c);
  130. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` DROP `zone_id`";
  131. $result=my_sql_query($sql, $c);
  132. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` DROP `rtrack_user`";
  133. $result=my_sql_query($sql, $c);
  134. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` DROP INDEX `rtrack_en`";
  135. $result=my_sql_query($sql, $c);
  136. next_step($start, $steps);
  137. }
  138. else if($start==6)
  139. {
  140. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` ADD `rtracker_md5` VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' AFTER `user_torrent_zone`, ADD INDEX (`rtracker_md5`)";
  141. $result=my_sql_query($sql, $c);
  142. $sql="UPDATE `{$table_prefix}tracker_rtrack` SET rtracker_md5=MD5(rtrack_url)";
  143. $result=my_sql_query($sql, $c);
  144. next_step($start, $steps);
  145. }
  146. else if($start==7)
  147. {
  148. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` DROP `id`";
  149. $result=my_sql_query($sql, $c);
  150. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` DROP `rtrack_url`";
  151. $result=my_sql_query($sql, $c);
  152. $sql="ALTER TABLE `{$table_prefix}tracker_rannounces` DROP INDEX `track`";
  153. $result=my_sql_query($sql, $c);
  154. $sql="ALTER TABLE `{$table_prefix}tracker_rannounces` ADD INDEX ( `tracker` )";
  155. $result=my_sql_query($sql, $c);
  156. $sql="ALTER TABLE `{$table_prefix}tracker_rannounces` ADD INDEX ( `torrent` )";
  157. $result=my_sql_query($sql, $c);
  158. // $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` ADD INDEX ( `rtracker_type` )";
  159. // $result=my_sql_query($sql, $c);
  160. next_step($start, $steps);
  161. }
  162. else if($start==8)
  163. {
  164. $sql="UPDATE `{$table_prefix}tracker_rtrack` a LEFT JOIN `{$table_prefix}tracker_rtrackers` b ON a.rtracker_md5 = b.rtracker_md5 SET rtracker_id = b.id";
  165. $result=my_sql_query($sql, $c);
  166. $sql="ALTER TABLE `{$table_prefix}tracker_rtrack` DROP `rtracker_md5`";
  167. $result=my_sql_query($sql, $c);
  168. $sql="DELETE FROM `{$table_prefix}config` WHERE config_name='ppkbb_manual_update'";
  169. $result=my_sql_query($sql, $c);
  170. err('<b>Completed</b><br />');
  171. }
  172. my_sql_close($c);
  173. exit();
  174. function next_step($current, $steps=0)
  175. {
  176. err('<a href="'.$_SERVER['SCRIPT_NAME'].'?start='.($current+1).'">Next >></a>'.($steps ? ' ('.$current.' of '.$steps.')' : '').'<br />');
  177. }
  178. function err($str)
  179. {
  180. global $c;
  181. echo $str;
  182. if($c)
  183. {
  184. my_sql_close($c);
  185. }
  186. exit();
  187. }
  188. ?>