setQuery("select max(time) from #__sb_messages where ip='$ip'");
$lastPostTime=$database->loadResult();
}
if (($sbConfig['floodprotection'] != 0 && ((($lastPostTime+$sbConfig['floodprotection']) < $systime ) || $do == "edit" || $is_admin)) || $sbConfig['floodprotection'] == 0)
{
//Let's find out who we're dealing with if a registered user wants to make a post
if ($my_id != "")
{
$database->setQuery("SELECT name, username, email FROM #__users WHERE id=$my_id");
$userquery=$database->loadObjectList();
if ($database->query())
{
foreach ($userquery as $user)
{
$my_name= $sbConfig['username'] ? $user->username : $user->name;
$my_email=$user->email;
$registeredUser=1;
}
}
else
{
echo _POST_ERROR."
";
echo _POST_EXIT;
return;
}
}
}
else
{
echo _POST_TOPIC_FLOOD1;
echo $sbConfig['floodprotection']." "._POST_TOPIC_FLOOD2."
";
echo _POST_TOPIC_FLOOD3;
return;
}
//Now find out the forumname to which the user wants to post (for reference only)
$database->setQuery("SELECT name FROM #__sb_categories WHERE id=$catid");
$catName=$database->loadResult();
?>
' : _HOME; ?>
' : _GEN_MYPROFILE; ?>
|
' : _GEN_HELP; ?>
';
echo $sbIcons['rules'] ? '
|
|
'._SUBMIT_CANCEL." "; echo ''; } else { if ($do=="quote") {//reply do quote //check if topic isn't locked if($replyto != 0) { $database->setQuery("select thread from #__sb_messages where id='$replyto'"); $topicID=$database->loadResult(); if ($topicID != 0){ //message replied to is not the topic post; check if the topic post itself is locked $database->setQuery("select locked from #__sb_messages where id='$topicID'"); $topicLock=$database->loadResult(); $lockedWhat=_GEN_TOPIC; }else{ //message replied to is the topic post; check if that's locked $database->setQuery("select locked from #__sb_messages where id='$replyto'"); $topicLock=$database->loadResult(); $lockedWhat=_GEN_TOPIC; } if ($topicLock==0){ //topic not locked; check if forum is locked $database->setQuery("select locked from #__sb_categories where id='$catid'"); $topicLock=$database->loadResult(); $lockedWhat=_GEN_FORUM; } } if (( ($sbConfig['pubwrite']==0 && $my_id != 0)||$sbConfig['pubwrite']==1) && ($topicLock==0 || ($topicLock==1 && $is_moderator))) {//user is allowed to make a quote $parentid=0; $replyto=(int)$replyto; if ($replyto > 0) { $database->setQuery("SELECT #__sb_messages.*,#__sb_messages_text.message FROM #__sb_messages,#__sb_messages_text WHERE id='$replyto' AND mesid='$replyto'"); $database->query(); if ($database->getNumRows() > 0) { $database->loadObject($message); //$message->message=smile::smileReplace($message->message,0, $sbs); $table = array_flip(get_html_translation_table(HTML_ENTITIES)); $quote = strtr($message->message, $table); $htmlText = "[b]".stripslashes($message->name)." "._POST_WROTE.":[/b]\n"; $htmlText .= '[quote]'.$quote."[/quote]"; $quote=smile::sbStripHtmlTags($quote); //$quote=RTESafe_sb(nl2br($quote)); $resubject = strtr($message->subject, $table); $resubject = strtolower(substr($resubject,0,strlen(_POST_RE)))==strtolower(_POST_RE)?stripslashes($resubject):_POST_RE.stripslashes($resubject); //$resubject = htmlspecialchars($resubject); $resubject=smile::sbStripHtmlTags($resubject); $parentid = $message->id; $authorName=$my_name; } } ?> "; } } else { echo "Hacking attempt!";} } else if ($do == "editpostnow") { $database->setQuery("SELECT * FROM #__sb_messages LEFT JOIN #__sb_messages_text ON #__sb_messages.id=#__sb_messages_text.mesid WHERE #__sb_messages.id='$id'"); $message1=$database->loadObjectList(); foreach($message1 as $mes) { $userid=$mes->userid; } //Check for a moderator or superadmin if ($is_moderator) { $allowEdit=1; } if ($sbConfig['useredit']==1 && $my_id != "" ) { //Now, if the author==viewer and the viewer is allowed to edit his/her own post the let them edit if ($my_id == $userid ) { $allowEdit=1; } } if ($allowEdit==1) { if ($attachfile != '' ) { include $sbp.'/file_upload.php'; } if ($attachimage != '' ) { include $sbp.'/image_upload.php'; } $message=trim(htmlspecialchars(addslashes($message))); if ($sbConfig['editMarkUp']) { $posttime=time()+($sbConfig['board_ofset']*3600); $message = $message." "._EDIT_BY." ".$my->username.", "._EDIT_AT." ".date(_DATETIME, $posttime); } //parse the message for some preliminary bbcode and stripping of HTML $message = smile::bbencode_first_pass($message); $id=(int)$id; $database->setQuery("SELECT id FROM #__sb_messages WHERE id='$id'"); $database->query(); if ($database->getNumRows() > 0) { $database->setQuery("UPDATE #__sb_messages SET name='$sb_authorname', email='".addslashes($email)."', subject='".addslashes($subject)."', topic_emoticon='".((int)$topic_emoticon)."' WHERE id='$id'"); $dbr_nameset=$database->query(); $database->setQuery("UPDATE #__sb_messages_text SET message='$message' WHERE mesid='$id'"); if ($database->query() && $dbr_nameset) { //Update the attachments table if an image has been attached if ( $imageLocation != "" ) { $database->setQuery("INSERT INTO #__sb_attachments (mesid, filelocation) values ('$id','$imageLocation')"); if (!$database->query()){ echo "\n"; } } //Update the attachments table if an file has been attached if ( $fileLocation != "" ) { $database->setQuery("INSERT INTO #__sb_attachments (mesid, filelocation) values ('$id','$fileLocation')"); if (!$database->query()){ echo "\n"; } } echo ''; } else echo _POST_ERROR_MESSAGE_OCCURED; } else { echo _POST_INVALID; } }else{echo ("Hacking attempt");} } else if ($do == "delete") { if(!$is_moderator){ die("Hacking Attempt!");} $id=(int)$id; $database->setQuery("SELECT * FROM #__sb_messages WHERE id=$id"); $message=$database->loadObjectList(); foreach ($message as $mes) { ?> setQuery("SELECT parent,thread,subject FROM #__sb_messages WHERE id=$id"); $message=$database->loadObjectList(); foreach($message as $mes) { $thread=$mes->thread; $removechildren=(int)$removechildren; if ($mes->parent==0) { // this is the forum topic; if removed, all children must be removed as well. //first select all children ids that belong to this topic.. we need them later on //to delete the message bodies belonging to them $database->setQuery("SELECT id FROM #__sb_messages WHERE thread=$id"); //$childlist=$database->loadObjectList(); $children=implode(",",$database->loadResultArray()); $database->setQuery("DELETE FROM #__sb_messages WHERE id=$id"); if (!$database->query()) $sqlError="Could not delete the Topic post - nothing else deleted"; else {//Topic post deleted, now the rest $database->setQuery("DELETE FROM #__sb_messages WHERE thread=$id"); if (!$database->query()) $sqlError="Could not delete child posts, but Topic post was deleted. Update the database manually."; else { $database->setQuery("DELETE FROM #__sb_messages_text WHERE mesid=$id"); if (!$database->query()) $sqlError="Could not delete the text of the Topic post. Update the database manually."; $database->setQuery("DELETE FROM #__sb_messages_text WHERE mesid IN ($children)"); if (!$database->query()) $sqlError="Could not delete childs posts texts. Everything else deleted. Update the database manually."; if ($delAttachments=="delAtt") {//delete all attachments $query="SELECT filelocation FROM #__sb_attachments WHERE mesid IN ($children)"; $database->setQuery($query); $fileList=$database->loadObjectList(); if (count($fileList)>0){ foreach ($fileList as $fl){ unlink($fl->filelocation); } $database->setQuery("DELETE FROM #__sb_attachments WHERE mesid IN ($children)"); $database->query(); } } } } } // fi ($mes->parent==0) else {//this is not the Topic post, so delete it and promote the direct children one level up in //the hierarchy $thread=$mes->thread; $database->setQuery("UPDATE #__sb_messages SET parent='$mes->parent' WHERE parent='$id'"); if (!$database->query()) {$sqlError="Could not promote children in post hierarchy. Nothing deleted.";} else { $database->setQuery("DELETE FROM #__sb_messages WHERE id='$id'"); if (!$database->query()) { $sqlError="Could not delete the post. Try again.";} else { $database->setQuery("DELETE FROM #__sb_messages_text WHERE mesid='$id'"); if (!$database->query()) { $sqlError="Could not delete the posts text. Post itself is deleted. Update the database manually.";} } if ($delAttachments=="delAtt") {//delete all attachments $database->setQuery("SELECT filelocation FROM #__sb_attachments WHERE mesid=$id"); $fileList=$database->loadObjectList(); if (count($fileList)>0){ foreach ($fileList as $fl){ unlink($fl->filelocation); } $database->setQuery("DELETE FROM #__sb_attachments WHERE mesid=$id"); $database->query(); } } } } //Now, check for errors: if ($sqlError=="") { echo ''; ?> "; echo "$sqlError"; } }//foreach($message as $mes }//fi $do==deletepostnow else if ($do == "move") { if(!$is_moderator){ die("Hacking Attempt!");} $catid=(int)$catid; $id=(int)$id; //get list of available forums //$database->setQuery("SELECT id,name FROM #__sb_categories WHERE parent != '0'"); $database->setQuery( "SELECT a.*, b.name AS category" . "\nFROM #__sb_categories AS a" . "\nLEFT JOIN #__sb_categories AS b ON b.id = a.parent" . "\nWHERE a.parent != '0'" . "\nORDER BY parent, ordering"); $catlist=$database->loadObjectList(); // get topic subject: $database->setQuery("select subject from #__sb_messages where id=$id"); $topicSubject=$database->loadResult(); ?> setQuery("SELECT `subject`, `catid`, `time` AS timestamp FROM #__sb_messages WHERE `id`='$id'"); $oldRecord=$database->loadObjectList(); $newSubject=_MOVED_TOPIC." ".$oldRecord[0]->subject; $database->setQuery("SELECT MAX(time) AS timestamp FROM #__sb_messages WHERE `thread`='$id'"); $lastTimestamp=$database->loadResult(); if ($lastTimestamp == "") { $lastTimestamp = $oldRecord[0]->timestamp; } //perform the actual move //Move topic post first $database->setQuery("UPDATE #__sb_messages SET `catid`='$catid' WHERE `id`='$id'"); if ($database->query()) { //succeeded; move the rest of the thread if exists $database->setQuery("UPDATE #__sb_messages set `catid`='$catid' WHERE `thread`='$id'"); if ($database->query()) { //okay, now try to insert a 'Moved topic' notification post entry in the 'old' forum $database->setQuery("INSERT INTO #__sb_messages (`parent`, `subject`, `time`, `catid`, `moved`) VALUES ('0','$newSubject','".$lastTimestamp."','".$oldRecord[0]->catid."','1')"); if ($database->query() ) { //determine the new location for link composition $newId=$database->insertid(); $newURL = "catid=".$catid."&id=".$id; $database->setQuery("INSERT INTO #__sb_messages_text (`mesid`, `message`) VALUES ('$newId', '$newURL')"); if (! $database->query() ) { $database->stderr(true); } //and update the thread id on the 'moved' post for the right ordering when viewing the forum.. $database->setQuery("UPDATE #__sb_messages SET `thread`='$newId' WHERE `id`='$newId'"); if (! $database->query() ) { $database->stderr(true); } } //move succeeded echo ''; ?> setQuery("INSERT INTO #__sb_subscriptions (thread,userid) VALUES ('$sb_thread','$my_id')"); if ($database->query()){ echo _POST_SUBSCRIBED_TOPIC." "; }else{ echo _POST_NO_SUBSCRIBED_TOPIC." "; } echo ''; ?> setQuery("update #__sb_messages set ordering=1 where id=$id"); if ($database->query()){ echo ' '._POST_STICKY_SET.' '._POST_STICKY_NOT_SET.' '._POST_STICKY_UNSET.' '._POST_STICKY_NOT_UNSET.' '._POST_LOCK_SET.' '._POST_LOCK_NOT_SET.' '._POST_LOCK_UNSET.' '._POST_LOCK_NOT_UNSET.' |
| name);?> |
message));
$sb_message_txt = str_replace(" ","", $sb_message_txt ); //Long Words Wrap: $sb_message_txt = smile::htmlwrap($sb_message_txt, $sbConfig['wrap']); if ($sbConfig['badwords']) { $badwords = Badword::filter($sb_message_txt, $my); if ($badwords == "true") { $sb_message_txt = _COM_A_BADWORDS_NOTICE ; } } echo $sb_message_txt; ?> |