Improved player reports, adding changelog system.

This commit is contained in:
Stefan Brannfjell 2014-04-04 11:12:00 +02:00
parent 5e0170a264
commit d6cff8692b
6 changed files with 84 additions and 4 deletions

View File

@ -72,7 +72,7 @@ if (empty($_POST) === false) {
if ($action === 's') {
echo '<font color="green"><b>News successfully updated!</b></font>';
list($title, $text) = array(mysql_znote_escape_string($_POST['title']), mysql_znote_escape_string($_POST['text']));
mysql_update("UPDATE `znote_news` SET `title`='$title',`text`='$text' WHERE `id`='$id';") or die("FUCK!");
mysql_update("UPDATE `znote_news` SET `title`='$title',`text`='$text' WHERE `id`='$id';");
$cache = new Cache('engine/cache/news');
$news = fetchAllNews();
$cache->setContent($news);

View File

@ -12,6 +12,9 @@ $statusTypes = array(
4 => '<font color="grey">Rejected</font>',
5 => '<font color="green"><b>Fixed</b></font>'
);
// Which status IDs should give option to add to changelog?
$statusChangeLog = array(0,5);
// Autohide rows that have these status IDs:
$hideStatus = array(3, 4, 5);
@ -37,10 +40,16 @@ if (!empty($_POST)) {
$customPoints = getValue($_POST['customPoints']);
$reportId = getValue($_POST['id']);
$changelogReportId = getValue($_POST['changelogReportId']);
$changelogValue = getValue($_POST['changelogValue']);
$changelogText = getValue($_POST['changelogText']);
$changelogStatus = ($changelogReportId !== false && $changelogValue === '2' && $changelogText !== false) ? true : false;
if ($customPoints !== false) $price = (int)($price + $customPoints);
// Update SQL
mysql_update("UPDATE `znote_player_reports` SET `status`='$status' WHERE `id`='$reportId' LIMIT 1;");
echo "<h1>Report status updated to ".$statusTypes[(int)$status] ."!</h1>";
// Update local array representation
foreach ($reports as $sid => $sa)
foreach ($sa as $rid => $ra)
@ -50,6 +59,24 @@ if (!empty($_POST)) {
unset($reports[$sid][$rid]);
}
// If we should do anything with changelog:
if ($changelogStatus) {
$time = time();
// Check if changelog exist (`id`, `text`, `time`, `report_id`, `status`)
$changelog = mysql_select_single("SELECT * FROM `znote_changelog` WHERE `report_id`='$changelogReportId' LIMIT 1;");
// If changelog exist
if ($changelog !== false) {
// Update it
mysql_update("UPDATE `znote_changelog` SET `text`='$changelogText', `time`='$time' WHERE `id`='".$changelog['id']."' LIMIT 1;");
echo "<h2>Changelog message updated!</h2>";
} else {
// Create it
mysql_insert("INSERT INTO `znote_changelog` (`text`, `time`, `report_id`, `status`)
VALUES ('$changelogText', '$time', '$changelogReportId', '$status');");
echo "<h2>Changelog message created!</h2>";
}
}
// If we should give user price
if ($price > 0) {
$account = mysql_select_single("SELECT `a`.`id`, `a`.`email` FROM `accounts` AS `a`
@ -104,7 +131,21 @@ if (!empty($_POST)) {
echo "<option value='$price'>$price</option>";
}
?>
</select> + <input name="customPoints" type="text" style="width: 50px;" placeholder="0"><br><br>
</select> + <input name="customPoints" type="text" style="width: 50px;" placeholder="0"><br>
<?php
if (in_array($report['status'], $statusChangeLog)) {
?>
<br>
<input type="hidden" name="changelogReportId" value="<?php echo $report['id']; ?>">
Add / update changelog message? <select name="changelogValue">
<option value="1">No</option>
<option value="2">Yes</option>
</select><br>
<textarea rows="7" cols="40" maxlength="254" name="changelogText"></textarea>
<?php
}
?>
<br>
<input type="submit" value="Update Report" style="width: 100%;">
</form>
</div>

28
changelog.php Normal file
View File

@ -0,0 +1,28 @@
<?php require_once 'engine/init.php'; include 'layout/overall/header.php'; ?>
<h1>Changelog</h1>
<?php
$changelogs = mysql_select_multi("SELECT `id`, `text`, `time`, `report_id`, `status` FROM `znote_changelog` ORDER BY `id` DESC;");
if ($changelogs !== false) {
?>
<table>
<tr class="yellow">
<td>Changelogs</td>
</tr>
<?php
foreach ($changelogs as $changelog) {
?>
<tr>
<td><b><?php echo getClock($changelog['time'], true, true); ?></b><br><?php echo $changelog['text']; ?></td>
</tr>
<?php
}
?>
</table>
<?php
} else {
?>
<?php
}
include 'layout/overall/footer.php'; ?>

View File

@ -107,6 +107,15 @@ CREATE TABLE IF NOT EXISTS `znote_player_reports` (
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `znote_changelog` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`text` VARCHAR(255) NOT NULL,
`time` INT(11) NOT NULL,
`report_id` INT(11) NOT NULL,
`status` TINYINT(3) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `znote_shop` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`type` int(11) NOT NULL,

View File

@ -5,6 +5,7 @@
<li><a href="forum.php">Community</a>
<ul> <!-- (sub)dropdown COMMUNITY -->
<li><a href="market.php">Item Market</a></li>
<li><a href="gallery.php">Gallery</a></li>
<li><a href="support.php">Support</a></li>
<li><a href="houses.php">Houses</a></li>
@ -27,5 +28,5 @@
<li><a href="guildwar.php">Guild Wars</a></li>
</ul>
<?php } ?></li>
<li><a href="changelog.php">Changelog</a></li>
</ul>

View File

@ -14,7 +14,8 @@ if ($array) {
</tr>
<?php
foreach ($array as $value) {
echo '<tr>';
$url = url("characterprofile.php?name=". $value['name']);
echo '<tr class="special" onclick="javascript:window.location.href=\'' . $url . '\'">';
echo '<td><a href="characterprofile.php?name='. $value['name'] .'">'. $value['name'] .'</a></td>';
echo '<td>'. $value['level'] .'</td>';
echo '<td>'. vocation_id_to_name($value['vocation']) .'</td>';