assignInclude( "listings", "./$skindir/listings.tpl" ); else $tpl->assignInclude( "listings", "./default_tpls/listings.tpl" ); $tpl->assignInclude( "header", "./$skindir/header.tpl" ); $tpl->assignInclude( "footer", "./$skindir/footer.tpl" ); include("includes/pagesetup.php"); $seriesid = isset($_GET['seriesid']) && isNumber($_GET['seriesid']) ? $_GET['seriesid'] : false; $showlist = true; $inorder = isset($_GET['inorder']) && isNumber($_GET['inorder']) ? $_GET['inorder'] : false; $add = isset($_GET['add']) ? $_GET['add'] : false; // before doing anything else check if the visitor is logged in. If they are, check if they're an admin. If not, check that they're // trying to edit/delete/etc. their own stuff then get the penname if(!isMEMBER) accessDenied( ); if(isADMIN && uLEVEL < 3) $admin = 1; else $admin = 0; if(isADMIN && uLEVEL == 3) { list($admincats) = dbrow(dbquery("SELECT categories FROM ".TABLEPREFIX."fanfiction_authorprefs WHERE uid = '".USERUID."'")); if(isset($seriesid)) { $series = dbquery("SELECT uid, isopen, catid from ".TABLEPREFIX."fanfiction_series WHERE seriesid='$seriesid' LIMIT 1"); list($owner, $seriesopen, $catid) = dbrow($series); if(uLEVEL == 3 && $admincats != 0) { $seriescats = explode(",", $catid); $adcats = explode(",", $admincats); foreach($seriescats as $cat) { if(in_array($cat, $adcats)) $admin = 1; } } } } if(!$allowseries && !$admin) accessDenied( ); if($allowseries == 1 && !$admin) { list($count) = dbrow(dbquery("SELECT COUNT(sid) FROM ".TABLEPREFIX."fanfiction_stories WHERE uid = '".USERUID."'")); if($count == 0) accessDenied( ); } if($action == "validate") { $inorder = isset($_GET['inorder']) && isNumber($_GET['inorder']) ? $_GET['inorder'] : 0; $valid = dbquery("UPDATE ".TABLEPREFIX."fanfiction_inseries SET confirmed = 1 WHERE seriesid = '$seriesid' AND inorder = '$inorder' LIMIT 1"); if($valid) { $output .= write_message(_ACTIONSUCCESSFUL); $showlist = true; } } if($add == "series" || ($action == "add" && !$add) || $action == "edit") { if(isset($_GET['cat']) && !empty($_GET['cat'])) $cat = $_GET['cat']; else $cat = -1; $isopen = isset($_GET['isopen']) ? $_GET['isopen'] : 0; if(isset($_POST['submit'])) { $title = addslashes(escapestring(strip_tags($_POST['title'], $allowed_tags))); $summary = addslashes(escapestring(descript(strip_tags($_POST["summary"], $allowed_tags)))); if ($multiplecats) $category = isset($_POST['catid']) ? explode(",", $_POST['catid']) : array(); else $category = isset($_POST['catid']) ? $_POST['catid'] : array(); $category = array_filter($category, "isNumber"); if($category) $category = implode(",", $category); else $category = ""; $open = isset($_POST['open']) && isNumber($_POST['open']) ? $_POST['open'] : 0; $characters = isset($_POST['charid']) ? $_POST['charid'] : array(); $characters = array_filter($characters, "isNumber"); if($characters) $charid = implode(",", $characters); else $charid = ""; $classes = array( ); foreach($classtypelist as $type => $cinfo) { if(isset($_POST["classes_".$type])) { $opts = is_array($_POST["classes_".$type]) ? array_filter($_POST["classes_".$type], "isNumber") : array( ); $classes = array_merge($opts, $classes); } } $classes = implode(",", $classes); if(!empty($_POST['uid']) && isNumber($_POST['uid'])) $owner = $_POST['uid']; else $owner = USERUID; if($title == "" || $summary == "") { $output .= write_error(_REQUIREDINFO); } else if(find_naughty($title) || find_naughty($summary)) { $output .= write_error(_NAUGHTYWORDS); } else { $title = replace_naughty($title); $summary = replace_naughty($summary); if($action == "edit") { $seriesid = $_POST['seriesid']; dbquery("UPDATE ".TABLEPREFIX."fanfiction_series SET title = '$title', summary ='$summary', catid = '$category', isopen = '$open', characters = '$charid', classes = '$classes' WHERE seriesid = '$seriesid'"); $codequery = dbquery("SELECT * FROM ".TABLEPREFIX."fanfiction_codeblocks WHERE code_type = 'editseries'"); while($code = dbassoc($codequery)) { eval($code['code_text']); } if($logging && $admin) { $seriesinfo = dbquery("SELECT title, uid FROM ".TABLEPREFIX."fanfiction_series WHERE seriesid = '$seriesid'"); list($title, $uid) = dbrow($seriesinfo); if($uid != USERUID) dbquery("INSERT INTO ".TABLEPREFIX."fanfiction_log (`log_action`, `log_uid`, `log_ip`, `log_type`, `log_timestamp`) VALUES('".escapestring(sprintf(_LOG_ADMIN_EDIT_SERIES, USERPENNAME, USERUID, $title, $seriesid))."', '".USERUID. "', INET6_ATON('".$_SERVER['REMOTE_ADDR']."'), 'ED', " . time() . ")"); } $output = write_message(_ACTIONSUCCESSFUL."
"._BACK2ACCT); } else { dbquery("INSERT INTO ".TABLEPREFIX."fanfiction_series (title, summary, catid, isopen, uid, characters, classes) VALUES('$title', '$summary', '$category', '$open', '$owner', '$charid', '$classes')"); $seriesid = dbinsertid(); dbquery("UPDATE ".TABLEPREFIX."fanfiction_stats SET series = series + 1"); $codequery = dbquery("SELECT * FROM ".TABLEPREFIX."fanfiction_codeblocks WHERE code_type = 'addseries'"); while($code = dbassoc($codequery)) { eval($code['code_text']); } $add = "stories"; unset($_POST['submit']); } } } else { $output = "
".($action == "edit" ? _EDITSERIES : ($add == "stories" ? _ADD2SERIES : _ADDSERIES))."
"; if($action == "edit" && !isset($POST['submit'])) { $seriesquery = dbquery(_SERIESQUERY." AND seriesid = '$seriesid' LIMIT 1"); $series = dbassoc($seriesquery); $series = array_map("stripslashes", $series); $owner = $series['uid']; $output .= ""; } else $series = array("uid" => 0, "title" => "", "summary" => ""); $output .= "
"; if($admin) { $authorquery = dbquery("SELECT "._PENNAMEFIELD." as penname, "._UIDFIELD." as uid FROM "._AUTHORTABLE." ORDER BY penname"); $output .= " *
"; } $output .= " *
*

"; if($tinyMCE) $output .= "
"; if(!$multiplecats) $output .= ""; else { $catid = isset($series['catid']) ? explode(",", $series['catid']) : array( ); include("includes/categories.php"); $output .= ""; } if(count($charlist) > 0) { $output .= "

"; } $classes = isset($series['classes']) ? explode(",", $series['classes']) : array( ); foreach($classtypelist as $type => $typevars) { $output .= "

"; } $isopen = isset($series['isopen']) ? $series['isopen'] : 0; $output .= "
 
"._OPENNOTE."
"; $codequery = dbquery("SELECT * FROM ".TABLEPREFIX."fanfiction_codeblocks WHERE code_type = 'seriesform'"); while($code = dbassoc($codequery)) { eval($code['code_text']); } $output .= "
"; if($action == "add") { $output .= "
"._SERIESNOTE."
"; $showlist = false; } } } if($add == "stories") { if(isset($seriesid) && isset($_POST['submit'])) { if(!$seriesid) accessDenied( ); list($owner, $isopen, $title) = dbrow(dbquery("SELECT uid, isopen, title FROM ".TABLEPREFIX."fanfiction_series WHERE seriesid = '$seriesid' LIMIT 1")); $seriescount = dbquery("SELECT count(seriesid) FROM ".TABLEPREFIX."fanfiction_inseries WHERE seriesid = '$seriesid'"); list($count) = dbrow($seriescount); $seriesitems = dbquery("SELECT sid, subseriesid FROM ".TABLEPREFIX."fanfiction_inseries WHERE seriesid = '$seriesid'"); while($item = dbassoc($seriesitems)) { if($item['sid']) $items[] = $item['sid']; if($item['subseriesid']) $subs[] = $item['subseriesid']; } if($admin || USERUID == $owner || $isopen == 2 ) $confirmed = 1; else { $confirmed = 0; include("includes/emailer.php"); $seriesMail = sprintf(_NEWSERIESITEMS, stripslashes($title)); $subject = sprintf("_SERIESITEMSSUBS", stripslashes($title)); $mailInfo = dbassoc(dbquery("SELECT "._PENNAMEFIELD." as penname, "._EMAILFIELD." as email FROM "._AUTHORTABLE." WHERE "._UIDFIELD." = '$owner' LIMIT 1")); sendemail($mailInfo['penname'], $mailInfo['email'], $sitename, $siteemail, $subject, $seriesMail, "html"); } if(!empty($_POST["sid"])) { foreach($_POST["sid"] as $story) { if(!isNumber($story)) continue; if(!isset($items) || !is_array($items) || !in_array($story, $items)) { $count++; $validate = dbquery("SELECT validated FROM ".TABLEPREFIX."fanfiction_stories WHERE sid = '$story' LIMIT 1"); list($valid) = dbrow($validate); if($valid) dbquery("INSERT INTO ".TABLEPREFIX."fanfiction_inseries (seriesid, sid, inorder, confirmed) VALUES('$seriesid', '$story', '$count', '$confirmed')"); } } } $seriescount = dbquery("SELECT count(seriesid) FROM ".TABLEPREFIX."fanfiction_inseries WHERE seriesid = '$seriesid'"); list($count) = dbrow($seriescount); if(!empty($_POST["subseriesid"])) { foreach($_POST["subseriesid"] as $subseries) { if(!isNumber($subseries)) continue; if(!isset($subs) || !in_array($subseries, $subs)) { $count++; dbquery("INSERT INTO ".TABLEPREFIX."fanfiction_inseries (seriesid, subseriesid, inorder) VALUES('$seriesid', '$subseries', '$count')"); } } } $numstories = count(storiesInSeries($seriesid)); dbquery("UPDATE ".TABLEPREFIX."fanfiction_series SET numstories = '$numstories' WHERE seriesid = $seriesid LIMIT 1"); seriesreview($seriesid); $showlist = true; $output .= write_message(_ACTIONSUCCESSFUL); } else { $output = "
".($action == "edit" ? _EDITSERIES : ($add == "stories" ? _ADD2SERIES : _ADDSERIES))."
"; $output .= ""; $series = dbquery("SELECT title, uid, isopen FROM ".TABLEPREFIX."fanfiction_series WHERE seriesid = '$seriesid' LIMIT 1"); list($title, $owner) = dbrow($series); $output .= "
"._SERIES.": ".stripslashes($title)."
"; if(($admin || USERUID == $owner ) && isset($_GET['stories']) && $_GET['stories'] == "others") { if($let == _OTHER) $letter= _PENNAMEFIELD." REGEXP '^[^a-z]'"; else $letter = _PENNAMEFIELD." LIKE '$let%'"; $pagelink = "series.php?action=$action&add=stories&stories=others&seriesid=$seriesid&"; $authorlink = " 0".(isset($letter) ? " AND $letter" : ""); $authorquery = _MEMBERLIST." WHERE ap.stories > 0".(isset($letter) ? " AND $letter" : ""); include("includes/members_list.php"); $showlist = false; } else { $stories = dbquery("SELECT title, sid FROM ".TABLEPREFIX."fanfiction_stories WHERE validated > 0 AND uid = '".(isset($_GET["stories"]) && isNumber($_GET['stories']) ? $_GET["stories"] : USERUID)."' ORDER BY title ASC"); $seriesstories = dbquery("SELECT sid FROM ".TABLEPREFIX."fanfiction_inseries WHERE seriesid = '$seriesid'"); while($story = dbassoc($seriesstories)) { $selectedstories["$story[sid]"] = 1; } if($admin || USERUID == $owner) $output .= "
"._CHOOSEAUTHOR."
"; $output .= ""; $numstories = 0; while($story = dbassoc($stories)) { if(!empty($selectedstories[$story['sid']])) continue; $output .= ""; $numstories++; } if($numstories == 0) $output .= ""; $series2 = dbquery("SELECT title, seriesid FROM ".TABLEPREFIX."fanfiction_series WHERE uid = '".(isset($_GET['stories']) && isNumber($_GET['stories']) ? $_GET['stories'] : USERUID)."' ORDER BY title ASC"); $output .= ""; $numseries = 0; while($series = dbassoc($series2)) { if($series['seriesid'] != $seriesid) { $output .= ""; $numseries++; } } if($numseries < 1) $output .= ""; $output .="
"._STORIES."
".stripslashes($story['title'])."
"._NORESULTS."
"._SERIES."
".stripslashes($series['title'])."
"._NORESULTS."

"._SERIESNOTE2."

"; $showlist = false; } } } if($action == "delete") { global $seriesid; $confirmed = isset($_GET["confirmed"]) ? $_GET['confirmed'] : false; $output = "
".(!empty($inorder) ? _REMOVEFROM : _DELETESERIES)."
"; if($confirmed == "no") { $output .= write_message(_ACTIONCANCELLED); } else if($confirmed == "yes" && $seriesid) { if(!empty($inorder)) { $info = dbquery("SELECT inorder, subseriesid, sid FROM ".TABLEPREFIX."fanfiction_inseries WHERE seriesid = '$seriesid' AND inorder = '$inorder' LIMIT 1"); list($inorder, $subseriesid, $sid) = dbrow($info); $countquery = dbquery("SELECT count(seriesid) FROM ".TABLEPREFIX."fanfiction_inseries WHERE seriesid = '$seriesid'"); list($count) = dbrow($countquery); dbquery("DELETE FROM ".TABLEPREFIX."fanfiction_inseries WHERE seriesid = '$seriesid' AND ".($sid ? "sid = '$sid'" : "subseriesid = '$subseriesid'"). " LIMIT 1"); if($inorder < $count) dbquery("UPDATE ".TABLEPREFIX."fanfiction_inseries SET inorder = (inorder - 1) WHERE seriesid = '$seriesid' AND inorder > '$inorder'"); $output .= write_message(_ACTIONSUCCESSFUL); $showlist = true; } else { $seriesinfo = dbquery("SELECT title, uid FROM ".TABLEPREFIX."fanfiction_series WHERE seriesid = '$seriesid'"); list($title, $uid) = dbrow($seriesinfo); include("includes/deletefunctions.php"); deleteSeries($seriesid); $output .= write_message(_ACTIONSUCCESSFUL); if($admin || USERUID == $uid) $showlist = true; $seriesid = false; } } else { $output .= write_message((!empty($inorder) ? _CONFIRMREMOVE : _CONFIRMDELETE)."

[ "._YES." | "._NO." ]"); $showlist = false; } } if($showlist) { $go = isset($_GET['go']) ? $_GET['go'] : false; if($go != "" && $seriesid != "") { if(!empty($_GET['sid']) && isNumber($_GET['sid'])) $sid = $_GET["sid"]; if(!empty($_GET['subseriesid']) && isNumber($_GET['subseriesid'])) $subseriesid = $_GET["subseriesid"]; if(isset($inorder) && (isset($sid) || isset($subseriesid))) { if($go == "up") $oneabove = $inorder - 1; else $oneabove = $inorder + 1; if($oneabove >= 1) { dbquery("UPDATE ".TABLEPREFIX."fanfiction_inseries SET inorder = '$inorder' WHERE inorder = '$oneabove' AND seriesid = '$seriesid'"); dbquery("UPDATE ".TABLEPREFIX."fanfiction_inseries SET inorder = '$oneabove' WHERE ".(isset($sid) ? "sid = '$sid'" : "subseriesid = '$subseriesid'")." AND seriesid = '$seriesid'"); } } } if(empty($action) || $action == "manage") $output .= "
"._MANAGESERIES."
"; if($seriesid) { list($owner, $isopen) = dbrow(dbquery("SELECT uid,isopen FROM ".TABLEPREFIX."fanfiction_series WHERE seriesid = '$seriesid' LIMIT 1")); $result = dbquery("SELECT series.seriesid AS mainid, series.inorder, confirmed, series.sid, series.subseriesid, stories.title AS storytitle, sub.title AS subtitle FROM ".TABLEPREFIX."fanfiction_inseries AS series LEFT JOIN ".TABLEPREFIX."fanfiction_stories AS stories ON ( series.sid = stories.sid ) LEFT JOIN ".TABLEPREFIX."fanfiction_series AS sub ON ( sub.seriesid = series.subseriesid ) WHERE series.seriesid = '$seriesid' ORDER BY series.inorder"); $output .= ""; $rows = dbnumrows($result); while($series = dbassoc($result)) { $output .= ""; } $output .= "
"._TITLE.""._ORDER.""._OPTIONS."
".stripslashes($series['storytitle']) : "viewseries.php?seriesid=$series[subseriesid]\">".stripslashes($series['subtitle']))." ".($series['inorder'] == $rows ? "" : "\""._DOWN."\""). ($series['inorder'] == 1 ? " " : "\""._UP."\"")." ".($owner == USERUID || $admin ? ""._REMOVE."" : " ").($isopen == 1 && empty($series['confirmed']) && USERUID == $owner ? " | "._VALIDATE."" : "")."
"._ADD2SERIES."
"; } else { $result = dbquery("SELECT * from ".TABLEPREFIX."fanfiction_series WHERE uid = '".USERUID."' ORDER BY title"); $output .= ""; while($series = dbassoc($result)) { $output .= ""; } $output .= "
"._TITLE.""._OPTIONS."
".stripslashes($series['title']).""._ADD2SERIES." | "._EDIT." | "._DELETE."
"._ADDSERIES."
"; } } $tpl->assign("output", $output); $tpl->printToScreen( ); ?>