Zeile 6 | Zeile 6 |
---|
* Website: http://mybb.com * License: http://mybb.com/about/license *
|
* Website: http://mybb.com * License: http://mybb.com/about/license *
|
* $Id: newreply.php 5775 2012-04-19 11:03:38Z Tomm $
| * $Id$
|
*/
define("IN_MYBB", 1); define('THIS_SCRIPT', 'newreply.php');
|
*/
define("IN_MYBB", 1); define('THIS_SCRIPT', 'newreply.php');
|
$templatelist = "newreply,previewpost,error_invalidforum,error_invalidthread,redirect_threadposted,loginbox,changeuserbox,posticons,newreply_threadreview,forumrules,attachments,newreply_threadreview_post,forumdisplay_rules,forumdisplay_rules_link"; $templatelist .= ",smilieinsert,smilieinsert_getmore,codebuttons,post_attachments_new,post_attachments,post_savedraftbutton,newreply_modoptions,newreply_threadreview_more,newreply_disablesmilies,postbit_online,postbit_find,postbit_pm,postbit_www,postbit_email,postbit_reputation,postbit_warninglevel,postbit_author_user,postbit_edit,postbit_quickdelete,postbit_inlinecheck,postbit_posturl,postbit_quote,postbit_multiquote,postbit_report,postbit_ignored,postbit,post_subscription_method";
| $templatelist = "newreply,previewpost,loginbox,changeuserbox,posticons,newreply_threadreview,newreply_threadreview_post,forumdisplay_rules,forumdisplay_rules_link,newreply_multiquote_external,post_attachments_add"; $templatelist .= ",smilieinsert,smilieinsert_getmore,codebuttons,post_attachments_new,post_attachments,post_savedraftbutton,newreply_modoptions,newreply_threadreview_more,newreply_disablesmilies,postbit_online,postbit_find,postbit_pm"; $templatelist .= ",postbit_www,postbit_email,postbit_reputation,postbit_warninglevel,postbit_author_user,postbit_edit,postbit_quickdelete,postbit_inlinecheck,postbit_posturl,postbit_quote,postbit_multiquote,postbit_report,postbit_ignored,postbit,post_subscription_method"; $templatelist .= ",post_attachments_attachment_postinsert,post_attachments_attachment_remove,post_attachments_attachment_unapproved,post_attachments_attachment,postbit_attachments_attachment,postbit_attachments,newreply_options_signature"; $templatelist .= ",member_register_regimage,member_register_regimage_recaptcha,post_captcha_hidden,post_captcha,post_captcha_recaptcha,postbit_groupimage,postbit_away,postbit_offline,postbit_avatar"; $templatelist .= ",postbit_rep_button,postbit_warn,postbit_author_guest,postbit_signature,postbit_classic,postbit_attachments_thumbnails_thumbnailpostbit_attachments_images_image,postbit_attachments_attachment_unapproved"; $templatelist .= ",postbit_attachments_thumbnails,postbit_attachments_images,postbit_gotopost,forumdisplay_password_wrongpass,forumdisplay_password";
|
require_once "./global.php"; require_once MYBB_ROOT."inc/functions_post.php";
| require_once "./global.php"; require_once MYBB_ROOT."inc/functions_post.php";
|
Zeile 23 | Zeile 28 |
---|
// Load global language phrases $lang->load("newreply");
|
// Load global language phrases $lang->load("newreply");
|
| // Check to see if we are missing any indexes $options = array('pid', 'tid', 'replyto', 'ajax', 'action', 'attachmentaid', 'newattachment', 'updateattachment', 'attachmentaid', 'subject', 'message', 'previewpost', 'processed', 'method', 'posthash', 'rem', 'quoted_ids', 'icon'); foreach($options as $option) { if(!isset($mybb->input[$option])) { $mybb->input[$option] = ''; } }
|
// Get the pid and tid and replyto from the input.
|
// Get the pid and tid and replyto from the input.
|
$pid = $replyto = $mybb->input['pid']; $tid = $mybb->input['tid']; if(isset($mybb->input['replyto']))
| $tid = intval($mybb->input['tid']);
$replyto = 0; if($mybb->input['replyto'])
|
{
|
{
|
$replyto = intval($mybb->input['replyto']);
| $replyto = intval($mybb->input['replyto']);
|
}
// AJAX quick reply?
| }
// AJAX quick reply?
|
Zeile 39 | Zeile 55 |
---|
}
// Edit a draft post.
|
}
// Edit a draft post.
|
$draft_pid = 0;
| $pid = 0;
|
$editdraftpid = '';
|
$editdraftpid = '';
|
if($mybb->input['action'] == "editdraft" && $pid)
| if(($mybb->input['action'] == "editdraft" || $mybb->input['action'] == "do_newreply") && $mybb->input['pid'])
|
{ $options = array( "limit" => 1 );
|
{ $options = array( "limit" => 1 );
|
$query = $db->simple_select("posts", "*", "pid='".$pid."'", $options);
| $query = $db->simple_select("posts", "*", "pid='".intval($mybb->input['pid'])."'", $options);
|
$post = $db->fetch_array($query); if(!$post['pid']) {
| $post = $db->fetch_array($query); if(!$post['pid']) {
|
Zeile 56 | Zeile 72 |
---|
{ error($lang->error_post_noperms); }
|
{ error($lang->error_post_noperms); }
|
$draft_pid = $post['pid'];
| $pid = $post['pid'];
|
$tid = $post['tid'];
|
$tid = $post['tid'];
|
$editdraftpid = "<input type=\"hidden\" name=\"pid\" value=\"$draft_pid\" />";
| $editdraftpid = "<input type=\"hidden\" name=\"pid\" value=\"$pid\" />";
|
}
// Set up $thread and $forum for later use.
| }
// Set up $thread and $forum for later use.
|
Zeile 67 | Zeile 83 |
---|
); $query = $db->simple_select("threads", "*", "tid='".$tid."'"); if($db->num_rows($query) == 0)
|
); $query = $db->simple_select("threads", "*", "tid='".$tid."'"); if($db->num_rows($query) == 0)
|
{ error($lang->error_invalidthread);
| { error($lang->error_invalidthread);
|
}
$thread = $db->fetch_array($query); $fid = $thread['fid'];
|
}
$thread = $db->fetch_array($query); $fid = $thread['fid'];
|
|
|
// Get forum info $forum = get_forum($fid); if(!$forum)
| // Get forum info $forum = get_forum($fid); if(!$forum)
|
Zeile 86 | Zeile 102 |
---|
$thread['subject'] = htmlspecialchars_uni($thread['subject']); add_breadcrumb($thread['subject'], get_thread_link($thread['tid'])); add_breadcrumb($lang->nav_newreply);
|
$thread['subject'] = htmlspecialchars_uni($thread['subject']); add_breadcrumb($thread['subject'], get_thread_link($thread['tid'])); add_breadcrumb($lang->nav_newreply);
|
|
|
$forumpermissions = forum_permissions($fid);
// See if everything is valid up to here.
|
$forumpermissions = forum_permissions($fid);
// See if everything is valid up to here.
|
if(isset($post) && (($post['visible'] == 0 && !is_moderator($fid)) || $post['visible'] == 0))
| if(isset($post) && (($post['visible'] == 0 && !is_moderator($fid)) || ($post['visible'] < 0 && $post['uid'] != $mybb->user['uid'])))
|
{ error($lang->error_invalidpost); }
| { error($lang->error_invalidpost); }
|
Zeile 103 | Zeile 119 |
---|
error($lang->error_closedinvalidforum); } if($forumpermissions['canview'] == 0 || $forumpermissions['canpostreplys'] == 0 || $mybb->user['suspendposting'] == 1)
|
error($lang->error_closedinvalidforum); } if($forumpermissions['canview'] == 0 || $forumpermissions['canpostreplys'] == 0 || $mybb->user['suspendposting'] == 1)
|
{ error_no_permission(); }
| { error_no_permission(); }
|
|
|
if($forumpermissions['canonlyviewownthreads'] == 1 && $thread['uid'] != $mybb->user['uid'])
| if(isset($forumpermissions['canonlyviewownthreads']) && $forumpermissions['canonlyviewownthreads'] == 1 && $thread['uid'] != $mybb->user['uid'])
|
{ error_no_permission(); }
| { error_no_permission(); }
|
Zeile 122 | Zeile 138 |
---|
else if($mybb->user['subscriptionmethod'] == 2) { $mybb->input['postoptions']['subscriptionmethod'] = "instant";
|
else if($mybb->user['subscriptionmethod'] == 2) { $mybb->input['postoptions']['subscriptionmethod'] = "instant";
|
} }
| } }
|
// Check if this forum is password protected and we have a valid password check_forum_password($forum['fid']);
|
// Check if this forum is password protected and we have a valid password check_forum_password($forum['fid']);
|
|
|
if($mybb->settings['bbcodeinserter'] != 0 && $forum['allowmycode'] != 0 && (!$mybb->user['uid'] || $mybb->user['showcodebuttons'] != 0))
|
if($mybb->settings['bbcodeinserter'] != 0 && $forum['allowmycode'] != 0 && (!$mybb->user['uid'] || $mybb->user['showcodebuttons'] != 0))
|
{
| {
|
$codebuttons = build_mycode_inserter(); if($forum['allowsmilies'] != 0) {
| $codebuttons = build_mycode_inserter(); if($forum['allowsmilies'] != 0) {
|
Zeile 141 | Zeile 157 |
---|
if($mybb->user['uid'] != 0) { eval("\$loginbox = \"".$templates->get("changeuserbox")."\";");
|
if($mybb->user['uid'] != 0) { eval("\$loginbox = \"".$templates->get("changeuserbox")."\";");
|
} else
| } else
|
{ if(!$mybb->input['previewpost'] && $mybb->input['action'] != "do_newreply") {
| { if(!$mybb->input['previewpost'] && $mybb->input['action'] != "do_newreply") {
|
Zeile 176 | Zeile 192 |
---|
// No weird actions allowed, show new reply form if no regular action. if($mybb->input['action'] != "do_newreply" && $mybb->input['action'] != "editdraft")
|
// No weird actions allowed, show new reply form if no regular action. if($mybb->input['action'] != "do_newreply" && $mybb->input['action'] != "editdraft")
|
{ $mybb->input['action'] = "newreply"; }
| { $mybb->input['action'] = "newreply"; }
|
// Even if we are previewing, still show the new reply form. if($mybb->input['previewpost'])
|
// Even if we are previewing, still show the new reply form. if($mybb->input['previewpost'])
|
{
| {
|
$mybb->input['action'] = "newreply";
|
$mybb->input['action'] = "newreply";
|
}
| }
// Setup a unique posthash for attachment management if(!$mybb->input['posthash'] && !$pid) { $mybb->input['posthash'] = md5($thread['tid'].$mybb->user['uid'].random_str()); }
|
if((empty($_POST) && empty($_FILES)) && $mybb->input['processed'] == '1') { error($lang->error_cannot_upload_php_post); }
|
if((empty($_POST) && empty($_FILES)) && $mybb->input['processed'] == '1') { error($lang->error_cannot_upload_php_post); }
|
| $errors = array(); $maximageserror = $attacherror = '';
|
if(!$mybb->input['attachmentaid'] && ($mybb->input['newattachment'] || $mybb->input['updateattachment'] || ($mybb->input['action'] == "do_newreply" && $mybb->input['submit'] && $_FILES['attachment']))) { // Verify incoming POST request verify_post_check($mybb->input['my_post_key']);
|
if(!$mybb->input['attachmentaid'] && ($mybb->input['newattachment'] || $mybb->input['updateattachment'] || ($mybb->input['action'] == "do_newreply" && $mybb->input['submit'] && $_FILES['attachment']))) { // Verify incoming POST request verify_post_check($mybb->input['my_post_key']);
|
if($mybb->input['action'] == "editdraft" || ($mybb->input['tid'] && $mybb->input['pid']))
| if($pid)
|
{ $attachwhere = "pid='{$pid}'"; }
| { $attachwhere = "pid='{$pid}'"; }
|
Zeile 206 | Zeile 230 |
---|
} $query = $db->simple_select("attachments", "COUNT(aid) as numattachs", $attachwhere); $attachcount = $db->fetch_field($query, "numattachs");
|
} $query = $db->simple_select("attachments", "COUNT(aid) as numattachs", $attachwhere); $attachcount = $db->fetch_field($query, "numattachs");
|
|
|
// If there's an attachment, check it and upload it if($_FILES['attachment']['size'] > 0 && $forumpermissions['canpostattachments'] != 0 && ($mybb->settings['maxattachments'] == 0 || $attachcount < $mybb->settings['maxattachments'])) { require_once MYBB_ROOT."inc/functions_upload.php";
|
// If there's an attachment, check it and upload it if($_FILES['attachment']['size'] > 0 && $forumpermissions['canpostattachments'] != 0 && ($mybb->settings['maxattachments'] == 0 || $attachcount < $mybb->settings['maxattachments'])) { require_once MYBB_ROOT."inc/functions_upload.php";
|
|
|
$update_attachment = false; if($mybb->input['updateattachment']) {
| $update_attachment = false; if($mybb->input['updateattachment']) {
|
Zeile 223 | Zeile 247 |
---|
if($attachedfile['error']) { $errors[] = $attachedfile['error'];
|
if($attachedfile['error']) { $errors[] = $attachedfile['error'];
|
$mybb->input['action'] = "newreply"; }
| $mybb->input['action'] = "newreply"; }
|
if(!$mybb->input['submit']) { $editdraftpid = "<input type=\"hidden\" name=\"pid\" value=\"$pid\" />"; $mybb->input['action'] = "newreply"; } }
|
if(!$mybb->input['submit']) { $editdraftpid = "<input type=\"hidden\" name=\"pid\" value=\"$pid\" />"; $mybb->input['action'] = "newreply"; } }
|
|
|
// Remove an attachment.
|
// Remove an attachment.
|
if($mybb->input['attachmentaid'] && $mybb->input['attachmentact'] == "remove" && $mybb->input['posthash']) { // Verify incoming POST request verify_post_check($mybb->input['my_post_key']);
| if($mybb->input['attachmentaid'] && $mybb->input['attachmentact'] == "remove") { // Verify incoming POST request verify_post_check($mybb->input['my_post_key']);
|
require_once MYBB_ROOT."inc/functions_upload.php";
|
require_once MYBB_ROOT."inc/functions_upload.php";
|
remove_attachment(0, $mybb->input['posthash'], $mybb->input['attachmentaid']);
| remove_attachment($pid, $mybb->input['posthash'], $mybb->input['attachmentaid']);
|
if(!$mybb->input['submit']) { $editdraftpid = "<input type=\"hidden\" name=\"pid\" value=\"$pid\" />";
| if(!$mybb->input['submit']) { $editdraftpid = "<input type=\"hidden\" name=\"pid\" value=\"$pid\" />";
|
Zeile 248 | Zeile 272 |
---|
} }
|
} }
|
// Setup our posthash for managing attachments. if(!$mybb->input['posthash'] && $mybb->input['action'] != "editdraft") { $mybb->input['posthash'] = md5($thread['tid'].$mybb->user['uid'].random_str()); }
$reply_errors = "";
| $reply_errors = $quoted_ids = '';
|
$hide_captcha = false;
// Check the maximum posts per day for this user if($mybb->settings['maxposts'] > 0 && $mybb->usergroup['cancp'] != 1)
|
$hide_captcha = false;
// Check the maximum posts per day for this user if($mybb->settings['maxposts'] > 0 && $mybb->usergroup['cancp'] != 1)
|
{
| {
|
$daycut = TIME_NOW-60*60*24; $query = $db->simple_select("posts", "COUNT(*) AS posts_today", "uid='{$mybb->user['uid']}' AND visible='1' AND dateline>{$daycut}"); $post_count = $db->fetch_field($query, "posts_today");
| $daycut = TIME_NOW-60*60*24; $query = $db->simple_select("posts", "COUNT(*) AS posts_today", "uid='{$mybb->user['uid']}' AND visible='1' AND dateline>{$daycut}"); $post_count = $db->fetch_field($query, "posts_today");
|
Zeile 285 | Zeile 303 |
---|
// Check if username exists. if(username_exists($mybb->input['username'])) {
|
// Check if username exists. if(username_exists($mybb->input['username'])) {
|
// If it does and no password is given throw back "username is taken" if(!$mybb->input['password']) { error($lang->error_usernametaken); } // Checks to make sure the user can login; they haven't had too many tries at logging in. // Is a fatal call if user has had too many tries $logins = login_attempt_check();
// If the user specified a password but it is wrong, throw back invalid password. $mybb->user = validate_password_from_username($mybb->input['username'], $mybb->input['password']); if(!$mybb->user['uid']) { my_setcookie('loginattempts', $logins + 1); $db->update_query("users", array('loginattempts' => 'loginattempts+1'), "LOWER(username) = '".$db->escape_string(my_strtolower($mybb->input['username']))."'", 1, true); if($mybb->settings['failedlogintext'] == 1) { $login_text = $lang->sprintf($lang->failed_login_again, $mybb->settings['failedlogincount'] - $logins); } error($lang->error_invalidpassword.$login_text); } // Otherwise they've logged in successfully.
$mybb->input['username'] = $username = $mybb->user['username']; my_setcookie("mybbuser", $mybb->user['uid']."_".$mybb->user['loginkey'], null, true); my_setcookie('loginattempts', 1); // Update the session to contain their user ID $updated_session = array( "uid" => $mybb->user['uid'], ); $db->update_query("sessions", $updated_session, "sid='{$session->sid}'");
$db->update_query("users", array("loginattempts" => 1), "uid='{$mybb->user['uid']}'");
// Set uid and username $uid = $mybb->user['uid']; $username = $mybb->user['username']; // Check if this user is allowed to post here $mybb->usergroup = &$groupscache[$mybb->user['usergroup']]; $forumpermissions = forum_permissions($fid); if($forumpermissions['canview'] == 0 || $forumpermissions['canpostreplys'] == 0 || $mybb->user['suspendposting'] == 1) { error_no_permission(); }
| // If it does throw back "username is taken" error($lang->error_usernametaken);
|
} // This username does not exist. else
| } // This username does not exist. else
|
Zeile 344 | Zeile 317 |
---|
// Otherwise use the name they specified. else {
|
// Otherwise use the name they specified. else {
|
$username = htmlspecialchars($mybb->input['username']);
| $username = htmlspecialchars_uni($mybb->input['username']);
|
} $uid = 0; }
| } $uid = 0; }
|
Zeile 367 | Zeile 340 |
---|
} if(!$mybb->input['savedraft']) {
|
} if(!$mybb->input['savedraft']) {
|
$query = $db->simple_select("posts p", "p.pid, p.visible", "{$user_check} AND p.tid='{$thread['tid']}' AND p.subject='".$db->escape_string($mybb->input['subject'])."' AND p.message='".$db->escape_string($mybb->input['message'])."' AND p.posthash='".$db->escape_string($mybb->input['posthash'])."' AND p.visible != '-2'");
| $query = $db->simple_select("posts p", "p.pid, p.visible", "{$user_check} AND p.tid='{$thread['tid']}' AND p.subject='".$db->escape_string($mybb->input['subject'])."' AND p.message='".$db->escape_string($mybb->input['message'])."' AND p.visible != '-2' AND p.dateline>".(TIME_NOW-600));
|
$duplicate_check = $db->fetch_field($query, "pid"); if($duplicate_check) {
| $duplicate_check = $db->fetch_field($query, "pid"); if($duplicate_check) {
|
Zeile 429 | Zeile 402 |
---|
{ $post_errors = $posthandler->get_friendly_errors(); }
|
{ $post_errors = $posthandler->get_friendly_errors(); }
|
|
|
// Mark thread as read require_once MYBB_ROOT."inc/functions_indicators.php"; mark_thread_read($tid, $fid);
| // Mark thread as read require_once MYBB_ROOT."inc/functions_indicators.php"; mark_thread_read($tid, $fid);
|
Zeile 446 | Zeile 419 |
---|
foreach($post_captcha->get_errors() as $error) { $post_errors[] = $error;
|
foreach($post_captcha->get_errors() as $error) { $post_errors[] = $error;
|
}
| }
|
} else {
| } else {
|
Zeile 488 | Zeile 461 |
---|
// One or more errors returned, fetch error list and throw to newreply page if(count($post_errors) > 0)
|
// One or more errors returned, fetch error list and throw to newreply page if(count($post_errors) > 0)
|
{
| {
|
$reply_errors = inline_error($post_errors); $mybb->input['action'] = "newreply"; }
| $reply_errors = inline_error($post_errors); $mybb->input['action'] = "newreply"; }
|
Zeile 497 | Zeile 470 |
---|
$postinfo = $posthandler->insert_post(); $pid = $postinfo['pid']; $visible = $postinfo['visible'];
|
$postinfo = $posthandler->insert_post(); $pid = $postinfo['pid']; $visible = $postinfo['visible'];
|
| // Invalidate solved captcha if($mybb->settings['captchaimage'] && !$mybb->user['uid']) { $post_captcha->invalidate_captcha(); }
|
// Deciding the fate if($visible == -2)
| // Deciding the fate if($visible == -2)
|
Zeile 514 | Zeile 493 |
---|
else { // Moderated post
|
else { // Moderated post
|
| if($mybb->user['showredirect'] != 1) { // User must see moderation notice, regardless of redirect settings $mybb->user['showredirect'] = 1; }
|
$lang->redirect_newreply .= '<br />'.$lang->redirect_newreply_moderation; $url = get_thread_link($tid); }
| $lang->redirect_newreply .= '<br />'.$lang->redirect_newreply_moderation; $url = get_thread_link($tid); }
|
Zeile 546 | Zeile 531 |
---|
{ $new_multiquote = implode(",", $multiquote); my_setcookie("multiquote", $new_multiquote);
|
{ $new_multiquote = implode(",", $multiquote); my_setcookie("multiquote", $new_multiquote);
|
}
| }
|
// Otherwise, unset it else {
| // Otherwise, unset it else {
|
Zeile 555 | Zeile 540 |
---|
} } }
|
} } }
|
|
|
$plugins->run_hooks("newreply_do_newreply_end");
|
$plugins->run_hooks("newreply_do_newreply_end");
|
|
|
// This was a post made via the ajax quick reply - we need to do some special things here if($mybb->input['ajax']) {
| // This was a post made via the ajax quick reply - we need to do some special things here if($mybb->input['ajax']) {
|
Zeile 597 | Zeile 582 |
---|
}
if($mybb->input['from_page'] && $post_page > $mybb->input['from_page'])
|
}
if($mybb->input['from_page'] && $post_page > $mybb->input['from_page'])
|
{
| {
|
redirect(get_thread_link($tid, 0, "lastpost")); exit; }
| redirect(get_thread_link($tid, 0, "lastpost")); exit; }
|
Zeile 645 | Zeile 630 |
---|
// Build a new posthash incase the user wishes to quick reply again $new_posthash = md5($mybb->user['uid'].random_str());
|
// Build a new posthash incase the user wishes to quick reply again $new_posthash = md5($mybb->user['uid'].random_str());
|
echo "<script type=\"text/javascript\">\n";
| echo "<script type=\"text/javascript\">\n";
|
echo "var hash = document.getElementById('posthash'); if(hash) { hash.value = '{$new_posthash}'; }\n"; echo "if(typeof(inlineModeration) != 'undefined') { Event.observe($('inlinemod_{$pid}'), 'click', inlineModeration.checkItem); }\n";
|
echo "var hash = document.getElementById('posthash'); if(hash) { hash.value = '{$new_posthash}'; }\n"; echo "if(typeof(inlineModeration) != 'undefined') { Event.observe($('inlinemod_{$pid}'), 'click', inlineModeration.checkItem); }\n";
|
echo "</script>\n"; exit;
| echo "</script>\n"; exit;
|
} // Post is in the moderation queue else
| } // Post is in the moderation queue else
|
Zeile 660 | Zeile 645 |
---|
} else {
|
} else {
|
$lang->redirect_newreply .= $lang->sprintf($lang->redirect_return_thread, get_forum_link($fid)); redirect($url, $lang->redirect_newreply);
| $lang->redirect_newreply .= $lang->sprintf($lang->redirect_return_thread, get_forum_link($fid)); redirect($url, $lang->redirect_newreply);
|
exit; } }
| exit; } }
|
Zeile 672 | Zeile 657 |
---|
{ $plugins->run_hooks("newreply_start");
|
{ $plugins->run_hooks("newreply_start");
|
$quote_ids = '';
| $quote_ids = $multiquote_external = '';
|
// If this isn't a preview and we're not editing a draft, then handle quoted posts if(!$mybb->input['previewpost'] && !$reply_errors && $mybb->input['action'] != "editdraft" && !$mybb->input['attachmentaid'] && !$mybb->input['newattachment'] && !$mybb->input['updateattachment'] && !$mybb->input['rem']) { $message = ''; $quoted_posts = array(); // Handle multiquote
|
// If this isn't a preview and we're not editing a draft, then handle quoted posts if(!$mybb->input['previewpost'] && !$reply_errors && $mybb->input['action'] != "editdraft" && !$mybb->input['attachmentaid'] && !$mybb->input['newattachment'] && !$mybb->input['updateattachment'] && !$mybb->input['rem']) { $message = ''; $quoted_posts = array(); // Handle multiquote
|
if($mybb->cookies['multiquote'] && $mybb->settings['multiquote'] != 0)
| if(isset($mybb->cookies['multiquote']) && $mybb->settings['multiquote'] != 0)
|
{ $multiquoted = explode("|", $mybb->cookies['multiquote']); foreach($multiquoted as $post)
| { $multiquoted = explode("|", $mybb->cookies['multiquote']); foreach($multiquoted as $post)
|
Zeile 688 | Zeile 673 |
---|
} } // Handle incoming 'quote' button
|
} } // Handle incoming 'quote' button
|
if($mybb->input['pid'])
| if($replyto)
|
{
|
{
|
$quoted_posts[$mybb->input['pid']] = $mybb->input['pid'];
| $quoted_posts[$replyto] = $replyto;
|
}
// Quoting more than one post - fetch them
| }
// Quoting more than one post - fetch them
|
Zeile 711 | Zeile 696 |
---|
{ $visible_where = "AND p.visible > 0"; }
|
{ $visible_where = "AND p.visible > 0"; }
|
|
|
require_once MYBB_ROOT."inc/functions_posting.php"; $query = $db->query(" SELECT p.subject, p.message, p.pid, p.tid, p.username, p.dateline, u.username AS userusername
| require_once MYBB_ROOT."inc/functions_posting.php"; $query = $db->query(" SELECT p.subject, p.message, p.pid, p.tid, p.username, p.dateline, u.username AS userusername
|
Zeile 730 | Zeile 715 |
---|
if($pid == $quoted_post['pid']) { $subject = preg_replace('#RE:\s?#i', '', $quoted_post['subject']);
|
if($pid == $quoted_post['pid']) { $subject = preg_replace('#RE:\s?#i', '', $quoted_post['subject']);
|
| // Subject too long? Shorten it to avoid error message if(my_strlen($subject) > 85) { $subject = my_substr($subject, 0, 82).'...'; }
|
$subject = "RE: ".$subject; } $message .= parse_quoted_message($quoted_post); $quoted_ids[] = $quoted_post['pid'];
|
$subject = "RE: ".$subject; } $message .= parse_quoted_message($quoted_post); $quoted_ids[] = $quoted_post['pid'];
|
}
| }
|
// Count the rest else {
| // Count the rest else {
|
Zeile 761 | Zeile 751 |
---|
} eval("\$multiquote_external = \"".$templates->get("newreply_multiquote_external")."\";"); }
|
} eval("\$multiquote_external = \"".$templates->get("newreply_multiquote_external")."\";"); }
|
if(count($quoted_ids) > 0)
| if(is_array($quoted_ids) && count($quoted_ids) > 0)
|
{ $quoted_ids = implode("|", $quoted_ids); }
|
{ $quoted_ids = implode("|", $quoted_ids); }
|
} }
| } }
|
if($mybb->input['quoted_ids'])
|
if($mybb->input['quoted_ids'])
|
{
| {
|
$quoted_ids = htmlspecialchars_uni($mybb->input['quoted_ids']);
|
$quoted_ids = htmlspecialchars_uni($mybb->input['quoted_ids']);
|
}
| }
|
if($mybb->input['previewpost']) {
| if($mybb->input['previewpost']) {
|
Zeile 780 | Zeile 770 |
---|
if(!$message) { $message = $mybb->input['message'];
|
if(!$message) { $message = $mybb->input['message'];
|
}
| }
|
$message = htmlspecialchars_uni($message);
|
$message = htmlspecialchars_uni($message);
|
|
|
// Set up the post options.
|
// Set up the post options.
|
if($mybb->input['previewpost'] || $maximageserror || $reply_errors != '')
| if($mybb->input['previewpost'] || $reply_errors != '')
|
{ $postoptions = $mybb->input['postoptions'];
|
{ $postoptions = $mybb->input['postoptions'];
|
| $postoptions_subscriptionmethod_dont = $postoptions_subscriptionmethod_none = $postoptions_subscriptionmethod_instant = '';
|
if($postoptions['signature'] == 1) { $postoptionschecked['signature'] = " checked=\"checked\"";
| if($postoptions['signature'] == 1) { $postoptionschecked['signature'] = " checked=\"checked\"";
|
Zeile 796 | Zeile 788 |
---|
$postoptions_subscriptionmethod_none = "checked=\"checked\""; } else if($postoptions['subscriptionmethod'] == "instant")
|
$postoptions_subscriptionmethod_none = "checked=\"checked\""; } else if($postoptions['subscriptionmethod'] == "instant")
|
{
| {
|
$postoptions_subscriptionmethod_instant = "checked=\"checked\"";
|
$postoptions_subscriptionmethod_instant = "checked=\"checked\"";
|
}
| }
|
else
|
else
|
{
| {
|
$postoptions_subscriptionmethod_dont = "checked=\"checked\"";
|
$postoptions_subscriptionmethod_dont = "checked=\"checked\"";
|
}
| }
|
if($postoptions['disablesmilies'] == 1) { $postoptionschecked['disablesmilies'] = " checked=\"checked\"";
| if($postoptions['disablesmilies'] == 1) { $postoptionschecked['disablesmilies'] = " checked=\"checked\"";
|
Zeile 811 | Zeile 803 |
---|
} elseif($mybb->input['action'] == "editdraft" && $mybb->user['uid']) {
|
} elseif($mybb->input['action'] == "editdraft" && $mybb->user['uid']) {
|
| $postoptionschecked = array('signature' => '', 'disablesmilies' => ''); $postoptions_subscriptionmethod_dont = $postoptions_subscriptionmethod_none = $postoptions_subscriptionmethod_instant = '';
|
$message = htmlspecialchars_uni($post['message']); $subject = $post['subject']; if($post['includesig'] != 0)
| $message = htmlspecialchars_uni($post['message']); $subject = $post['subject']; if($post['includesig'] != 0)
|
Zeile 837 | Zeile 832 |
---|
} else {
|
} else {
|
| $postoptionschecked = array('signature' => '', 'disablesmilies' => ''); $postoptions_subscriptionmethod_dont = $postoptions_subscriptionmethod_none = $postoptions_subscriptionmethod_instant = '';
|
if($mybb->user['signature'] != '') { $postoptionschecked['signature'] = " checked=\"checked\"";
| if($mybb->user['signature'] != '') { $postoptionschecked['signature'] = " checked=\"checked\"";
|
Zeile 860 | Zeile 858 |
---|
$posticons = get_post_icons(); }
|
$posticons = get_post_icons(); }
|
// No subject, but post info? if(!$subject && $mybb->input['subject'])
| // No subject? if(!isset($subject))
|
{
|
{
|
$subject = $mybb->input['subject'];
| if($mybb->input['subject']) { $subject = $mybb->input['subject']; } else { $subject = $thread['subject']; }
|
}
// Preview a post that was written.
|
}
// Preview a post that was written.
|
| $preview = '';
|
if($mybb->input['previewpost']) { // Set up posthandler. require_once MYBB_ROOT."inc/datahandlers/post.php"; $posthandler = new PostDataHandler("insert");
|
if($mybb->input['previewpost']) { // Set up posthandler. require_once MYBB_ROOT."inc/datahandlers/post.php"; $posthandler = new PostDataHandler("insert");
|
|
|
// Set the post data that came from the input to the $post array. $post = array( "tid" => $mybb->input['tid'],
| // Set the post data that came from the input to the $post array. $post = array( "tid" => $mybb->input['tid'],
|
Zeile 886 | Zeile 892 |
---|
"ipaddress" => get_ip(), "posthash" => $mybb->input['posthash'] );
|
"ipaddress" => get_ip(), "posthash" => $mybb->input['posthash'] );
|
|
|
if($mybb->input['pid']) { $post['pid'] = $mybb->input['pid']; }
|
if($mybb->input['pid']) { $post['pid'] = $mybb->input['pid']; }
|
|
|
$posthandler->set_data($post);
|
$posthandler->set_data($post);
|
|
|
// Now let the post handler do all the hard work. $valid_post = $posthandler->verify_message(); $valid_subject = $posthandler->verify_subject();
|
// Now let the post handler do all the hard work. $valid_post = $posthandler->verify_message(); $valid_subject = $posthandler->verify_subject();
|
|
|
$post_errors = array(); // Fetch friendly error messages if this is an invalid post if(!$valid_post || !$valid_subject) { $post_errors = $posthandler->get_friendly_errors(); }
|
$post_errors = array(); // Fetch friendly error messages if this is an invalid post if(!$valid_post || !$valid_subject) { $post_errors = $posthandler->get_friendly_errors(); }
|
|
|
// One or more errors returned, fetch error list and throw to newreply page if(count($post_errors) > 0)
|
// One or more errors returned, fetch error list and throw to newreply page if(count($post_errors) > 0)
|
{
| {
|
$reply_errors = inline_error($post_errors); } else
|
$reply_errors = inline_error($post_errors); } else
|
{
| {
|
$quote_ids = htmlspecialchars_uni($mybb->input['quote_ids']); if(!$mybb->input['username']) { $mybb->input['username'] = $lang->guest;
|
$quote_ids = htmlspecialchars_uni($mybb->input['quote_ids']); if(!$mybb->input['username']) { $mybb->input['username'] = $lang->guest;
|
} if($mybb->input['username'] && !$mybb->user['uid']) { $mybb->user = validate_password_from_username($mybb->input['username'], $mybb->input['password']);
| |
} $mybb->input['icon'] = intval($mybb->input['icon']); $query = $db->query("
| } $mybb->input['icon'] = intval($mybb->input['icon']); $query = $db->query("
|
Zeile 948 | Zeile 950 |
---|
{ $post['includesig'] = 0; }
|
{ $post['includesig'] = 0; }
|
|
|
// Fetch attachments assigned to this post. if($mybb->input['pid']) {
| // Fetch attachments assigned to this post. if($mybb->input['pid']) {
|
Zeile 958 | Zeile 960 |
---|
{ $attachwhere = "posthash='".$db->escape_string($mybb->input['posthash'])."'"; }
|
{ $attachwhere = "posthash='".$db->escape_string($mybb->input['posthash'])."'"; }
|
|
|
$query = $db->simple_select("attachments", "*", $attachwhere); while($attachment = $db->fetch_array($query)) { $attachcache[0][$attachment['aid']] = $attachment; }
|
$query = $db->simple_select("attachments", "*", $attachwhere); while($attachment = $db->fetch_array($query)) { $attachcache[0][$attachment['aid']] = $attachment; }
|
|
|
$postbit = build_postbit($post, 1); eval("\$preview = \"".$templates->get("previewpost")."\";");
|
$postbit = build_postbit($post, 1); eval("\$preview = \"".$templates->get("previewpost")."\";");
|
} } $subject = htmlspecialchars_uni($subject);
| } }
$subject = htmlspecialchars_uni($parser->parse_badwords($subject));
|
if(!$pid && !$mybb->input['previewpost'])
|
if(!$pid && !$mybb->input['previewpost'])
|
{ $subject = "RE: " . $thread['subject']; }
// Setup a unique posthash for attachment management if(!$mybb->input['posthash'] && $mybb->input['action'] != "editdraft") { $posthash = md5($mybb->user['uid'].random_str()); } elseif($mybb->input['action'] == "editdraft") { // Drafts have posthashes, too... $posthash = htmlspecialchars_uni($post['posthash']); } else { $posthash = htmlspecialchars_uni($mybb->input['posthash']); }
| { $subject = $thread['subject']; // Subject too long? Shorten it to avoid error message if(my_strlen($subject) > 85) { $subject = my_substr($subject, 0, 82).'...'; } $subject = "RE: ".$subject; }
$posthash = htmlspecialchars_uni($mybb->input['posthash']);
|
// Do we have attachment errors? if(count($errors) > 0) { $reply_errors = inline_error($errors);
|
// Do we have attachment errors? if(count($errors) > 0) { $reply_errors = inline_error($errors);
|
}
| }
|
// Get a listing of the current attachments. if($forumpermissions['canpostattachments'] != 0) { $attachcount = 0;
|
// Get a listing of the current attachments. if($forumpermissions['canpostattachments'] != 0) { $attachcount = 0;
|
if($mybb->input['action'] == "editdraft" && $mybb->input['pid'])
| if($pid)
|
{ $attachwhere = "pid='$pid'"; }
| { $attachwhere = "pid='$pid'"; }
|
Zeile 1016 | Zeile 1012 |
---|
$attachment['size'] = get_friendly_size($attachment['filesize']); $attachment['icon'] = get_attachment_icon(get_extension($attachment['filename'])); $attachment['filename'] = htmlspecialchars_uni($attachment['filename']);
|
$attachment['size'] = get_friendly_size($attachment['filesize']); $attachment['icon'] = get_attachment_icon(get_extension($attachment['filename'])); $attachment['filename'] = htmlspecialchars_uni($attachment['filename']);
|
|
|
if($mybb->settings['bbcodeinserter'] != 0 && $forum['allowmycode'] != 0 && (!$mybb->user['uid'] || $mybb->user['showcodebuttons'] != 0))
|
if($mybb->settings['bbcodeinserter'] != 0 && $forum['allowmycode'] != 0 && (!$mybb->user['uid'] || $mybb->user['showcodebuttons'] != 0))
|
{
| {
|
eval("\$postinsert = \"".$templates->get("post_attachments_attachment_postinsert")."\";");
|
eval("\$postinsert = \"".$templates->get("post_attachments_attachment_postinsert")."\";");
|
} $attach_mod_options = '';
| }
eval("\$attach_rem_options = \"".$templates->get("post_attachments_attachment_remove")."\";");
|
if($attachment['visible'] != 1)
|
if($attachment['visible'] != 1)
|
{
| {
|
eval("\$attachments .= \"".$templates->get("post_attachments_attachment_unapproved")."\";");
|
eval("\$attachments .= \"".$templates->get("post_attachments_attachment_unapproved")."\";");
|
}
| }
|
else { eval("\$attachments .= \"".$templates->get("post_attachments_attachment")."\";"); } $attachcount++; }
|
else { eval("\$attachments .= \"".$templates->get("post_attachments_attachment")."\";"); } $attachcount++; }
|
| $noshowattach = '';
|
$query = $db->simple_select("attachments", "SUM(filesize) AS ausage", "uid='".$mybb->user['uid']."'"); $usage = $db->fetch_array($query);
|
$query = $db->simple_select("attachments", "SUM(filesize) AS ausage", "uid='".$mybb->user['uid']."'"); $usage = $db->fetch_array($query);
|
|
|
if($usage['ausage'] > ($mybb->usergroup['attachquota']*1024) && $mybb->usergroup['attachquota'] != 0) { $noshowattach = 1; }
|
if($usage['ausage'] > ($mybb->usergroup['attachquota']*1024) && $mybb->usergroup['attachquota'] != 0) { $noshowattach = 1; }
|
|
|
if($mybb->usergroup['attachquota'] == 0)
|
if($mybb->usergroup['attachquota'] == 0)
|
{
| {
|
$friendlyquota = $lang->unlimited;
|
$friendlyquota = $lang->unlimited;
|
}
| }
|
else
|
else
|
{
| {
|
$friendlyquota = get_friendly_size($mybb->usergroup['attachquota']*1024); }
|
$friendlyquota = get_friendly_size($mybb->usergroup['attachquota']*1024); }
|
|
|
$friendlyusage = get_friendly_size($usage['ausage']); $lang->attach_quota = $lang->sprintf($lang->attach_quota, $friendlyusage, $friendlyquota);
|
$friendlyusage = get_friendly_size($usage['ausage']); $lang->attach_quota = $lang->sprintf($lang->attach_quota, $friendlyusage, $friendlyquota);
|
|
|
if($mybb->settings['maxattachments'] == 0 || ($mybb->settings['maxattachments'] != 0 && $attachcount < $mybb->settings['maxattachments']) && !$noshowattach) {
|
if($mybb->settings['maxattachments'] == 0 || ($mybb->settings['maxattachments'] != 0 && $attachcount < $mybb->settings['maxattachments']) && !$noshowattach) {
|
| eval("\$attach_add_options = \"".$templates->get("post_attachments_add")."\";");
|
eval("\$newattach = \"".$templates->get("post_attachments_new")."\";"); }
|
eval("\$newattach = \"".$templates->get("post_attachments_new")."\";"); }
|
|
|
eval("\$attachbox = \"".$templates->get("post_attachments")."\";"); }
| eval("\$attachbox = \"".$templates->get("post_attachments")."\";"); }
|
Zeile 1062 | Zeile 1068 |
---|
}
// Show captcha image for guests if enabled
|
}
// Show captcha image for guests if enabled
|
| $captcha = '';
|
if($mybb->settings['captchaimage'] && !$mybb->user['uid']) { $correct = false; require_once MYBB_ROOT.'inc/class_captcha.php';
|
if($mybb->settings['captchaimage'] && !$mybb->user['uid']) { $correct = false; require_once MYBB_ROOT.'inc/class_captcha.php';
|
| $post_captcha = new captcha(false, "post_captcha");
|
|
|
if($mybb->input['previewpost'] || $hide_captcha == true)
| if($mybb->input['previewpost'] || $hide_captcha == true && $post_captcha->type == 1)
|
{ // If previewing a post - check their current captcha input - if correct, hide the captcha input area
|
{ // If previewing a post - check their current captcha input - if correct, hide the captcha input area
|
$post_captcha = new captcha;
| // ... but only if it's a default one, reCAPTCHAs must be filled in every time due to draconian limits
|
if($post_captcha->validate_captcha() == true) { $correct = true;
| if($post_captcha->validate_captcha() == true) { $correct = true;
|
Zeile 1083 | Zeile 1090 |
---|
if(!$correct) {
|
if(!$correct) {
|
$post_captcha = new captcha(true, "post_captcha");
| if($post_captcha->type == 1) { $post_captcha->build_captcha(); } elseif($post_captcha->type == 2) { $post_captcha->build_recaptcha(); }
if($post_captcha->html) { $captcha = $post_captcha->html; } } elseif($correct && $post_captcha->type == 2) { $post_captcha->build_recaptcha();
|
if($post_captcha->html) {
| if($post_captcha->html) {
|
Zeile 1091 | Zeile 1114 |
---|
} } }
|
} } }
|
|
|
if($mybb->settings['threadreview'] != 0) { if(!$mybb->settings['postsperpage']) { $mybb->settings['postperpage'] = 20; }
|
if($mybb->settings['threadreview'] != 0) { if(!$mybb->settings['postsperpage']) { $mybb->settings['postperpage'] = 20; }
|
|
|
if(is_moderator($fid)) { $visibility = "(visible='1' OR visible='0')";
| if(is_moderator($fid)) { $visibility = "(visible='1' OR visible='0')";
|
Zeile 1128 | Zeile 1151 |
---|
// Fetch attachments $query = $db->simple_select("attachments", "*", "pid IN ($pidin)"); while($attachment = $db->fetch_array($query))
|
// Fetch attachments $query = $db->simple_select("attachments", "*", "pid IN ($pidin)"); while($attachment = $db->fetch_array($query))
|
{
| {
|
$attachcache[$attachment['pid']][$attachment['aid']] = $attachment; } $query = $db->query("
| $attachcache[$attachment['pid']][$attachment['aid']] = $attachment; } $query = $db->query("
|
Zeile 1146 | Zeile 1169 |
---|
if($post['userusername']) { $post['username'] = $post['userusername'];
|
if($post['userusername']) { $post['username'] = $post['userusername'];
|
}
| }
|
$reviewpostdate = my_date($mybb->settings['dateformat'], $post['dateline']); $reviewposttime = my_date($mybb->settings['timeformat'], $post['dateline']); $parser_options = array(
| $reviewpostdate = my_date($mybb->settings['dateformat'], $post['dateline']); $reviewposttime = my_date($mybb->settings['timeformat'], $post['dateline']); $parser_options = array(
|
Zeile 1164 | Zeile 1187 |
---|
}
if($post['visible'] != 1)
|
}
if($post['visible'] != 1)
|
{
| {
|
$altbg = "trow_shaded"; }
| $altbg = "trow_shaded"; }
|
Zeile 1173 | Zeile 1196 |
---|
$reviewmessage = $post['message']; eval("\$reviewbits .= \"".$templates->get("newreply_threadreview_post")."\";"); if($altbg == "trow1")
|
$reviewmessage = $post['message']; eval("\$reviewbits .= \"".$templates->get("newreply_threadreview_post")."\";"); if($altbg == "trow1")
|
{
| {
|
$altbg = "trow2"; } else
| $altbg = "trow2"; } else
|
Zeile 1182 | Zeile 1205 |
---|
} } eval("\$threadreview = \"".$templates->get("newreply_threadreview")."\";");
|
} } eval("\$threadreview = \"".$templates->get("newreply_threadreview")."\";");
|
}
| }
|
// Can we disable smilies or are they disabled already? if($forum['allowsmilies'] != 0) {
| // Can we disable smilies or are they disabled already? if($forum['allowsmilies'] != 0) {
|
Zeile 1199 | Zeile 1222 |
---|
{ $closed = intval($mybb->input['modoptions']['closethread']); $stuck = intval($mybb->input['modoptions']['stickthread']);
|
{ $closed = intval($mybb->input['modoptions']['closethread']); $stuck = intval($mybb->input['modoptions']['stickthread']);
|
} else
| } else
|
{ $closed = $thread['closed']; $stuck = $thread['sticky']; }
|
{ $closed = $thread['closed']; $stuck = $thread['sticky']; }
|
|
|
if($closed) { $closecheck = ' checked="checked"';
| if($closed) { $closecheck = ' checked="checked"';
|
Zeile 1231 | Zeile 1254 |
---|
{ $bgcolor = "trow2"; }
|
{ $bgcolor = "trow2"; }
|
|
|
// Fetch subscription select box eval("\$subscriptionmethod = \"".$templates->get("post_subscription_method")."\";");
|
// Fetch subscription select box eval("\$subscriptionmethod = \"".$templates->get("post_subscription_method")."\";");
|
|
|
$lang->post_reply_to = $lang->sprintf($lang->post_reply_to, $thread['subject']); $lang->reply_to = $lang->sprintf($lang->reply_to, $thread['subject']);
| $lang->post_reply_to = $lang->sprintf($lang->post_reply_to, $thread['subject']); $lang->reply_to = $lang->sprintf($lang->reply_to, $thread['subject']);
|
Zeile 1274 | Zeile 1297 |
---|
}
$plugins->run_hooks("newreply_end");
|
}
$plugins->run_hooks("newreply_end");
|
|
|
$forum['name'] = strip_tags($forum['name']);
|
$forum['name'] = strip_tags($forum['name']);
|
eval("\$newreply = \"".$templates->get("newreply")."\";");
| $newreply_template = $templates->get("newreply");
// Hide signature option if no permission $option_signature = ''; if($mybb->usergroup['canusesig'] && !$mybb->user['suspendsignature']) { $option_signature = $templates->get('newreply_options_signature'); } eval("\$option_signature = \"".$option_signature."\";");
eval("\$newreply = \"".$newreply_template."\";");
|
output_page($newreply); } ?>
| output_page($newreply); } ?>
|