--- a/searching.php +++ b/searching.php @@ -21,330 +21,293 @@ // To read the license please visit http://www.gnu.org/copyleft/gpl.html // ---------------------------------------------------------------------- + // Page Setup // Set the current page id. Because search does multiple things there are multiple possibilities -if (isset($_POST['submit']) || isset($_GET['offset'])) { - $current = 'searchresults'; -} else { - $current = 'search'; +if(isset($_POST['submit']) || isset($_GET['offset'])) $current = "searchresults"; +else $current = "search"; +if(isset($_GET['action']) && $_GET['action'] == "advanced") $displayform = 1; +// Now set up the page + +$displayform = 1; + + +include ("header.php"); + +if(file_exists("$skindir/browse.tpl")) $tpl = new TemplatePower( "$skindir/browse.tpl" ); +else $tpl = new TemplatePower("default_tpls/browse.tpl"); +if(file_exists("$skindir/listings.tpl")) $tpl->assignInclude( "listings", "./$skindir/listings.tpl" ); +else $tpl->assignInclude( "listings", "./default_tpls/listings.tpl" ); + +include("includes/pagesetup.php"); + + +$searchtype = (isset($_REQUEST['searchtype']) ? $_REQUEST['searchtype'] : "simple"); +$searchterm = (isset($_REQUEST['searchterm']) ? escapestring($_REQUEST['searchterm']) : false); + +if(isset($_POST['submit']) || isset($_GET['offset'])) { + $output .= "<div id=\"pagetitle\">"._RESULTS."</div>"; + $query = array(); + $countquery = array(); + $scountquery = array(); + if($searchtype == "fulltext") { + $query = "SELECT stories.*, "._PENNAMEFIELD." as penname, stories.date as date, stories.updated as updated FROM "._AUTHORTABLE.", ".TABLEPREFIX."fanfiction_stories as stories, ".TABLEPREFIX."fanfiction_chapters as chapter WHERE chapter.storytext LIKE '%$searchterm%' AND chapter.sid = stories.sid AND stories.uid = "._UIDFIELD; + $countquery = "SELECT count(stories.sid) FROM ".TABLEPREFIX."fanfiction_stories as stories, ".TABLEPREFIX."fanfiction_chapters as chapter WHERE chapter.storytext LIKE '%$searchterm%' AND chapter.sid = stories.sid GROUP BY stories.sid"; + $query .= " "._ORDERBY; + search($query, $countquery); + $tpl->assign("output", $output); + $tpl->printToScreen(); + dbclose( ); + exit( ); + } + if($searchterm && strlen($searchterm) < 3) { + errorExit(_SEARCHTERMTOOSHORT); + } + if($searchterm) { + if($searchtype == "title") { + $query[] = "stories.title LIKE '%$searchterm%'"; + $countquery[] = "stories.title LIKE '%$searchterm%'"; + $scountquery[] = "series.title LIKE '%$searchterm%'"; + } + if($searchtype == "summary") { + $query[] = "stories.summary LIKE '%$searchterm%'"; + $countquery[] = "stories.summary LIKE '%$searchterm%'"; + $scountquery[] = "series.summary LIKE '%$searchterm%'"; + } + if($searchtype == "penname") { + $authorquery = dbquery(_MEMBERLIST." WHERE "._PENNAMEFIELD." LIKE '%$searchterm%' GROUP BY "._UIDFIELD); + $authorlist = array(); + while($auth = dbassoc($authorquery)) { + $authorlist[] = $auth['uid']; + } + if(count($authorlist) > 0) { + $authors = implode(",",$authorlist); + $query = "SELECT stories.*, "._PENNAMEFIELD." as penname, stories.date as date, stories.updated as updated FROM ("._AUTHORTABLE.", ".TABLEPREFIX."fanfiction_stories as stories) LEFT JOIN ".TABLEPREFIX."fanfiction_coauthors as coauth ON coauth.sid = stories.sid WHERE "._UIDFIELD." = stories.uid AND stories.validated > 0 AND (FIND_IN_SET(stories.uid, '$authors') > 0 OR FIND_IN_SET(coauth.uid, '$authors') > 0) "; + $countquery = "SELECT COUNT(stories.sid) FROM ".TABLEPREFIX."fanfiction_stories as stories LEFT JOIN ".TABLEPREFIX."fanfiction_coauthors as coauth ON coauth.sid = stories.sid WHERE stories.validated > 0 AND (FIND_IN_SET(stories.uid, '$authors') > 0 OR FIND_IN_SET(coauth.uid, '$authors') > 0)"; + search($query, $countquery); + $tpl->assign("output", $output); + $tpl->printToScreen(); + dbclose( ); + exit( ); + } + else { + $query[] = "1 = 0"; + $countquery[] = "1 = 0"; + $scountquery[] = "1 = 0"; + } + } + if($searchtype == "advanced") { + $query[] = "(stories.summary LIKE '%$searchterm%' OR stories.title LIKE '%$searchterm%') "; + $countquery[] = "(stories.summary LIKE '%$searchterm%' OR stories.title LIKE '%$searchterm%') "; + $scountquery[] = "(summary LIKE '%$searchterm%' OR title LIKE '%$searchterm%') "; + } + } + if(isset($_REQUEST['authors'])) { + $authors = isarray($_REQUEST['authors']) ? $_REQUEST['authors'] : explode(",", $_REQUEST['authors']); + $authors = array_filter($authors, "isNumber"); + if($authors) { + $authors = implode(",", $authors); + $query[] = "FIND_IN_SET(stories.uid, '$authors') > 0"; + $countquery[] = "FIND_IN_SET(stories.uid, '$authors') > 0"; + $scountquery[] = "FIND_IN_SET(series.uid, '$authors') > 0"; + } + else { + $query[] = "1 = 0"; + $countquery[] = "1 = 0"; + $scountquery[] = "1 = 0"; + } + } + if(isset($_REQUEST['catid'])) { + $catid = is_array($_REQUEST['catid']) ? $_REQUEST['catid'] : explode(",", $_REQUEST['catid']); + $catid = array_filter($catid, "isNumber"); + } + if(!isset($catid)) $catid = array("false"); + $categories = array( ); + // Get the recursive list. + foreach($catid as $cat) { + if($cat == "false" || empty($cat)) continue; + $categories = array_merge($categories, recurseCategories($cat)); + } + // Now format the SQL + foreach($categories as $cat) { + $catstories[] = "FIND_IN_SET($cat, stories.catid) > 0 "; + $catseries[] = "FIND_IN_SET($cat, series.catid) > 0 "; + } + // Now implode the SQL list + if(!empty($catstories)) { + $query[] = "(".implode(" OR ", $catstories).")"; + $countquery[] = "(".implode(" OR ", $catstories).")"; + $scountquery[] = "(".implode(" OR ", $catseries).")"; + } + if(isset($_REQUEST['charid'])) { + $charid = is_array($_REQUEST['charid']) ? $_REQUEST['charid'] : explode(",", $_REQUEST['charid']); + } + else $charid = array( ); + if(isset($_REQUEST['charlist1'])) $charid[] = $_REQUEST['charlist1']; + if(isset($_REQUEST['charlist2'])) $charid[] = $_REQUEST['charlist2']; + $charid = array_filter($charid, "isNumber"); + if(count($charid) > 0) { + foreach($charid as $c) { + if(!empty($c)) { + $charstories[] = "FIND_IN_SET($c, stories.charid) > 0 "; + $charseries[] = "FIND_IN_SET($c, series.characters) > 0 "; + } + } + if(count($charstories) > 0) { + $query[] = "(".implode(" AND ", $charstories).")"; + $countquery[] = "(".implode(" AND ", $charstories).")"; + } + if(count($charseries) > 0) $scountquery[] = "(".implode(" AND ", $charseries).")"; + } + + if(isset($_REQUEST['rid'])) $rid = is_array($_REQUEST['rid']) ? $_REQUEST['rid'] : explode(",", $_REQUEST['rid']); + else $rid = array(); + if(count($rid) > 0) { + $rid = array_filter($rid, "isNumber"); + $query[] = findclause('rid', $rid); + $countquery[] = findclause('rid', $rid); + } + if(isset($_REQUEST['complete'])) { + $query[] = "stories.completed = '1'"; + $countquery[] = "stories.completed = '1'"; + } + $classin = array( ); + $classex = array( ); + foreach($classtypelist as $id => $vars) { + $opts = array( ); + $exopts = array( ); + if(isset($_POST["class_".$id])) $opts = array_filter($_POST["class_".$id], "isNumber"); + else if(isset($_GET["class_".$id])) { + $opts = array_merge($opts, explode(",", $_GET["class_".$id])); + $opts = array_filter($opts, "isNumber"); + } + else if(isset($_REQUEST[$vars["name"]])) $opts[] = array($_REQUEST[$vars["name"]]); + $classin = array_merge($classin, $opts); + if(isset($_POST["exclass_".$id])) $exopts = array_filter($_POST["exclass_".$id], "isNumber"); + else if(isset($_GET["exclass_".$id])) { + $exopts = array_merge($exopts, explode(",", $_GET["exclass_".$id])); + $exopts = array_filter($exopts, "isNumber"); + } + $classex = array_merge($classex, $exopts); + unset($opts, $exopts); + } + if($classin) { + foreach($classin as $class) { + $query[] = "FIND_IN_SET($class, stories.classes) > 0"; + $countquery[] = "FIND_IN_SET($class, stories.classes) > 0"; + $scountquery[] = "FIND_IN_SET($class, series.classes) > 0"; + } + } + if($classex) { + foreach($classex as $class) { + $query[] = "FIND_IN_SET($class, stories.classes) = 0"; + $countquery[] = "FIND_IN_SET($class, stories.classes) = 0"; + $scountquery[] = "FIND_IN_SET($class, series.classes) = 0"; + } + } + // Begin story length + unset($wordcount); + $wordlow = isset($_REQUEST['wordlow']) && isNumber($_REQUEST['wordlow']) ? $_REQUEST['wordlow'] : "-500"; + $wordhigh = isset($_REQUEST['wordhigh']) && isNumber($_REQUEST['wordhigh']) ? $_REQUEST['wordhigh'] : "1000000"; + if($wordlow != "-500") $wordcount = "stories.wordcount > ".$wordlow; + if($wordhigh != "1000000") + { + if($wordcount) $wordcount .= " AND stories.wordcount < ".$wordhigh; + else $wordcount = "stories.wordcount < ".$wordhigh; + } + if($wordhigh < $wordlow) $wordcount = "stories.wordcount < ".$wordlow; + if(!empty($wordcount)) { + $query[] = "($wordcount)"; + $countquery[] = "($wordcount)"; + } + // End wordcount + + $codeblocks = dbquery("SELECT * FROM ".TABLEPREFIX."fanfiction_codeblocks WHERE code_type = 'browseterms'"); + while($code = dbassoc($codeblocks)) { + eval($code['code_text']); + } + + $query = (count($query) > 0 ? " AND ".implode(" AND ", $query) : "")." "._ORDERBY; + $countquery = count($countquery) > 0 ? " AND ".implode(" AND ", $countquery) : ""; + if(count($scountquery) > 0) $scountquery = " WHERE ".implode(" AND ", $scountquery); + search(_STORYQUERY.$query, _STORYCOUNT.$countquery); + $otherresults = array( ); + $termArray = array_merge($_GET, $_POST); + $termsList = array(); + foreach($termArray as $term => $value) { + if($term == "submit" || $term == "wordhigh" || $term == "wordlow" || empty($value) || $term == "formname" || $term == "searchtype") continue; + $termsList[$term] = "$term=".(is_array($value) ? implode(",", $value) : $value); + } + $terms = implode("&", $termsList); + if(!empty($scountquery)) { + $seriesresults = dbquery(_SERIESCOUNT.$scountquery); + list($scount) = dbrow($seriesresults); + if($scount > 0) $otherresults[] = "<a href='browse.php?type=series$terms'>$scount "._SERIES."</a>"; + } + $codeblocks = dbquery("SELECT * FROM ".TABLEPREFIX."fanfiction_codeblocks WHERE code_type = 'otherresults'"); + while($code = dbassoc($codeblocks)) { + eval($code['code_text']); + } + if(count($otherresults) > 0) $tpl->assign("otherresults", "<div id='otherresults'><span class='label'>"._OTHERRESULTS.":</span> ".implode(", ", $otherresults)."</div>"); } -if (isset($_GET['action']) && $_GET['action'] == 'advanced') { - $displayform = 1; -} -// Now set up the page - -$displayform = 1; - -include 'header.php'; - -if (file_exists("$skindir/browse.tpl")) { - $tpl = new TemplatePower("$skindir/browse.tpl"); -} else { - $tpl = new TemplatePower('default_tpls/browse.tpl'); -} -if (file_exists("$skindir/listings.tpl")) { - $tpl->assignInclude('listings', "./$skindir/listings.tpl"); -} else { - $tpl->assignInclude('listings', './default_tpls/listings.tpl'); -} - -include 'includes/pagesetup.php'; - -$searchtype = (isset($_REQUEST['searchtype']) ? $_REQUEST['searchtype'] : 'simple'); -$searchterm = (isset($_REQUEST['searchterm']) ? escapestring($_REQUEST['searchterm']) : false); - -if (isset($_POST['submit']) || isset($_GET['offset'])) { - $output .= '<div id="pagetitle">'._RESULTS.'</div>'; - $query = array(); - $countquery = array(); - $scountquery = array(); - if ($searchtype == 'fulltext') { - $query = 'SELECT stories.*, '._PENNAMEFIELD.' as penname, UNIX_TIMESTAMP(stories.date) as date, UNIX_TIMESTAMP(stories.updated) as updated FROM '._AUTHORTABLE.', '.TABLEPREFIX.'fanfiction_stories as stories, '.TABLEPREFIX."fanfiction_chapters as chapter WHERE chapter.storytext LIKE '%$searchterm%' AND chapter.sid = stories.sid AND stories.uid = "._UIDFIELD; - $countquery = 'SELECT count(stories.sid) FROM '.TABLEPREFIX.'fanfiction_stories as stories, '.TABLEPREFIX."fanfiction_chapters as chapter WHERE chapter.storytext LIKE '%$searchterm%' AND chapter.sid = stories.sid GROUP BY stories.sid"; - $query .= ' '._ORDERBY; - search($query, $countquery); - $tpl->assign('output', $output); - $tpl->printToScreen(); - dbclose(); - exit(); - } - if ($searchterm && strlen($searchterm) < 3) { - errorExit(_SEARCHTERMTOOSHORT); - } - if ($searchterm) { - if ($searchtype == 'title') { - $query[] = "stories.title LIKE '%$searchterm%'"; - $countquery[] = "stories.title LIKE '%$searchterm%'"; - $scountquery[] = "series.title LIKE '%$searchterm%'"; - } - if ($searchtype == 'summary') { - $query[] = "stories.summary LIKE '%$searchterm%'"; - $countquery[] = "stories.summary LIKE '%$searchterm%'"; - $scountquery[] = "series.summary LIKE '%$searchterm%'"; - } - if ($searchtype == 'penname') { - $authorquery = dbquery(_MEMBERLIST.' WHERE '._PENNAMEFIELD." LIKE '%$searchterm%' GROUP BY "._UIDFIELD); - $authorlist = array(); - while ($auth = dbassoc($authorquery)) { - $authorlist[] = $auth['uid']; - } - if (count($authorlist) > 0) { - $authors = implode(',', $authorlist); - $query = 'SELECT stories.*, '._PENNAMEFIELD.' as penname, UNIX_TIMESTAMP(stories.date) as date, UNIX_TIMESTAMP(stories.updated) as updated FROM ('._AUTHORTABLE.', '.TABLEPREFIX.'fanfiction_stories as stories) LEFT JOIN '.TABLEPREFIX.'fanfiction_coauthors as coauth ON coauth.sid = stories.sid WHERE '._UIDFIELD." = stories.uid AND stories.validated > 0 AND (FIND_IN_SET(stories.uid, '$authors') > 0 OR FIND_IN_SET(coauth.uid, '$authors') > 0) "; - $countquery = 'SELECT COUNT(stories.sid) FROM '.TABLEPREFIX.'fanfiction_stories as stories LEFT JOIN '.TABLEPREFIX."fanfiction_coauthors as coauth ON coauth.sid = stories.sid WHERE stories.validated > 0 AND (FIND_IN_SET(stories.uid, '$authors') > 0 OR FIND_IN_SET(coauth.uid, '$authors') > 0)"; - search($query, $countquery); - $tpl->assign('output', $output); - $tpl->printToScreen(); - dbclose(); - exit(); - } else { - $query[] = '1 = 0'; - $countquery[] = '1 = 0'; - $scountquery[] = '1 = 0'; - } - } - if ($searchtype == 'advanced') { - $query[] = "(stories.summary LIKE '%$searchterm%' OR stories.title LIKE '%$searchterm%') "; - $countquery[] = "(stories.summary LIKE '%$searchterm%' OR stories.title LIKE '%$searchterm%') "; - $scountquery[] = "(summary LIKE '%$searchterm%' OR title LIKE '%$searchterm%') "; - } - } - if (isset($_REQUEST['authors'])) { - $authors = isarray($_REQUEST['authors']) ? $_REQUEST['authors'] : explode(',', $_REQUEST['authors']); - $authors = array_filter($authors, 'isNumber'); - if ($authors) { - $authors = implode(',', $authors); - $query[] = "FIND_IN_SET(stories.uid, '$authors') > 0"; - $countquery[] = "FIND_IN_SET(stories.uid, '$authors') > 0"; - $scountquery[] = "FIND_IN_SET(series.uid, '$authors') > 0"; - } else { - $query[] = '1 = 0'; - $countquery[] = '1 = 0'; - $scountquery[] = '1 = 0'; - } - } - if (isset($_REQUEST['catid'])) { - $catid = is_array($_REQUEST['catid']) ? $_REQUEST['catid'] : explode(',', $_REQUEST['catid']); - $catid = array_filter($catid, 'isNumber'); - } - if (!isset($catid)) { - $catid = array('false'); - } - $categories = array(); - // Get the recursive list. - foreach ($catid as $cat) { - if ($cat == 'false' || empty($cat)) { - continue; - } - $categories = array_merge($categories, recurseCategories($cat)); - } - // Now format the SQL - foreach ($categories as $cat) { - $catstories[] = "FIND_IN_SET($cat, stories.catid) > 0 "; - $catseries[] = "FIND_IN_SET($cat, series.catid) > 0 "; - } - // Now implode the SQL list - if (!empty($catstories)) { - $query[] = '('.implode(' OR ', $catstories).')'; - $countquery[] = '('.implode(' OR ', $catstories).')'; - $scountquery[] = '('.implode(' OR ', $catseries).')'; - } - if (isset($_REQUEST['charid'])) { - $charid = is_array($_REQUEST['charid']) ? $_REQUEST['charid'] : explode(',', $_REQUEST['charid']); - } else { - $charid = array(); - } - if (isset($_REQUEST['charlist1'])) { - $charid[] = $_REQUEST['charlist1']; - } - if (isset($_REQUEST['charlist2'])) { - $charid[] = $_REQUEST['charlist2']; - } - $charid = array_filter($charid, 'isNumber'); - if (count($charid) > 0) { - foreach ($charid as $c) { - if (!empty($c)) { - $charstories[] = "FIND_IN_SET($c, stories.charid) > 0 "; - $charseries[] = "FIND_IN_SET($c, series.characters) > 0 "; - } - } - if (count($charstories) > 0) { - $query[] = '('.implode(' AND ', $charstories).')'; - $countquery[] = '('.implode(' AND ', $charstories).')'; - } - if (count($charseries) > 0) { - $scountquery[] = '('.implode(' AND ', $charseries).')'; - } - } - - if (isset($_REQUEST['rid'])) { - $rid = is_array($_REQUEST['rid']) ? $_REQUEST['rid'] : explode(',', $_REQUEST['rid']); - } else { - $rid = array(); - } - if (count($rid) > 0) { - $rid = array_filter($rid, 'isNumber'); - $query[] = findclause('rid', $rid); - $countquery[] = findclause('rid', $rid); - } - if (isset($_REQUEST['complete'])) { - $query[] = "stories.completed = '1'"; - $countquery[] = "stories.completed = '1'"; - } - $classin = array(); - $classex = array(); - foreach ($classtypelist as $id => $vars) { - $opts = array(); - $exopts = array(); - if (isset($_POST['class_'.$id])) { - $opts = array_filter($_POST['class_'.$id], 'isNumber'); - } elseif (isset($_GET['class_'.$id])) { - $opts = array_merge($opts, explode(',', $_GET['class_'.$id])); - $opts = array_filter($opts, 'isNumber'); - } elseif (isset($_REQUEST[$vars['name']])) { - $opts[] = array($_REQUEST[$vars['name']]); - } - $classin = array_merge($classin, $opts); - if (isset($_POST['exclass_'.$id])) { - $exopts = array_filter($_POST['exclass_'.$id], 'isNumber'); - } elseif (isset($_GET['exclass_'.$id])) { - $exopts = array_merge($exopts, explode(',', $_GET['exclass_'.$id])); - $exopts = array_filter($exopts, 'isNumber'); - } - $classex = array_merge($classex, $exopts); - unset($opts, $exopts); - } - if ($classin) { - foreach ($classin as $class) { - $query[] = "FIND_IN_SET($class, stories.classes) > 0"; - $countquery[] = "FIND_IN_SET($class, stories.classes) > 0"; - $scountquery[] = "FIND_IN_SET($class, series.classes) > 0"; - } - } - if ($classex) { - foreach ($classex as $class) { - $query[] = "FIND_IN_SET($class, stories.classes) = 0"; - $countquery[] = "FIND_IN_SET($class, stories.classes) = 0"; - $scountquery[] = "FIND_IN_SET($class, series.classes) = 0"; - } - } - // Begin story length - unset($wordcount); - $wordlow = isset($_REQUEST['wordlow']) && isNumber($_REQUEST['wordlow']) ? $_REQUEST['wordlow'] : '-500'; - $wordhigh = isset($_REQUEST['wordhigh']) && isNumber($_REQUEST['wordhigh']) ? $_REQUEST['wordhigh'] : '1000000'; - if ($wordlow != '-500') { - $wordcount = 'stories.wordcount > '.$wordlow; - } - if ($wordhigh != '1000000') { - if ($wordcount) { - $wordcount .= ' AND stories.wordcount < '.$wordhigh; - } else { - $wordcount = 'stories.wordcount < '.$wordhigh; - } - } - if ($wordhigh < $wordlow) { - $wordcount = 'stories.wordcount < '.$wordlow; - } - if (!empty($wordcount)) { - $query[] = "($wordcount)"; - $countquery[] = "($wordcount)"; - } - // End wordcount - - $codeblocks = dbquery('SELECT * FROM '.TABLEPREFIX."fanfiction_codeblocks WHERE code_type = 'browseterms'"); - while ($code = dbassoc($codeblocks)) { - eval($code['code_text']); - } - - $query = (count($query) > 0 ? ' AND '.implode(' AND ', $query) : '').' '._ORDERBY; - $countquery = count($countquery) > 0 ? ' AND '.implode(' AND ', $countquery) : ''; - if (count($scountquery) > 0) { - $scountquery = ' WHERE '.implode(' AND ', $scountquery); - } - search(_STORYQUERY.$query, _STORYCOUNT.$countquery); - $otherresults = array(); - $termArray = array_merge($_GET, $_POST); - $termsList = array(); - foreach ($termArray as $term => $value) { - if ($term == 'submit' || $term == 'wordhigh' || $term == 'wordlow' || empty($value) || $term == 'formname' || $term == 'searchtype') { - continue; - } - $termsList[$term] = "$term=".(is_array($value) ? implode(',', $value) : $value); - } - $terms = implode('&', $termsList); - if (!empty($scountquery)) { - $seriesresults = dbquery(_SERIESCOUNT.$scountquery); - list($scount) = dbrow($seriesresults); - if ($scount > 0) { - $otherresults[] = "<a href='browse.php?type=series$terms'>$scount "._SERIES.'</a>'; - } - } - $codeblocks = dbquery('SELECT * FROM '.TABLEPREFIX."fanfiction_codeblocks WHERE code_type = 'otherresults'"); - while ($code = dbassoc($codeblocks)) { - eval($code['code_text']); - } - if (count($otherresults) > 0) { - $tpl->assign('otherresults', "<div id='otherresults'><span class='label'>"._OTHERRESULTS.':</span> '.implode(', ', $otherresults).'</div>'); - } -} else { - if ($searchtype == 'simple') { - $output .= '<div id="pagetitle">'._SIMPLE."</div><div style='text-align: center;'><form method=\"post\" enctype=\"multipart/form-data\" action=\"searching.php\"> +else { + if($searchtype == "simple") { + $output .= "<div id=\"pagetitle\">"._SIMPLE."</div><div style='text-align: center;'><form method=\"post\" enctype=\"multipart/form-data\" action=\"search.php\"> <div class=\"tblborder\" style=\"width: 320px; padding: 5px; margin: 0 auto;\"> <select name=\"searchtype\"> - <option value=\"penname\">"._PENNAME.'</option> - <option value="title">'._TITLE.'</option> - <option value="summary">'._SUMMARY.'</option>'; - if ($store == 'mysql') { - $output .= '<option value="fulltext">'._FULLTEXT.'</option>'; - } - $output .= '</select> <INPUT type="text" class="textbox" name="searchterm" size="20"> '; - $output .= '<INPUT type="submit" class="button" name="submit" value="'._SUBMIT.'" size="20"> - <div style="font-size: 8pt; text-align: right;"><a href="searching.php?searchtype=advanced">'._ADVANCED.'</a></div></div></form></div>'; - } else { - $output .= '<div id="pagetitle">'._ADVANCED.'</div><div> - <form method="POST" name="form" enctype="multipart/form-data" action="searching.php?searchtype=advanced"> - <div class="tblborder" style="width: 90%; margin: 0 auto; padding: 10px;">'; - if ($multiplecats) { - include 'includes/categories.php'; - $output .= '<input type="hidden" name="formname" value="search">'; - } - $output .= "<div style='float: left; width: 99%;'>"; - if (count($charlist) > 0) { - $output .= '<div style="float: left; width: 49%;"><label for="charname">'._CHARACTERS.": </label><br />\n"; - $output .= '<select name="charid[]" style="width: 90%;" multiple size="5" id="charid">'; - foreach ($charlist as $charid => $info) { - if ($info['catid'] != -1) { - continue; - } - $output .= '<option value="'.$charid.'">'.stripslashes($info['name'])."</option>\n"; - } - $output .= '</select></div>'; - } - $result = dbquery('SELECT rid, rating FROM '.TABLEPREFIX.'fanfiction_ratings ORDER BY rating'); - if (dbnumrows($result)) { - $output .= '<div style="float: left; width: 49%;"><label for="rid">'._RATINGS.':</label><br /><select id="rid" style="width: 90%;" multiple size="5"name="rid[]"><option value="-1">'._ALL.'</option>'; - while ($ratingresults = dbassoc($result)) { - $output .= '<option value="'.$ratingresults['rid'].'">'.$ratingresults['rating']."</option>\n"; - } - $output .= '</select></div>'; - } - $output .= '<div style="clear: both;"> </div>'; - $output .= ' <div style="text-align: center;">'._MULTIPLESELECT.'</div>'; - $result = dbquery('SELECT * FROM '.TABLEPREFIX.'fanfiction_classtypes ORDER BY classtype_name'); - while ($type = dbassoc($result)) { - $result2 = dbquery('SELECT * FROM '.TABLEPREFIX."fanfiction_classes WHERE class_type = '".$type['classtype_id']."' ORDER BY class_name"); - $select = ''; - while ($class = dbassoc($result2)) { - $select .= '<option value="'.$class['class_id'].'">'.$class['class_name'].'</option>'; - } - $output .= '<div> - <div style="float: left; width: 49%; margin-bottom: 1em;"><label for="class_'.$type['classtype_id'].'">'.$type['classtype_title'].' '._INCLUDE.':</label><br /> - <select name="class_'.$type['classtype_id'].'[]" id="class_'.$type['classtype_id']."\" style=\"width: 95%;\" multiple size=\"5\">$select</select></div> - <div style=\"float: left; width: 49%; margin-bottom: 1em;\"><label for=\"exclass_".$type['classtype_id'].'">'.$type['classtype_title'].' '._EXCLUDE.':</label><br /> - <select name="exclass_'.$type['classtype_id'].'[]" id="exclass_'.$type['classtype_id']."\" style=\"width: 95%;\" multiple size=\"5\">$select</select></div> + <option value=\"penname\">"._PENNAME."</option> + <option value=\"title\">"._TITLE."</option> + <option value=\"summary\">"._SUMMARY."</option>"; + if($store == "mysql") + $output .= "<option value=\"fulltext\">"._FULLTEXT."</option>"; + $output .= "</select> <INPUT type=\"text\" class=\"textbox\" name=\"searchterm\" size=\"20\"> "; + $output .= "<INPUT type=\"submit\" class=\"button\" name=\"submit\" value=\""._SUBMIT."\" size=\"20\"> + <div style=\"font-size: 8pt; text-align: right;\"><a href=\"search.php?searchtype=advanced\">"._ADVANCED."</a></div></div></form></div>"; + } + else { + $output .= "<div id=\"pagetitle\">"._ADVANCED."</div><div> + <form method=\"POST\" name=\"form\" enctype=\"multipart/form-data\" action=\"search.php?searchtype=advanced\"> + <div class=\"tblborder\" style=\"width: 90%; margin: 0 auto; padding: 10px;\">"; + if($multiplecats) { + include("includes/categories.php"); + $output .= "<input type=\"hidden\" name=\"formname\" value=\"search\">"; + } + $output .= "<div style='float: left; width: 99%;'>"; + if(count($charlist) > 0) { + $output .= "<div style=\"float: left; width: 49%;\"><label for=\"charname\">"._CHARACTERS.": </label><br />\n"; + $output .= "<select name=\"charid[]\" style=\"width: 90%;\" multiple size=\"5\" id=\"charid\">"; + foreach($charlist as $charid => $info) { + if($info['catid'] != -1) continue; + $output .= "<option value=\"".$charid."\">" .stripslashes($info['name'] ). "</option>\n"; + } + $output .= "</select></div>"; + } + $result = dbquery("SELECT rid, rating FROM ".TABLEPREFIX."fanfiction_ratings ORDER BY rating"); + if(dbnumrows($result)) { + $output .= "<div style=\"float: left; width: 49%;\"><label for=\"rid\">"._RATINGS.":</label><br /><select id=\"rid\" style=\"width: 90%;\" multiple size=\"5\"name=\"rid[]\"><option value=\"-1\">"._ALL."</option>"; + while ($ratingresults = dbassoc($result)) + { + $output .= "<option value=\"".$ratingresults['rid']."\">".$ratingresults['rating']."</option>\n"; + } + $output .= "</select></div>"; + } + $output .= "<div style=\"clear: both;\"> </div>"; + $output .= " <div style=\"text-align: center;\">"._MULTIPLESELECT."</div>"; + $result = dbquery("SELECT * FROM ".TABLEPREFIX."fanfiction_classtypes ORDER BY classtype_name"); + while($type = dbassoc($result)) { + $result2 = dbquery("SELECT * FROM ".TABLEPREFIX."fanfiction_classes WHERE class_type = '".$type['classtype_id']."' ORDER BY class_name"); + $select = ""; + while ($class = dbassoc($result2)) { + $select .= "<option value=\"".$class['class_id']."\">".$class['class_name']."</option>"; + } + $output .= "<div> + <div style=\"float: left; width: 49%; margin-bottom: 1em;\"><label for=\"class_".$type['classtype_id']."\">".$type['classtype_title']." "._INCLUDE.":</label><br /> + <select name=\"class_".$type['classtype_id']."[]\" id=\"class_".$type['classtype_id']."\" style=\"width: 95%;\" multiple size=\"5\">$select</select></div> + <div style=\"float: left; width: 49%; margin-bottom: 1em;\"><label for=\"exclass_".$type['classtype_id']."\">".$type['classtype_title']." "._EXCLUDE.":</label><br /> + <select name=\"exclass_".$type['classtype_id']."[]\" id=\"exclass_".$type['classtype_id']."\" style=\"width: 95%;\" multiple size=\"5\">$select</select></div> </div>"; - } - $output .= '</div><label for="completed">'._COMPLETEONLY.':</label> <input type="checkbox" class="checkbox" id="completed" name="completed" value="ON"><label for="wordlow">'._WORDCOUNT.":</label> <select size=\"1\" id=\"wordlow\" name=\"wordlow\"> + } + $output .= "</div><label for=\"completed\">"._COMPLETEONLY.":</label> <input type=\"checkbox\" class=\"checkbox\" id=\"completed\" name=\"completed\" value=\"ON\"><label for=\"wordlow\">"._WORDCOUNT.":</label> <select size=\"1\" id=\"wordlow\" name=\"wordlow\"> <option value='-500'>< 500</option> <option>1000</option> <option>5000</option> @@ -360,17 +323,17 @@ <option>5000</option> <option>1000</option> <option value='-500'>< 500</option> - </select><br /><br /><label for=\"searchterm\">"._SEARCHTERM.': </label><INPUT type="text" class="textbox" name="searchterm" id="searchterm" size="20"> + </select><br /><br /><label for=\"searchterm\">"._SEARCHTERM.": </label><INPUT type=\"text\" class=\"textbox\" name=\"searchterm\" id=\"searchterm\" size=\"20\"> - <label for="sortorder">'._SORT.':</label> <select name="sortorder" id="sortorder"><option value="alpha">'._ALPHA.'</option><option value="update">'._MOSTRECENT.'</option></select>'; - $codequery = dbquery('SELECT * FROM '.TABLEPREFIX."fanfiction_codeblocks WHERE code_type = 'searchform'"); - while ($code = dbassoc($codequery)) { - eval($code['code_text']); - } - $output .= "<div id='submitdiv'><input name=\"submit\" id=\"submit\" value=\""._SUBMIT.'" type="submit" class="button"></div></div></form></div>'; - } + <label for=\"sortorder\">"._SORT.":</label> <select name=\"sortorder\" id=\"sortorder\"><option value=\"alpha\">"._ALPHA."</option><option value=\"update\">"._MOSTRECENT."</option></select>"; + $codequery = dbquery("SELECT * FROM ".TABLEPREFIX."fanfiction_codeblocks WHERE code_type = 'searchform'"); + while($code = dbassoc($codequery)) { + eval($code['code_text']); + } +$output .= "<div id='submitdiv'><input name=\"submit\" id=\"submit\" value=\""._SUBMIT."\" type=\"submit\" class=\"button\"></div></div></form></div>"; + } } -$tpl->assign('output', $output); +$tpl->assign("output", $output); $tpl->printToScreen(); -dbclose(); - +dbclose( ); +?>