mirror of
https://github.com/Xkeeper0/jul.git
synced 2025-05-19 00:30:21 -07:00
109 lines
2.9 KiB
PHP
109 lines
2.9 KiB
PHP
<?php
|
|
|
|
$windowtitle = "Thread Repair System";
|
|
|
|
require 'lib/function.php';
|
|
require 'lib/layout.php';
|
|
|
|
print "$header<br>";
|
|
|
|
if (!$isadmin) {
|
|
|
|
print "
|
|
$tblstart
|
|
$tccell1>This feature is restricted.</td>
|
|
$tblend
|
|
|
|
$footer
|
|
";
|
|
printtimedif($startingtime);
|
|
die();
|
|
}
|
|
|
|
|
|
print adminlinkbar("admin-threads.php");
|
|
|
|
if (!$_POST['run']) {
|
|
print "<form action=\"admin-threads.php\" method=\"post\">
|
|
$tblstart
|
|
<tr>$tccellh>Thread Repair System</td></tr>
|
|
<tr>$tccell1>
|
|
<br>This page is intended to repair threads with broken reply counts. Please don't flood it with requests.
|
|
<br>This problem causes \"phantom pages\" (e.g., too few or too many pages displayed).
|
|
<br>
|
|
<br>$inps=\"run\" value=\"Start\">
|
|
<br>
|
|
</td></tr>
|
|
$tblend
|
|
</form>
|
|
";
|
|
} else {
|
|
|
|
print "
|
|
$tblstart
|
|
<tr>$tccellh>Thread Repair System</td></tr>
|
|
<tr>$tccell1>Now running.
|
|
</td></tr>
|
|
$tblend
|
|
<br>
|
|
$tblstart
|
|
<tr>
|
|
$tccellh>id#</td>
|
|
$tccellh>Name</td>
|
|
$tccellh>Reports</td>
|
|
$tccellh>Real</td>
|
|
$tccellh>Err</td>
|
|
$tccellh>Status</td>
|
|
</tr>
|
|
";
|
|
|
|
$q = "SELECT `posts`.`thread`, (COUNT(`posts`.`id`)) AS 'real', ((CAST(COUNT(`posts`.`id`) AS SIGNED) - 1) - CAST(`threads`.`replies` AS SIGNED)) AS 'offset', `threads`.`replies`, `threads`.`title` AS `threadname` FROM `posts` LEFT JOIN `threads` ON `posts`.`thread` = `threads`.`id` GROUP BY `thread` HAVING `offset` <> 0 OR `offset` IS NULL ORDER BY ISNULL(`threadname`) ASC, `thread` DESC";
|
|
$sql = mysql_query($q) or die(mysql_error());
|
|
|
|
$count = "";
|
|
while ($data = mysql_fetch_array($sql, MYSQL_ASSOC)) {
|
|
|
|
$status = "";
|
|
|
|
if ($data['offset'] != 0 || $data['offset'] === null) {
|
|
|
|
if ($data['replies'] === null) {
|
|
$status = "<font color=\"#ff8080\">Invalid thread</font>";
|
|
} else {
|
|
$status = mysql_query("UPDATE `threads` SET `replies` = '". ($data['real'] - 1) ."' WHERE `id` = '". $data['thread'] ."'") or "<font color=#ff0000>Error</font>: ". mysql_error();
|
|
if ($status == 1) $status = "<font color=#80ff80>Updated</font>";
|
|
$count++;
|
|
}
|
|
|
|
print "
|
|
<tr>
|
|
$tccell1><a href=\"thread.php?id=". $data['thread'] ."\">". $data['thread'] ."</a></td>
|
|
$tccell2l><a href=\"thread.php?id=". $data['thread'] ."\">". ($data['threadname'] !== null ? $data['threadname'] : "<em>(Deleted thread)</em>") ."</a></td>
|
|
$tccell1>". ($data['replies'] !== null ? $data['replies'] + 1 : "—") ."</td>
|
|
$tccell1>". ($data['real']) ."</td>
|
|
$tccell2><b>". ($data['offset'] !== null ? $data['offset'] : "—") ."</b></td>
|
|
$tccell1>$status</td>
|
|
</tr>";
|
|
|
|
} else {
|
|
continue;
|
|
}
|
|
}
|
|
|
|
if ($count) {
|
|
print "<tr>$tccellc colspan=6>$count thread". ($count != 1 ? "s" : "") ." updated.</td></tr>";
|
|
} else {
|
|
|
|
print " <tr>$tccell1 colspan=6>
|
|
<br>No problems found.
|
|
<br>
|
|
</td></tr>";
|
|
}
|
|
}
|
|
|
|
|
|
print "$tblend
|
|
$footer
|
|
";
|
|
printtimedif($startingtime);
|