#TITLE Archives Mod 1.0.0 by Toxic #QUESTION This will install the Archives Mod for tForum version b0.94.2.2. If you have installed another version some things might not work as they should. Do you want to continue? #ELSE #CANCEL #ENDIF #SQL CREATE TABLE ta_events ( EventID bigint(20) unsigned NOT NULL default '0', EventDate int(11) unsigned NOT NULL default '0', TopicID bigint(20) unsigned NOT NULL default '0', PrivEventID bigint(20) unsigned NOT NULL default '0', PRIMARY KEY (EventID), KEY TopicID (TopicID), KEY PrivEventID (PrivEventID) ) TYPE=MyISAM; CREATE TABLE ta_messages ( MsgID bigint(20) unsigned NOT NULL default '0', Subject tinytext NOT NULL, Message text NOT NULL, TopicID int(10) unsigned NOT NULL default '0', PosterID int(10) unsigned NOT NULL default '0', PosterName varchar(50) NOT NULL default '', DatePosted int(11) unsigned NOT NULL default '0', DateEdited int(11) unsigned NOT NULL default '0', EditedAuthor tinytext NOT NULL, PosterIP varchar(15) NOT NULL default '', PosticonID tinyint(3) unsigned NOT NULL default '1', MsgTypeMask smallint(5) NOT NULL default '0', PRIMARY KEY (MsgID), KEY TopicID (TopicID), KEY PosterID (PosterID), KEY MsgTypeMask (MsgTypeMask) ) TYPE=MyISAM; CREATE TABLE ta_polloptions ( OptionID bigint(20) unsigned NOT NULL default '0', OptionText tinytext NOT NULL, OptionCount smallint(5) unsigned NOT NULL default '0', PollID int(10) unsigned NOT NULL default '0', PRIMARY KEY (OptionID), KEY PollID (PollID) ) TYPE=MyISAM; CREATE TABLE ta_polls ( PollID int(10) unsigned NOT NULL default '0', PollTitle tinytext NOT NULL, TopicID int(10) unsigned NOT NULL default '0', PRIMARY KEY (PollID), KEY TopicID (TopicID) ) TYPE=MyISAM; CREATE TABLE ta_pollvotes ( PollID int(10) unsigned NOT NULL default '0', UserID int(10) unsigned NOT NULL default '0', OptionSelected int(10) unsigned NOT NULL default '0', PRIMARY KEY (PollID,UserID), UNIQUE KEY PollID (PollID,UserID) ) TYPE=MyISAM; CREATE TABLE ta_topics ( TopicID int(10) unsigned NOT NULL default '0', BoardID smallint(5) unsigned NOT NULL default '0', DateEdited int(11) unsigned NOT NULL default '0', numPosts int(10) unsigned NOT NULL default '0', numViews int(10) unsigned NOT NULL default '0', FirstMsgID bigint(20) unsigned NOT NULL default '0', LastMsgID bigint(20) unsigned NOT NULL default '0', TopicTypeMask smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (TopicID), KEY LastMsgID (LastMsgID), KEY FirstMsgID (FirstMsgID), KEY BoardID (BoardID), KEY DateEdited (DateEdited) ) TYPE=MyISAM; #OPEN admin/adminfunctions.php #FIND case 'mlockmsg': @require('./message.php'); MLockMSG(); break; #ADDAFTER case 'marchive': @require('./message.php'); MArchive(); break; #OPEN admin/index.php #FIND   Remove Attachments
#ADDAFTER   Mass Archive
#OPEN admin/message.php #ADD function MArchive() { global $fSettings,$days,$days2; if ($_POST['submit']=='OK') { $sql = new DB_SQL; $query = 'SELECT A.TopicID,B.PollID,C.EventID FROM '.PREFIX.'topics A LEFT OUTER JOIN '.PREFIX.'polls B ON A.TopicID=B.TopicID LEFT OUTER JOIN '.PREFIX.'events C ON A.TopicID=C.TopicID WHERE DateEdited<'.(time()-($days*60*60*24)).' AND (EventID IS NULL OR EventDate<'.(time()-($days2*60*60*24)).')'; $sql->query($query); $TopicIDs = $PollIDs = ''; $Events = 0; while(list($TopicID,$PollID,$EventID) = $sql->get_numeric()) { $TopicIDs.= $TopicID.','; if ($PollID) { $PollIDs.= $PollID.','; } if ($EventID) { $Events++; } } $TopicIDs = (strlen($TopicIDs)) ? substr($TopicIDs,0,-1) : '0'; $PollIDs = (strlen($PollIDs)) ? substr($PollIDs,0,-1) : '0'; $query = array(); if ($TopicIDs != '0') { $tables = array('messages','topics','events'); while(list($key,$val) = each($tables)) { $query[] = 'INSERT INTO '.PREFIXA.$val.' SELECT * FROM '.PREFIX.$val.' WHERE TopicID IN ('.$TopicIDs.')'; $query[] = 'DELETE FROM '.PREFIX.$val.' WHERE TopicID IN ('.$TopicIDs.')'; } } if ($PollIDs != '0') { $tables = array('polls','polloptions','pollvotes'); while(list($key,$val) = each($tables)) { $query[] = 'INSERT INTO '.PREFIXA.$val.' SELECT * FROM '.PREFIX.$val.' WHERE PollID IN ('.$PollIDs.')'; $query[] = 'DELETE FROM '.PREFIX.$val.' WHERE PollID IN ('.$PollIDs.')'; } } while(list($key,$val) = each($query)) { $sql->query($val); } echo (($TopicIDs == '0') ? 0 : (substr_count($TopicIDs, ',')+1)).' Topics, '.(($PollIDs == '0') ? 0 : (substr_count($PollIDs, ',')+1)).' Polls and '.$Events.' Events have been archived.'; } else { ?> tForum Administration Area - Mass Lock Messages
Archive topics and polls not active for: days
and events bygone longer than: days
Note: There's NO mass unarchive command (not yet), so be careful, unless you want to unarchive each topic 1 by 1.
You sure you want to archive?

query($query); if ($sql->num_rows()<=0) { UhOh($txt['errNoFile']); #REPLACE $query = 'SELECT CONCAT(FileName,".",FileExtension) FileName,FileData,MIMEType,A.MsgID,BoardID FROM '.PREFIX2.'messages A,'.PREFIX.'uploads B,'.PREFIX2.'topics C,'.PREFIX.'mimetypes D WHERE UploadID='.$_GET['FileID'].' AND A.TopicID=C.TopicID AND A.MsgID=B.MsgID AND D.MIMETypeID=B.MIMETypeID'; $sql->query($query); if ($sql->num_rows()<=0) { $query = 'SELECT CONCAT(FileName,".",FileExtension) FileName,FileData,MIMEType,A.MsgID,BoardID FROM '.(($archives) ? PREFIX : PREFIXA).'messages A,'.PREFIX.'uploads B,'.(($archives) ? PREFIX : PREFIXA).'topics C,'.PREFIX.'mimetypes D WHERE UploadID='.$_GET['FileID'].' AND A.TopicID=C.TopicID AND A.MsgID=B.MsgID AND D.MIMETypeID=B.MIMETypeID'; $sql->query($query); if ($sql->num_rows()<=0) { UhOh($txt['errNoFile']); } header('misc.php?action=downloadfile&FileID='.$_GET['FileID'].'&archives='.(($archives) ? '0' : '1')); die(); #OPEN includes/functions.php #FIND UpdateActiveList(); return $fSettings; #ADDBEFORE if ($GLOBALS['archives']) $fSettings['ForumName'].= ' Archives'; #FIND $query = 'SELECT COUNT(TopicID),SUM(numPosts) FROM '.PREFIX.'topics'; #REPLACE $query = 'SELECT COUNT(TopicID),SUM(numPosts) FROM '.PREFIX2.'topics'; #FIND $query = 'SELECT A.*,BoardID FROM '.PREFIX.'messages A,'.PREFIX.'topics B #REPLACE $query = 'SELECT A.*,BoardID FROM '.PREFIX2.'messages A,'.PREFIX2.'topics B #FIND function is_read_board($BoardID) { $sql = new DB_SQL; #REPLACE function is_read_board($BoardID) { if ($GLOBALS['archives']) return(TRUE); $sql = new DB_SQL; #FIND $query = 'SELECT A.TopicID,BoardID,numPosts,numViews,TopicTypeMask,A.DateEdited,FirstMsgID,LastMsgID, B.Subject,B.PosterID,B.PosterName,B.DatePosted,B.PosticonID,C.PosterID,C.PosterName FROM '.PREFIX.'topics A,'.PREFIX.'messages B,'.PREFIX.'messages C #REPLACE $query = 'SELECT A.TopicID,BoardID,numPosts,numViews,TopicTypeMask,A.DateEdited,FirstMsgID,LastMsgID, B.Subject,B.PosterID,B.PosterName,B.DatePosted,B.PosticonID,C.PosterID,C.PosterName FROM '.PREFIX2.'topics A,'.PREFIX2.'messages B,'.PREFIX2.'messages C #FIND setcookie('tfcookie',$theCookie,$expire,$DomainInfo['path'],$Domain,0); $_COOKIE['tfcookie'] = $theCookie; #ADDAFTER setcookie("archives", $GLOBALS['archives']); // reset the cookie each time #FIND function GrabCorrectPage($TopicID, $MsgID) { $sql = new DB_SQL; $query = 'SELECT COUNT(MsgID) FROM '.PREFIX.'messages #REPLACE function GrabCorrectPage($TopicID, $MsgID) { $sql = new DB_SQL; $query = 'SELECT COUNT(MsgID) FROM '.PREFIX2.'messages #FIND function GrabLastMsgInfo($TopicID) { $sql = new DB_SQL; $query = 'SELECT numPosts FROM '.PREFIX.'topics #REPLACE function GrabLastMsgInfo($TopicID,$prefix=PREFIX2) { global $txt; $sql = new DB_SQL; $query = 'SELECT numPosts FROM '.$prefix.'topics #FIND FROM '.PREFIX.'messages A,'.PREFIX.'topics B WHERE A.MsgID=\''.$MsgID.'\' AND A.TopicID=B.TopicID'; } elseif ($TopicID) { $query = 'SELECT BoardID,TopicID FROM '.PREFIX.'topics #REPLACE FROM '.PREFIX2.'messages A,'.PREFIX2.'topics B WHERE A.MsgID=\''.$MsgID.'\' AND A.TopicID=B.TopicID'; } elseif ($TopicID) { $query = 'SELECT BoardID,TopicID FROM '.PREFIX2.'topics #FIND if ($TopicID) $query .= PREFIX.'topics B, '.PREFIX.'messages D, '; #REPLACE if ($TopicID) $query .= PREFIX2.'topics B, '.PREFIX2.'messages D, '; #FIND return $boards; } // bool is_read_topic( int TopicID, int LastMsgDate ) // Returns TRUE if the TopicID has been read which is determined if the TopicID // is located within the user's cookie readboard string value OR if the user's // cookie value for readtime is greater than the argument, LastMsgDate. function is_read_topic($TopicID,$LastMsgDate) { $sql = new DB_SQL; #REPLACE if ($GLOBALS['archives']) return(array()); return $boards; } // bool is_read_topic( int TopicID, int LastMsgDate ) // Returns TRUE if the TopicID has been read which is determined if the TopicID // is located within the user's cookie readboard string value OR if the user's // cookie value for readtime is greater than the argument, LastMsgDate. function is_read_topic($TopicID,$LastMsgDate) { if ($GLOBALS['archives']) return(TRUE); $sql = new DB_SQL; #ADD // void ToggleArchives ( int TopicID, bool ByUser ) // Sends a topic to archives or restores it from archives. function ToggleArchives($TopicID,$ByUser=0) { global $CookieInfo,$txt; if ($TopicID==0) { UhOh($txt['errNoTopicID']); } $sql = new DB_SQL; $query = 'SELECT A.BoardID, B.PollID FROM '.PREFIX.'topics A LEFT OUTER JOIN '.PREFIX.'polls B ON A.TopicID=B.TopicID WHERE A.TopicID=\''.$TopicID.'\''; $sql->query($query); if ($sql->num_rows()>0) { define('PREFIXS',PREFIX); define('PREFIXD',PREFIXA); list($BoardID,$PollID) = $sql->get_numeric(); } else { $query = 'SELECT A.BoardID,B.PollID FROM '.PREFIXA.'topics A LEFT OUTER JOIN '.PREFIXA.'polls B ON A.TopicID=B.TopicID WHERE A.TopicID=\''.$TopicID.'\''; $sql->query($query); if ($sql->num_rows()>0) { define('PREFIXS',PREFIXA); define('PREFIXD',PREFIX); list($BoardID,$PollID) = $sql->get_numeric(); } else { UhOh($txt['errTopicIDNotFound']); } } if ($ByUser) { $CurrentUser = GetBoardLevelUserInfo($CookieInfo,$BoardID); @require('./includes/usergrouppermdefs.php'); if ($fSettings['shutdown']=='y' && !CheckBit($CurrentUser['GPermMask'],$UGPermDefs,'canviewlockedforum')) { SomeMessage($txt['ForumShutdown'],$txt['ForumShutdownMsg']); } if (!$CurrentUser['ismod']) { UhOh($txt['errNoArchivesPerm']); } } $query = array(); $tables = array('messages','topics','events'); while(list($key,$val) = each($tables)) { $query[] = 'INSERT INTO '.PREFIXD.$val.' SELECT * FROM '.PREFIXS.$val.' AS S WHERE S.TopicID=\''.$TopicID.'\''; $query[] = 'DELETE FROM '.PREFIXS.$val.' WHERE TopicID=\''.$TopicID.'\''; } if ($PollID) { $tables = array('polls','polloptions','pollvotes'); while(list($key,$val) = each($tables)) { $query[] = 'INSERT INTO '.PREFIXD.$val.' SELECT * FROM '.PREFIXS.$val.' AS S WHERE S.PollID=\''.$PollID.'\''; $query[] = 'DELETE FROM '.PREFIXS.$val.' WHERE PollID=\''.$PollID.'\''; } } while(list($key,$val) = each($query)) { $sql->query($val); } if ($ByUser) { header('Location: viewtopic.php?TopicID='.$TopicID); } else { return ((PREFIXD == PREFIXA) ? 1 : 0); } } #OPEN includes/pollfunctions.php #FIND FROM '.PREFIX.'polls WHERE TopicID='.intval($TopicID); $sql->query($query); list($PollID) = $sql->get_numeric(); if (CheckBit($tType,$TopicTypes,'locked')) return PrintPollResult($PollID); $query = 'SELECT PollID FROM '.PREFIX.'pollvotes #REPLACE FROM '.PREFIX2.'polls WHERE TopicID='.intval($TopicID); $sql->query($query); list($PollID) = $sql->get_numeric(); if (CheckBit($tType,$TopicTypes,'locked')) return PrintPollResult($PollID); $query = 'SELECT PollID FROM '.PREFIX2.'pollvotes #FIND FROM '.PREFIX.'polls WHERE PollID='.$PollID; $sql->query($query); list($ent['polltitle']) = $sql->get_numeric(); if ($fSettings['Censor']=='y') $ent['polltitle'] = CensorLine($Censor,$ent['polltitle']); $output = ParseTemp($templates['first'],$ent); $query = 'SELECT * FROM '.PREFIX.'polloptions #REPLACE FROM '.PREFIX2.'polls WHERE PollID='.$PollID; $sql->query($query); list($ent['polltitle']) = $sql->get_numeric(); if ($fSettings['Censor']=='y') $ent['polltitle'] = CensorLine($Censor,$ent['polltitle']); $output = ParseTemp($templates['first'],$ent); $query = 'SELECT * FROM '.PREFIX2.'polloptions #FIND FROM '.PREFIX.'polls WHERE PollID='.$PollID; $sql->query($query); list($ent['polltitle']) = $sql->get_numeric(); if ($fSettings['Censor']=='y') { $ent['polltitle'] = CensorLine($Censor,$ent['polltitle']); } $output = ParseTemp($templates['first'],$ent); $query = 'SELECT SUM(OptionCount) FROM '.PREFIX.'polloptions WHERE PollID='.intval($PollID); $sql->query($query); list($ent['totalvotes']) = $sql->get_numeric(); $query = 'SELECT * FROM '.PREFIX.'polloptions #REPLACE FROM '.PREFIX2.'polls WHERE PollID='.$PollID; $sql->query($query); list($ent['polltitle']) = $sql->get_numeric(); if ($fSettings['Censor']=='y') { $ent['polltitle'] = CensorLine($Censor,$ent['polltitle']); } $output = ParseTemp($templates['first'],$ent); $query = 'SELECT SUM(OptionCount) FROM '.PREFIX2.'polloptions WHERE PollID='.intval($PollID); $sql->query($query); list($ent['totalvotes']) = $sql->get_numeric(); $query = 'SELECT * FROM '.PREFIX2.'polloptions #OPEN language/text.php #FIND $txt['NormalizeInfo'] = 'Removes special status from a topic'; #ADDAFTER $txt['ArchivesInfo'] = 'Sends a topic to or restores a topic from archives'; #FIND $txt['Normalize'] = 'Normalize'; #ADDAFTER $txt['Archives'] = 'Archives'; #FIND $txt['errNoNormalizePerm'] = 'You do not have permission to normalize this topic.'; #ADDAFTER $txt['errNoArchivesPerm'] = 'You do not have permission to send topics to archives or to restore them.'; #OPEN templates/buttons.php #FIND $buttons['top_forumhome'] = $txt['Home']; #ADDAFTER $buttons['top_archives'] = $txt['Archives']; #FIND $buttons['Normalize'] = '['.$txt['Normalize'].']'; #ADDAFTER $buttons['Archives'] = '['.$txt['Archives'].']'; #OPEN templates/header.html #FIND | #REPLACE | | #OPEN templates/index.html #FIND - #REPLACE - #OPEN templates/viewboard.html #FIND
 
#REPLACE
 
#OPEN templates/viewtopic.html #FIND     #REPLACE    #OPEN config.php #FIND define('PREFIX','tf_'); #ADDAFTER define('PREFIXA','ta_'); define('PREFIX2',($archives) ? PREFIXA : PREFIX); #OPEN db.php #FIND query($query); $row = $sql->get_assoc(); if ($row['MsgID']==$MsgID) { // Remove all attachments @require('./includes/msgtypedefs.php'); $query = 'SELECT MsgID FROM '.PREFIX.'messages WHERE TopicID='.$TopicID.' AND (MsgTypeMask&'.(1<0'; $sql->query($query); if ($sql->num_rows()>0) { @require('./includes/uploads.php'); while(list($MsgID) = $sql->get_numeric()) { DeleteAttachment($MsgID); } } $query = 'DELETE FROM '.PREFIX.'messages WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); $affected = $sql->affected_rows(); $query = 'DELETE FROM '.PREFIX.'topics WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); if (CheckBit($tType,$TopicTypes,'poll')) //if topic contains poll then wipe out the poll as well { $query = 'SELECT PollID FROM '.PREFIX.'polls WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); list($PollID) = $sql->get_numeric(); $query = 'DELETE FROM '.PREFIX.'polls WHERE PollID=\''.$PollID.'\''; $sql->query($query); $query = 'DELETE FROM '.PREFIX.'polloptions WHERE PollID=\''.$PollID.'\''; $sql->query($query); $query = 'DELETE FROM '.PREFIX.'pollvotes WHERE PollID=\''.$PollID.'\''; $sql->query($query); } if (CheckBit($tType,$TopicTypes,'event')) //if topic is an event then wipe out the event as well { $query = 'DELETE FROM '.PREFIX.'events WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); } header('Location: viewboard.php?BoardID='.$BoardID); } else { @require('./includes/msgtypedefs.php'); if (CheckBit($MsgTypeMask,$MsgPostDefs,'attachment')) { @require('./includes/uploads.php'); DeleteAttachment($MsgID); } $query = 'DELETE FROM '.PREFIX.'messages WHERE MsgID='.$MsgID; $sql->query($query); $query = 'SELECT MsgID,DatePosted,PosterID,PosterName FROM '.PREFIX.'messages WHERE TopicID=\''.$TopicID.'\' ORDER BY DatePosted DESC LIMIT 1'; $sql->query($query); $row = $sql->get_assoc(); $query = 'UPDATE '.PREFIX.'topics #REPLACE FROM '.PREFIX2.'messages WHERE TopicID=\''.$TopicID.'\' ORDER BY MsgID ASC LIMIT 1'; $sql->query($query); $row = $sql->get_assoc(); if ($row['MsgID']==$MsgID) { // Remove all attachments @require('./includes/msgtypedefs.php'); $query = 'SELECT MsgID FROM '.PREFIX2.'messages WHERE TopicID='.$TopicID.' AND (MsgTypeMask&'.(1<0'; $sql->query($query); if ($sql->num_rows()>0) { @require('./includes/uploads.php'); while(list($MsgID) = $sql->get_numeric()) { DeleteAttachment($MsgID); } } $query = 'DELETE FROM '.PREFIX2.'messages WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); $affected = $sql->affected_rows(); $query = 'DELETE FROM '.PREFIX2.'topics WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); if (CheckBit($tType,$TopicTypes,'poll')) //if topic contains poll then wipe out the poll as well { $query = 'SELECT PollID FROM '.PREFIX2.'polls WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); list($PollID) = $sql->get_numeric(); $query = 'DELETE FROM '.PREFIX2.'polls WHERE PollID=\''.$PollID.'\''; $sql->query($query); $query = 'DELETE FROM '.PREFIX2.'polloptions WHERE PollID=\''.$PollID.'\''; $sql->query($query); $query = 'DELETE FROM '.PREFIX2.'pollvotes WHERE PollID=\''.$PollID.'\''; $sql->query($query); } if (CheckBit($tType,$TopicTypes,'event')) //if topic is an event then wipe out the event as well { $query = 'DELETE FROM '.PREFIX2.'events WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); } header('Location: viewboard.php?BoardID='.$BoardID); } else { @require('./includes/msgtypedefs.php'); if (CheckBit($MsgTypeMask,$MsgPostDefs,'attachment')) { @require('./includes/uploads.php'); DeleteAttachment($MsgID); } $query = 'DELETE FROM '.PREFIX2.'messages WHERE MsgID='.$MsgID; $sql->query($query); $query = 'SELECT MsgID,DatePosted,PosterID,PosterName FROM '.PREFIX2.'messages WHERE TopicID=\''.$TopicID.'\' ORDER BY DatePosted DESC LIMIT 1'; $sql->query($query); $row = $sql->get_assoc(); $query = 'UPDATE '.PREFIX2.'topics #FIND FROM '.PREFIX.'topics WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); if ($sql->num_rows()>0) { list($BoardID,$tType) = $sql->get_numeric(); $CurrentUser = GetBoardLevelUserInfo($CookieInfo,$BoardID); @require('./includes/usergrouppermdefs.php'); if ($fSettings['shutdown']=='y' && !CheckBit($CurrentUser['GPermMask'],$UGPermDefs,'canviewlockedforum')) { SomeMessage($txt['ForumShutdown'],$txt['ForumShutdownMsg']); } if (!$CurrentUser['ismod']) { UhOh($txt['errNoLockPerm']); } $tType = (CheckBit($tType,$TopicTypes,'locked')) ? UnsetBit($tType,$TopicTypes,'locked') : SetBit($tType,$TopicTypes,'locked'); $query = 'UPDATE '.PREFIX.'topics #REPLACE FROM '.PREFIX2.'topics WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); if ($sql->num_rows()>0) { list($BoardID,$tType) = $sql->get_numeric(); $CurrentUser = GetBoardLevelUserInfo($CookieInfo,$BoardID); @require('./includes/usergrouppermdefs.php'); if ($fSettings['shutdown']=='y' && !CheckBit($CurrentUser['GPermMask'],$UGPermDefs,'canviewlockedforum')) { SomeMessage($txt['ForumShutdown'],$txt['ForumShutdownMsg']); } if (!$CurrentUser['ismod']) { UhOh($txt['errNoLockPerm']); } $tType = (CheckBit($tType,$TopicTypes,'locked')) ? UnsetBit($tType,$TopicTypes,'locked') : SetBit($tType,$TopicTypes,'locked'); $query = 'UPDATE '.PREFIX2.'topics #FIND FROM '.PREFIX.'topics WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); if ($sql->num_rows()>0) { list($BoardID,$tType) = $sql->get_numeric(); $CurrentUser = GetBoardLevelUserInfo($CookieInfo,$BoardID); @require('./includes/usergrouppermdefs.php'); if ($fSettings['shutdown']=='y' && !CheckBit($CurrentUser['GPermMask'],$UGPermDefs,'canviewlockedforum')) { SomeMessage($txt['ForumShutdown'],$txt['ForumShutdownMsg']); } if (!$CurrentUser['ismod']) { UhOh($txt['errNoUnstickPerm']); } if (!CheckBit($tType,$TopicTypes,'sticky')) { $tType = SetBit($tType,$TopicTypes,'sticky'); } else // If it's stuck already, unstick it. { $tType = UnsetBit($tType,$TopicTypes,'sticky'); } $query = 'UPDATE '.PREFIX.'topics #REPLACE FROM '.PREFIX2.'topics WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); if ($sql->num_rows()>0) { list($BoardID,$tType) = $sql->get_numeric(); $CurrentUser = GetBoardLevelUserInfo($CookieInfo,$BoardID); @require('./includes/usergrouppermdefs.php'); if ($fSettings['shutdown']=='y' && !CheckBit($CurrentUser['GPermMask'],$UGPermDefs,'canviewlockedforum')) { SomeMessage($txt['ForumShutdown'],$txt['ForumShutdownMsg']); } if (!$CurrentUser['ismod']) { UhOh($txt['errNoUnstickPerm']); } if (!CheckBit($tType,$TopicTypes,'sticky')) { $tType = SetBit($tType,$TopicTypes,'sticky'); } else // If it's stuck already, unstick it. { $tType = UnsetBit($tType,$TopicTypes,'sticky'); } $query = 'UPDATE '.PREFIX2.'topics #FIND FROM '.PREFIX.'topics WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); if ($sql->num_rows()<=0) { UhOh($txt['errTopicIDNotFound']); } list($OriginalBoardID,$tType) = $sql->get_numeric(); #REPLACE FROM '.PREFIX2.'topics WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); if ($sql->num_rows()<=0) { UhOh($txt['errTopicIDNotFound']); } list($OriginalBoardID,$tType) = $sql->get_numeric(); #FIND $query = 'UPDATE '.PREFIX.'topics SET BoardID=\''.$BoardID.'\', TopicTypeMask=\''.$tType.'\' WHERE TopicID=\''.$TopicID.'\''; #REPLACE $query = 'UPDATE '.PREFIX2.'topics SET BoardID=\''.$BoardID.'\', TopicTypeMask=\''.$tType.'\' WHERE TopicID=\''.$TopicID.'\''; #FIND FROM '.PREFIX.'topics WHERE TopicID=\''.$TopicID.'\''; if ($TargetTopicID>0) #REPLACE FROM '.PREFIX2.'topics WHERE TopicID=\''.$TopicID.'\''; if ($TargetTopicID>0) #FIND FROM '.PREFIX.'pollvotes WHERE PollID=\''.$DeletePoll.'\''; $sql->query($query); $query = 'DELETE FROM '.PREFIX.'polloptions WHERE PollID=\''.$DeletePoll.'\''; $sql->query($query); $query = 'DELETE FROM '.PREFIX.'polls WHERE PollID=\''.$DeletePoll.'\''; $sql->query($query); } } else { $query = 'SELECT PollID,PollTitle FROM '.PREFIX.'polls #REPLACE FROM '.PREFIX2.'pollvotes WHERE PollID=\''.$DeletePoll.'\''; $sql->query($query); $query = 'DELETE FROM '.PREFIX2.'polloptions WHERE PollID=\''.$DeletePoll.'\''; $sql->query($query); $query = 'DELETE FROM '.PREFIX2.'polls WHERE PollID=\''.$DeletePoll.'\''; $sql->query($query); } } else { $query = 'SELECT PollID,PollTitle FROM '.PREFIX2.'polls #FIND FROM '.PREFIX.'events WHERE EventID=\''.$DeleteEvent.'\''; $sql->query($query); } } else { $query = 'SELECT EventID,Subject FROM '.PREFIX.'events A, '.PREFIX.'topics B, '.PREFIX.'messages C #REPLACE FROM '.PREFIX2.'events WHERE EventID=\''.$DeleteEvent.'\''; $sql->query($query); } } else { $query = 'SELECT EventID,Subject FROM '.PREFIX2.'events A, '.PREFIX2.'topics B, '.PREFIX2.'messages C #FIND { $query = 'UPDATE '.PREFIX.'polls SET TopicID=\''.$TargetTopicID.'\' WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); } if (CheckBit($TopicTypeMask,$TopicTypes,'event')) { $query = 'UPDATE '.PREFIX.'events SET TopicID=\''.$TargetTopicID.'\' WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); } $query = 'SELECT SUM(numPosts),SUM(numViews),MAX(DateEdited),BIT_OR(TopicTypeMask),MIN(FirstMsgID),MAX(LastMsgID) FROM '.PREFIX.'topics WHERE TopicID=\''.$TopicID.'\' OR TopicID=\''.$TargetTopicID.'\''; $sql->query($query); list($numPosts,$numViews,$DateEdited,$TopicTypeMask,$FirstMsgID,$LastMsgID) = $sql->get_numeric(); $TopicTypeMask = SetBit($TopicTypeMask,$TopicTypes,'merged'); $query = 'UPDATE '.PREFIX.'topics SET DateEdited=\''.$DateEdited.'\', FirstMsgID=\''.$FirstMsgID.'\', LastMsgID=\''.$LastMsgID.'\', numViews=\''.$numViews.'\', TopicTypeMask=\''.$TopicTypeMask.'\', numPosts=\''.$numPosts.'\' WHERE TopicID=\''.$TargetTopicID.'\''; $sql->query($query); $query = 'UPDATE '.PREFIX.'messages SET TopicID=\''.$TargetTopicID.'\' WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); $query = 'DELETE FROM '.PREFIX.'topics WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); header('Location: viewtopic.php?TopicID='.$TargetTopicID); } else { $query = 'SELECT A.TopicID,B.Subject FROM '.PREFIX.'topics A,'.PREFIX.'messages B #REPLACE { $query = 'UPDATE '.PREFIX2.'polls SET TopicID=\''.$TargetTopicID.'\' WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); } if (CheckBit($TopicTypeMask,$TopicTypes,'event')) { $query = 'UPDATE '.PREFIX2.'events SET TopicID=\''.$TargetTopicID.'\' WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); } $query = 'SELECT SUM(numPosts),SUM(numViews),MAX(DateEdited),BIT_OR(TopicTypeMask),MIN(FirstMsgID),MAX(LastMsgID) FROM '.PREFIX2.'topics WHERE TopicID=\''.$TopicID.'\' OR TopicID=\''.$TargetTopicID.'\''; $sql->query($query); list($numPosts,$numViews,$DateEdited,$TopicTypeMask,$FirstMsgID,$LastMsgID) = $sql->get_numeric(); $TopicTypeMask = SetBit($TopicTypeMask,$TopicTypes,'merged'); $query = 'UPDATE '.PREFIX2.'topics SET DateEdited=\''.$DateEdited.'\', FirstMsgID=\''.$FirstMsgID.'\', LastMsgID=\''.$LastMsgID.'\', numViews=\''.$numViews.'\', TopicTypeMask=\''.$TopicTypeMask.'\', numPosts=\''.$numPosts.'\' WHERE TopicID=\''.$TargetTopicID.'\''; $sql->query($query); $query = 'UPDATE '.PREFIX2.'messages SET TopicID=\''.$TargetTopicID.'\' WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); $query = 'DELETE FROM '.PREFIX2.'topics WHERE TopicID=\''.$TopicID.'\''; $sql->query($query); header('Location: viewtopic.php?TopicID='.$TargetTopicID); } else { $query = 'SELECT A.TopicID,B.Subject FROM '.PREFIX2.'topics A,'.PREFIX2.'messages B #FIND FROM '.PREFIX.'topics WHERE TopicID=\''.$_GET['TopicID'].'\''; $sql->query($query); list($BoardID,$tType) = $sql->get_numeric(); $CurrentUser = GetBoardLevelUserInfo($CookieInfo,$BoardID); if (!($CurrentUser['ismod'])) { UhOh($txt['errNoNormalizePerm']); } @require('./includes/usergrouppermdefs.php'); if ($fSettings['shutdown']=='y' && !CheckBit($CurrentUser['GPermMask'],$UGPermDefs,'canviewlockedforum')) { SomeMessage($txt['ForumShutdown'],$txt['ForumShutdownMsg']); } $query = 'UPDATE '.PREFIX.'topics #REPLACE FROM '.PREFIX2.'topics WHERE TopicID=\''.$_GET['TopicID'].'\''; $sql->query($query); list($BoardID,$tType) = $sql->get_numeric(); $CurrentUser = GetBoardLevelUserInfo($CookieInfo,$BoardID); if (!($CurrentUser['ismod'])) { UhOh($txt['errNoNormalizePerm']); } @require('./includes/usergrouppermdefs.php'); if ($fSettings['shutdown']=='y' && !CheckBit($CurrentUser['GPermMask'],$UGPermDefs,'canviewlockedforum')) { SomeMessage($txt['ForumShutdown'],$txt['ForumShutdownMsg']); } $query = 'UPDATE '.PREFIX2.'topics #FIND $query = 'SELECT PosterName,Subject,Message,MsgTypeMask FROM '.PREFIX.'messages WHERE TopicID='.$TopicID.' ORDER BY MsgID DESC LIMIT 5'; #REPLACE $query = 'SELECT PosterName,Subject,Message,MsgTypeMask FROM '.PREFIX2.'messages WHERE TopicID='.$TopicID.' ORDER BY MsgID DESC LIMIT 5'; #FIND case 'normalize': NormalizeTopic(); break; #ADDAFTER case 'archives': ToggleArchives($TopicID,1); break; #OPEN misc.php #FIND $query = 'SELECT MsgID FROM '.PREFIX.'messages WHERE TopicID='.intval($TopicID).' #REPLACE $query = 'SELECT MsgID FROM '.PREFIX2.'messages WHERE TopicID='.intval($TopicID).' #FIND $query = 'SELECT MsgID FROM '.PREFIX.'messages WHERE TopicID=\''.$TopicID.'\' #REPLACE $query = 'SELECT MsgID FROM '.PREFIX2.'messages WHERE TopicID=\''.$TopicID.'\' #FIND function GotoMsg() { global $fSettings,$txt; $MsgID = (isset($_GET['MsgID'])) ? intval($_GET['MsgID']) : 0; if ($MsgID==0) { UhOh($txt['errNoMsgID']); } $sql = new DB_SQL; $query = 'SELECT TopicID FROM '.PREFIX.'messages WHERE MsgID='.$MsgID; $sql->query($query); if ($sql->num_rows()<=0) { UhOh($txt['errMessageIDNotFound']); } list($TopicID) = $sql->get_numeric(); if (intval($TopicID)==0) { UhOh($txt['errMessageIDNotFound']); } header('Location: viewtopic.php?TopicID='.$TopicID.'&page='.GrabCorrectPage($TopicID, $MsgID).'#'.$MsgID); } #REPLACE function GotoMsg() { global $fSettings,$txt,$archives; $MsgID = (isset($_GET['MsgID'])) ? intval($_GET['MsgID']) : 0; if ($MsgID==0) { UhOh($txt['errNoMsgID']); } $sql = new DB_SQL; $query = 'SELECT TopicID FROM '.PREFIX2.'messages WHERE MsgID='.$MsgID; $sql->query($query); if ($sql->num_rows()<=0) { $query = 'SELECT TopicID FROM '.(($archives) ? PREFIX : PREFIXA).'messages WHERE MsgID='.$MsgID; $sql->query($query); if ($sql->num_rows()<=0) { UhOh($txt['errMessageIDNotFound']); } $archives = ($archives) ? 0 : 1; } list($TopicID) = $sql->get_numeric(); if (intval($TopicID)==0) { UhOh($txt['errMessageIDNotFound']); } header('Location: viewtopic.php?TopicID='.$TopicID.'&archives='.$archives.'&page='.GrabCorrectPage($TopicID, $MsgID).'#'.$MsgID); } #FIND FROM '.PREFIX.'topics WHERE TopicID='.intval($TopicID); $sql->query($query); list($BoardID,$DateEdited)=$sql->get_numeric(); if ($NextTopic) { $query = 'SELECT TopicID FROM '.PREFIX.'topics #REPLACE FROM '.PREFIX2.'topics WHERE TopicID='.intval($TopicID); $sql->query($query); list($BoardID,$DateEdited)=$sql->get_numeric(); if ($NextTopic) { $query = 'SELECT TopicID FROM '.PREFIX2.'topics #FIND else { $query = 'SELECT TopicID FROM '.PREFIX.'topics #REPLACE else { $query = 'SELECT TopicID FROM '.PREFIX2.'topics #FIND FROM '.PREFIX.'bpermissions A,'.PREFIX.'topics B #REPLACE FROM '.PREFIX.'bpermissions A,'.PREFIX2.'topics B #OPEN poll.php #FIND FROM '.PREFIX.'topics A,'.PREFIX.'polls B #REPLACE FROM '.PREFIX2.'topics A,'.PREFIX2.'polls B #FIND FROM '.PREFIX.'pollvotes #REPLACE FROM '.PREFIX2.'pollvotes #FIND $query = 'UPDATE '.PREFIX.'polloptions #REPLACE $query = 'UPDATE '.PREFIX2.'polloptions #FIND $query = 'INSERT INTO '.PREFIX."pollvotes (PollID,UserID,OptionSelected) VALUES ('".$PollID.'\',\''.$CookieInfo['userid'].'\',\''.$OptionID.'\')'; #REPLACE $query = 'INSERT INTO '.PREFIX2.'pollvotes (PollID,UserID,OptionSelected) VALUES (\''.$PollID.'\',\''.$CookieInfo['userid'].'\',\''.$OptionID.'\')'; #OPEN print.php #FIND if ($_GET['MsgID']) { $ent['title'] = 'Print a message'; $query = 'SELECT A.BoardID,C.Subject,D.PosticonFilename,A.bName,B.TopicID,C.Subject MsgSubject FROM '.PREFIX.'boards A,'.PREFIX.'topics B,'.PREFIX.'messages C LEFT JOIN '.PREFIX.'posticons D ON C.PosticonID=D.PosticonID WHERE C.MsgID=\''.$_GET['MsgID'].'\' AND B.TopicID=C.TopicID AND A.BoardID=B.BoardID'; $sql->query($query); if ($sql->num_rows()<=0) { UhOh($txt['errMessageIDNotFound']); } list($BoardID,$ent['TopicName'],$ent['TopicIcon'],$ent['BoardName'],$_GET['TopicID'],$ent['MsgName'])=$sql->get_numeric(); $ent['MsgName'] = ($fSettings['Censor']=='y') ? CensorLine($Censor,$MsgSubject) : ''; $ent['MsgURL'] = $fSettings['ScriptURL'].'/viewtopic.php?TopicID='.$_GET['TopicID'].'#'.$_GET['MsgID']; } else { $ent['title'] = 'Print a topic'; $query = 'SELECT A.BoardID,C.Subject,A.bName,D.PosticonFilename FROM '.PREFIX.'boards A,'.PREFIX.'topics B,'.PREFIX.'messages C LEFT JOIN '.PREFIX.'posticons D ON C.PosticonID=D.PosticonID WHERE A.BoardID=B.BoardID AND B.FirstMsgID=C.MsgID AND B.TopicID=\''.$_GET['TopicID'].'\''; $sql->query($query); if ($sql->num_rows()<=0) { UhOh($txt['errTopicIDNotFound']); } list($BoardID,$ent['TopicName'],$ent['BoardName'],$ent['TopicIcon'])=$sql->get_numeric(); } #REPLACE if ($_GET['MsgID']) { $ent['title'] = 'Print a message'; $query = 'SELECT A.BoardID,C.Subject,D.PosticonFilename,A.bName,B.TopicID,C.Subject MsgSubject FROM '.PREFIX.'boards A,'.PREFIX2.'topics B,'.PREFIX2.'messages C LEFT JOIN '.PREFIX.'posticons D ON C.PosticonID=D.PosticonID WHERE C.MsgID=\''.$_GET['MsgID'].'\' AND B.TopicID=C.TopicID AND A.BoardID=B.BoardID'; $sql->query($query); if ($sql->num_rows()<=0) { $query = 'SELECT TopicID FROM '.(($archives) ? PREFIX : PREFIXA).'messages A WHERE A.MsgID=\''.$_GET['MsgID'].'\''; $sql->query($query); if ($sql->num_rows()<=0) { UhOh($txt['errMessageIDNotFound']); } else { header('Location: print.php?MsgID='.$_GET['MsgID'].'&archives='.(($archives) ? '0' : '1')); } } list($BoardID,$ent['TopicName'],$ent['TopicIcon'],$ent['BoardName'],$_GET['TopicID'],$ent['MsgName'])=$sql->get_numeric(); $ent['MsgName'] = ($fSettings['Censor']=='y') ? CensorLine($Censor,$MsgSubject) : ''; $ent['MsgURL'] = $fSettings['ScriptURL'].'/viewtopic.php?TopicID='.$_GET['TopicID'].'#'.$_GET['MsgID']; } else { $ent['title'] = 'Print a topic'; $query = 'SELECT A.BoardID,C.Subject,A.bName,D.PosticonFilename FROM '.PREFIX.'boards A,'.PREFIX2.'topics B,'.PREFIX2.'messages C LEFT JOIN '.PREFIX.'posticons D ON C.PosticonID=D.PosticonID WHERE A.BoardID=B.BoardID AND B.FirstMsgID=C.MsgID AND B.TopicID=\''.$_GET['TopicID'].'\''; $sql->query($query); if ($sql->num_rows()<=0) { $query = 'SELECT BoardID FROM '.(($archives) ? PREFIX : PREFIXA).'topics A WHERE A.TopicID=\''.$_GET['TopicID'].'\''; $sql->query($query); if ($sql->num_rows()<=0) { UhOh($txt['errTopicIDNotFound']); } else { header('Location: print.php?TopicID='.$_GET['TopicID'].'&archives='.(($archives) ? '0' : '1')); } } list($BoardID,$ent['TopicName'],$ent['BoardName'],$ent['TopicIcon'])=$sql->get_numeric(); } #FIND FROM '.PREFIX.'messages A #REPLACE FROM '.PREFIX2.'messages A #OPEN search.php #FIND FROM '.PREFIX.'messages A,'.PREFIX.'topics B,'.PREFIX.'boards C,'.PREFIX.'bpermissions D #REPLACE FROM '.PREFIX2.'messages A,'.PREFIX2.'topics B,'.PREFIX.'boards C,'.PREFIX.'bpermissions D #OPEN stats.php #FIND FROM '.PREFIX.'topics'; #REPLACE FROM '.PREFIX2.'topics'; #FIND FROM '.PREFIX.'messages #REPLACE FROM '.PREFIX2.'messages #FIND FROM '.PREFIX.'messages #REPLACE FROM '.PREFIX2.'messages #FIND FROM '.PREFIX.'messages #REPLACE FROM '.PREFIX2.'messages #FIND FROM '.PREFIX.'topics A,'.PREFIX.'messages B #REPLACE FROM '.PREFIX2.'topics A,'.PREFIX2.'messages B #FIND FROM '.PREFIX.'messages #REPLACE FROM '.PREFIX2.'messages #FIND FROM '.PREFIX.'messages'; #REPLACE FROM '.PREFIX2.'messages'; #FIND FROM '.PREFIX.'messages #REPLACE FROM '.PREFIX2.'messages #FIND FROM '.PREFIX.'messages #REPLACE FROM '.PREFIX2.'messages #FIND FROM '.PREFIX.'topics'; #REPLACE FROM '.PREFIX2.'topics'; #FIND FROM '.PREFIX.'topics A,'.PREFIX.'bpermissions B #REPLACE FROM '.PREFIX2.'topics A,'.PREFIX.'bpermissions B #FIND FROM '.PREFIX.'topics #REPLACE FROM '.PREFIX2.'topics #FIND FROM '.PREFIX.'boards A,'.PREFIX.'bpermissions B,'.PREFIX.'topics C,'.PREFIX.'messages D #REPLACE FROM '.PREFIX.'boards A,'.PREFIX.'bpermissions B,'.PREFIX2.'topics C,'.PREFIX2.'messages D #FIND FROM '.PREFIX.'bpermissions A,'.PREFIX.'boards B,'.PREFIX.'topics C,'.PREFIX.'messages D #REPLACE FROM '.PREFIX.'bpermissions A,'.PREFIX.'boards B,'.PREFIX2.'topics C,'.PREFIX2.'messages D #OPEN viewboard.php #FIND $templates = SplitTemplate(ReadTemplate('viewboard')); #REPLACE $templates = SplitTemplate(ReadTemplate('viewboard',(($archives) ? '' : ',noarchives'))); #FIND FROM '.PREFIX.'boards B,'.PREFIX.'topics A,'.PREFIX.'categories C #REPLACE FROM '.PREFIX.'boards B,'.PREFIX2.'topics A,'.PREFIX.'categories C #FIND FROM '.PREFIX.'topics A,'.PREFIX.'messages B,'.PREFIX.'messages C #REPLACE FROM '.PREFIX2.'topics A,'.PREFIX2.'messages B,'.PREFIX2.'messages C #OPEN viewtopic.php #FIND $sql = new DB_SQL; $templates = SplitTemplate(ReadTemplate('viewtopic','topic')); #REPLACE $sql = new DB_SQL; $templates = SplitTemplate(ReadTemplate('viewtopic','topic'.(($archives) ? '' : ',noarchives'))); #FIND FROM '.PREFIX.'topics A,'.PREFIX.'topics B,'.PREFIX.'topics C,'.PREFIX.'messages D #REPLACE FROM '.PREFIX2.'topics A,'.PREFIX2.'topics B,'.PREFIX2.'topics C,'.PREFIX2.'messages D #FIND list($ent['BoardID'],$Subject,$PrevExists,$NextExists,$numPosts)=$sql->get_numeric(); #ADDAFTER if (!$ent['BoardID']) { $query = 'SELECT BoardID FROM '.(($archives) ? PREFIX : PREFIXA).'topics A WHERE A.TopicID=\''.$TopicID.'\''; $sql->query($query); if ($sql->num_rows()>0) { header('Location: viewtopic.php?TopicID='.$TopicID.'&archives='.(($archives) ? '0' : '1').'&page='.$page); } } #FIND FROM (('.PREFIX.'messages A #REPLACE FROM (('.PREFIX2.'messages A #FIND $query = 'UPDATE '.PREFIX.'topics #REPLACE $query = 'UPDATE '.PREFIX2.'topics #FIND FROM '.PREFIX.'boards A,'.PREFIX.'topics B,'.PREFIX.'categories C #REPLACE FROM '.PREFIX.'boards A,'.PREFIX2.'topics B,'.PREFIX.'categories C #FIND $ent['modoptions'].= ''.$buttons['Normalize'].'

'; #REPLACE $ent['modoptions'].= ''.$buttons['Normalize'].' '; $ent['modoptions'].= ''.$buttons['Archives'].'

'; #END