LotGDocker/lotgd-web/lotgd/titleedit.php
2020-08-17 19:16:42 -04:00

183 lines
5.9 KiB
PHP
Executable File

<?php
//Author: Lonny Luberts - 3/18/2005
//Heavily modified by JT Traub
require_once("common.php");
require_once("lib/http.php");
check_su_access(SU_EDIT_USERS);
tlschema("retitle");
page_header("Title Editor");
$op = httpget('op');
$id = httpget('id');
$editarray=array(
"Titles,title",
//"titleid"=>"Title Id,hidden",
"dk"=>"Dragon Kills,int|0",
// "ref"=>"Arbitrary Tag,int",
"male"=>"Male Title,text|",
"female"=>"Female Title,text|",
);
addnav("Other");
require_once("lib/superusernav.php");
superusernav();
addnav("Functions");
if ($op=="save") {
$male = httppost('male');
$female = httppost('female');
$dk = httppost('dk');
// Ref is currently unused
// $ref = httppost('ref');
$ref = '';
if ((int)$id == 0) {
$sql = "INSERT INTO ".db_prefix("titles")." (titleid,dk,ref,male,female) VALUES ($id,$dk,'$ref','$male','$female')";
$note = "`^New title added.`0";
$errnote = "`\$Unable to add title.`0";
}else {
$sql = "UPDATE " . db_prefix("titles") . " SET dk=$dk,ref='$ref',male='$male',female='$female' WHERE titleid=$id";
$note = "`^Title modified.`0";
$errnote = "`\$Unable to modify title.`0";
}
db_query($sql);
if (db_affected_rows() == 0) {
output($errnote);
rawoutput(db_error());
} else {
output($note);
}
$op = "";
} elseif ($op == "delete") {
$sql = "DELETE FROM ".db_prefix("titles")." WHERE titleid='$id'";
db_query($sql);
output("`^Title deleted.`0");
$op = "";
}
if ($op == ""){
$sql = "SELECT * FROM ".db_prefix("titles")." ORDER BY dk, titleid";
$result = db_query($sql);
if (db_num_rows($result)<1){
output("");
}else{
$row = db_fetch_assoc($result);
}
output("`@`c`b-=Title Editor=-`b`c");
$ops = translate_inline("Ops");
$dks = translate_inline("Dragon Kills");
// $ref is currently unused
// $reftag = translate_inline("Reference Tag");
$mtit = translate_inline("Male Title");
$ftit = translate_inline("Female Title");
$edit = translate_inline("Edit");
$del = translate_inline("Delete");
$delconfirm = translate_inline("Are you sure you wish to delete this title?");
rawoutput("<table border=0 cellspacing=0 cellpadding=2 width='100%' align='center'>");
// reference tag is currently unused
// rawoutput("<tr class='trhead'><td>$ops</td><td>$dks</td><td>$reftag</td><td>$mtit</td><td>$ftit</td></tr>");
rawoutput("<tr class='trhead'><td>$ops</td><td>$dks</td><td>$mtit</td><td>$ftit</td></tr>");
$result = db_query($sql);
$i = 0;
while($row = db_fetch_assoc($result)) {
$id = $row['titleid'];
rawoutput("<tr class='".($i%2?"trlight":"trdark")."'>");
rawoutput("<td>[<a href='titleedit.php?op=edit&id=$id'>$edit</a>|<a href='titleedit.php?op=delete&id=$id' onClick='return confirm(\"$delconfirm\");'>$del</a>]</td>");
addnav("","titleedit.php?op=edit&id=$id");
addnav("","titleedit.php?op=delete&id=$id");
rawoutput("<td>");
output_notl("`&%s`0",$row['dk']);
rawoutput("</td><td>");
// reftag is currently unused
// output("`^%s`0", $row['ref']);
// output("</td><td>");
output_notl("`2%s`0",$row['male']);
rawoutput("</td><td>");
output_notl("`6%s`0",$row['female']);
rawoutput("</td></tr>");
$i++;
}
rawoutput("</table>");
//modulehook("titleedit", array());
addnav("Functions");
addnav("Add a Title", "titleedit.php?op=add");
addnav("Refresh List", "titleedit.php");
addnav("Reset Users Titles", "titleedit.php?op=reset");
title_help();
} elseif ($op=="edit" || $op=="add") {
require_once("lib/showform.php");
if ($op=="edit"){
$sql = "SELECT * FROM ".db_prefix("titles")." WHERE titleid='$id'";
$result = db_query($sql);
$row = db_fetch_assoc($result);
} elseif ($op=="add") {
$row = array('titleid'=>0, 'male'=>'', 'female'=>'', 'dk'=>0);
$id = 0;
}
rawoutput("<form action='titleedit.php?op=save&id=$id' method='POST'>");
addnav("","titleedit.php?op=save&id=$id");
showform($editarray,$row);
rawoutput("</form>");
addnav("Functions");
addnav("Main Title Editor", "titleedit.php");
title_help();
} elseif ($op == "reset") {
require_once("lib/titles.php");
require_once("lib/names.php");
output("`^Rebuilding all titles.`0`n`n");
$sql = "SELECT name,title,dragonkills,acctid,sex,ctitle FROM " . db_prefix("accounts");
$result = db_query($sql);
$number=db_num_rows($result);
for ($i=0;$i<$number;$i++){
$row = db_fetch_assoc($result);
$oname = $row['name'];
$dk = $row['dragonkills'];
$otitle = $row['title'];
$dk = (int)($row['dragonkills']);
if (!valid_dk_title($otitle, $dk, $row['sex'])) {
$sex = translate_inline($row['sex']?"female":"male");
$newtitle = get_dk_title($dk, (int)$row['sex']);
$newname = change_player_title($newtitle, $row);
$id = $row['acctid'];
if ($oname != $newname) {
output("`@Changing `^%s`@ to `^%s `@(%s`@ [%s,%s])`n",
$oname,$newname,$newtitle,$dk,$sex);
if ($session['user']['acctid']==$row['acctid']){
$session['user']['title']=$newtitle;
$session['user']['name']=$newname;
}else{
$sql = "UPDATE " . db_prefix("accounts") . " SET name='" .
addslashes($newname)."', title='".
addslashes($newtitle)."' WHERE acctid='$id'";
db_query($sql);
}
}elseif ($otitle != $newtitle){
output("`@Changing only the title (not the name) of `^%s`@ `@(%s`@ [%s,%s])`n",
$oname,$newtitle,$dk,$sex);
if ($session['user']['acctid']==$row['acctid']){
$session['user']['title']=$newtitle;
}else{
$sql = "UPDATE " . db_prefix("accounts") .
" SET title='".addslashes($newtitle) .
"' WHERE acctid='$id'";
db_query($sql);
}
}
}
}
output("`n`n`^Done.`0");
addnav("Main Title Editor", "titleedit.php");
}
function title_help()
{
output("`#You can have multiple titles for a given dragon kill rank.");
output("If you do, one of those titles will be chosen at random to give to the player when a title is assigned.`n`n");
output("You can have gaps in the title order.");
output("If you have a gap, the title given will be for the DK rank less than or equal to the players current number of DKs.`n");
}
page_footer();
?>