diff --git a/phpBB/language/lang_english.php b/phpBB/language/lang_english.php index 8ce39b8fbc..15ad56063d 100755 --- a/phpBB/language/lang_english.php +++ b/phpBB/language/lang_english.php @@ -150,6 +150,8 @@ $lang['Post_Annoucement'] = "Post as an annoucement"; $lang['Post_Sticky'] = "Stick this topic"; $lang['Annouce_and_sticky'] = "You cannot post a topic that is both an annoucement and a sticky topic"; $lang['Preview'] = "Preview"; +$lang['Post_a'] = "Post a"; +$lang['Edit_Post'] = "Edit Post"; // // Private Messaging diff --git a/phpBB/posting.php b/phpBB/posting.php index 9fb33b73cc..39b0c9ee19 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -163,6 +163,7 @@ $error = FALSE; // // Set initial conditions // +$is_first_post = (($HTTP_GET_VARS['is_first_post'] == 1) || ($HTTP_POST_VARS['is_first_post'] == 1)) ? TRUE : FALSE; $disable_html = (isset($HTTP_POST_VARS['disable_html'])) ? $HTTP_POST_VARS['disable_html'] : !$userdata['user_allowhtml']; $disable_bbcode = (isset($HTTP_POST_VARS['disable_bbcode'])) ? $HTTP_POST_VARS['disable_bbcode'] : !$userdata['user_allowbbcode']; $disable_smilies = (isset($HTTP_POST_VARS['disable_smile'])) ? $HTTP_POST_VARS['disable_smile'] : !$userdata['user_allowsmile']; @@ -551,8 +552,8 @@ switch($mode) $new_topic_id = $HTTP_POST_VARS[POST_TOPIC_URL]; $topic_time = get_gmt_ts(); - $sql = "INSERT INTO ".POSTS_TABLE." (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, bbcode_uid) - VALUES ($new_topic_id, $forum_id, ".$userdata['user_id'].", '".$username."', $topic_time, '$user_ip', '$uid')"; + $sql = "INSERT INTO ".POSTS_TABLE." (topic_id, forum_id, poster_id, post_username, post_time, poster_ip, bbcode_uid) + VALUES ($new_topic_id, $forum_id, ".$userdata['user_id'].", '".$username."', $topic_time, '$user_ip', '$uid')"; if($db->sql_query($sql)) { @@ -713,16 +714,106 @@ switch($mode) { $post_id = $HTTP_POST_VARS[POST_POST_URL]; $new_topic_id = $HTTP_POST_VARS[POST_TOPIC_URL]; - + + if($SQL_LAYER != "mysql") + { + switch($SQL_LAYER) + { + case 'postgres': + $result = $db->sql_query("BEGIN"); + break; + case 'mssql': + $result = $db->sql_query("BEGIN TRANSACTION"); + break; + } + } + $sql = "UPDATE ".POSTS_TEXT_TABLE." SET post_text = '$message', post_subject = '$subject' WHERE post_id = ".$HTTP_POST_VARS[POST_POST_URL]; if($db->sql_query($sql)) { if($is_first_post) { // Update topics table here, set notification level and such + $sql = "UPDATE ".TOPICS_TABLE." SET topic_title = '$subject', topic_notify = '$notify' WHERE topic_id = ".$HTTP_POST_VARS[POST_TOPIC_URL]; + if(!$db->sql_query($sql)) + { + if(SQL_LAYER != "mysql") + { + switch($SQL_LAYER) + { + case 'postgres': + $result = $db->sql_query("ROLLBACK"); + break; + case 'mssql': + $result = $db->sql_query("ROLLBACK TRANSACTION"); + break; + } + } + + if(DEBUG) + { + $error = $db->sql_error(); + error_die(QUERY_ERROR, "Updating topics table.<br>Reason: ".$error['message']."<br>Query: $sql", __LINE__, __FILE__); + } + else + { + error_die(QUERY_ERROR); + } + } + else + { + if(SQL_LAYER != "mysql") + { + switch($SQL_LAYER) + { + case 'postgres': + $result = $db->sql_query("COMMIT"); + break; + case 'mssql': + $result = $db->sql_query("COMMIT TRANSACTION"); + break; + } + if(!$result) + { + error_die(SQL_ERROR, "Couldn't commit"); + } + } + + include('includes/page_header.'.$phpEx); + // If we get here the post has been inserted successfully. + $msg = "$l_stored<br /><br />$l_click <a href=\"".append_sid("viewtopic.$phpEx?".POST_POST_URL."=$post_id#$post_id")."\">$l_here</a> + $l_viewmsg<br /><br />$l_click <a href=\"".append_sid("viewforum.$phpEx?".POST_FORUM_URL."=$forum_id")."\">$l_here</a> $l_returntopic"; + + $template->set_filenames(array( + "reg_header" => "error_body.tpl" + )); + $template->assign_vars(array( + "ERROR_MESSAGE" => $msg + )); + $template->pparse("reg_header"); + + include('includes/page_tail.'.$phpEx); + } } else { + if(SQL_LAYER != "mysql") + { + switch($SQL_LAYER) + { + case 'postgres': + $result = $db->sql_query("COMMIT"); + break; + case 'mssql': + $result = $db->sql_query("COMMIT TRANSACTION"); + break; + } + if(!$result) + { + error_die(SQL_ERROR, "Couldn't commit"); + } + } + include('includes/page_header.'.$phpEx); // If we get here the post has been inserted successfully. $msg = "$l_stored<br /><br />$l_click <a href=\"".append_sid("viewtopic.$phpEx?".POST_POST_URL."=$post_id#$post_id")."\">$l_here</a> @@ -898,10 +989,11 @@ if($preview) // // Show the same form for each mode. // - if(!isset($HTTP_GET_VARS[POST_FORUM_URL]) && !isset($HTTP_POST_VARS[POST_FORUM_URL])) - { - error_die(GENERAL_ERROR, "Sorry, no there is no such forum"); - } + +if(!isset($HTTP_GET_VARS[POST_FORUM_URL]) && !isset($HTTP_POST_VARS[POST_FORUM_URL])) +{ + error_die(GENERAL_ERROR, "Sorry, no there is no such forum"); +} $sql = "SELECT forum_name FROM ".FORUMS_TABLE." @@ -1033,8 +1125,21 @@ if($preview) $topic_id = ($HTTP_GET_VARS[POST_TOPIC_URL]) ? $HTTP_GET_VARS[POST_TOPIC_URL] : $HTTP_POST_VARS[POST_TOPIC_URL]; $post_id = ($HTTP_GET_VARS[POST_POST_URL]) ? $HTTP_GET_VARS[POST_POST_URL] : $HTTP_POST_VARS[POST_POST_URL]; } - $hidden_form_fields = "<input type=\"hidden\" name=\"mode\" value=\"$mode\"><input type=\"hidden\" name=\"".POST_FORUM_URL."\" value=\"$forum_id\"><input type=\"hidden\" name=\"".POST_TOPIC_URL."\" value=\"$topic_id\"><input type=\"hidden\" name=\"".POST_POST_URL."\" value=\"$post_id\">"; + $hidden_form_fields = "<input type=\"hidden\" name=\"mode\" value=\"$mode\"><input type=\"hidden\" name=\"".POST_FORUM_URL."\" value=\"$forum_id\"><input type=\"hidden\" name=\"".POST_TOPIC_URL."\" value=\"$topic_id\"><input type=\"hidden\" name=\"".POST_POST_URL."\" value=\"$post_id\"><input type=\"hidden\" name=\"is_first_post\" value=\"$is_first_post\">"; + if($mode == 'newtopic') + { + $post_a = $lang['Post_a'] . " " . $lang['Topic']; + } + else if($mode == 'reply') + { + $post_a = $lang['Post_a'] . " " . $lang['Reply']; + } + else if($mode == 'editpost') + { + $post_a = $lang['Edit_Post']; + } + $template->assign_vars(array( "L_SUBJECT" => $l_subject, "L_MESSAGE_BODY" => $l_body, @@ -1042,7 +1147,7 @@ if($preview) "L_PREVIEW" => $lang['Preview'], "L_SUBMIT" => $l_submit, "L_CANCEL" => $l_cancelpost, - + "L_POST_A" => $post_a, "USERNAME_INPUT" => $username_input, "PASSWORD_INPUT" => $password_input, "SUBJECT_INPUT" => $subject_input, diff --git a/phpBB/templates/Default/posting_body.tpl b/phpBB/templates/Default/posting_body.tpl index 6afc43cea7..5ea22d30b5 100644 --- a/phpBB/templates/Default/posting_body.tpl +++ b/phpBB/templates/Default/posting_body.tpl @@ -34,6 +34,9 @@ function addBBcode(bbCode) <tr> <td> <table border="0" width="100%" cellpadding="3" cellspacing="1"> + <tr class="tableheader"> + <td colspan="2">{L_POST_A}</td> + </tr> <tr class="tablebody"> <td bgcolor="#DDDDDD">{L_USERNAME}</td> <td bgcolor="#CCCCCC">{USERNAME_INPUT}</td> diff --git a/phpBB/templates/PSO/posting_body.tpl b/phpBB/templates/PSO/posting_body.tpl index 3c3c655eab..6eb2b0f22f 100644 --- a/phpBB/templates/PSO/posting_body.tpl +++ b/phpBB/templates/PSO/posting_body.tpl @@ -17,7 +17,7 @@ function insertCode(formObj, selectObj){ <tr><form action="{S_POST_ACTION}" method="POST"> <td bgcolor="{T_TH_COLOR1}"><table border="0" cellpadding="3" cellspacing="1" width="100%"> <tr> - <td colspan="2" bgcolor="{T_TH_COLOR3}"><font face="{T_FONTFACE1}" size="{T_FONTSIZE2}"><b>Post a Topic</b></font></td> + <td colspan="2" bgcolor="{T_TH_COLOR3}"><font face="{T_FONTFACE1}" size="{T_FONTSIZE2}"><b>{L_POST_A}</b></font></td> </tr> <tr> <td bgcolor="{T_TD_COLOR1}"><font face="{T_FONTFACE1}" size="{T_FONTSIZE2}"><b>{L_SUBJECT}</b></font></td> diff --git a/phpBB/viewtopic.php b/phpBB/viewtopic.php index 55ce3dd1ee..c5fe3c8581 100644 --- a/phpBB/viewtopic.php +++ b/phpBB/viewtopic.php @@ -478,8 +478,16 @@ for($x = 0; $x < $total_posts; $x++) $msn_img = ($postrow[$x]['user_msnm']) ? "<a href=\"profile.$phpEx?mode=viewprofile&".POST_USERS_URL."=$poster_id\"><img src=\"".$images['msn']."\" border=\"0\"></a>" : ""; $yim_img = ($postrow[$x]['user_yim']) ? "<a href=\"http://edit.yahoo.com/config/send_webmesg?.target=".$postrow[$x]['user_yim']."&.src=pg\"><img src=\"".$images['yim']."\" border=\"0\"></a>" : ""; - - $edit_img = "<a href=\"".append_sid("posting.$phpEx?mode=editpost&".POST_POST_URL."=".$postrow[$x]['post_id']."&".POST_TOPIC_URL."=$topic_id&".POST_FORUM_URL."=$forum_id")."\"><img src=\"".$images['edit']."\" alt=\"$l_editdelete\" border=\"0\"></a>"; + + if($x == 0) + { + $edit_post_url = append_sid("posting.$phpEx?mode=editpost&".POST_POST_URL."=".$postrow[$x]['post_id']."&".POST_TOPIC_URL."=$topic_id&".POST_FORUM_URL."=$forum_id&is_first_post=1"); + } + else + { + $edit_post_url = append_sid("posting.$phpEx?mode=editpost&".POST_POST_URL."=".$postrow[$x]['post_id']."&".POST_TOPIC_URL."=$topic_id&".POST_FORUM_URL."=$forum_id"); + } + $edit_img = "<a href=\"".$edit_post_url."\"><img src=\"".$images['edit']."\" alt=\"$l_editdelete\" border=\"0\"></a>"; $quote_img = "<a href=\"".append_sid("posting.$phpEx?mode=reply"e=true&".POST_POST_URL."=".$postrow[$x]['post_id']."&".POST_TOPIC_URL."=$topic_id&".POST_FORUM_URL."=$forum_id")."\"><img src=\"".$images['quote']."\" alt=\"$l_replyquote\" border=\"0\"></a>";