diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php index fab7a2a701..389927983a 100644 --- a/phpBB/includes/functions_posting.php +++ b/phpBB/includes/functions_posting.php @@ -178,7 +178,7 @@ function format_display($message, $html, $bbcode, $uid, $url, $smilies, $sig) $message .= $user_sig; - return($message); + return $message; } // Update Last Post Informations @@ -569,7 +569,7 @@ function upload_attachment($filename) if (!$filedata['post_attach']) { - return ($filedata); + return $filedata; } $r_file = $filename; @@ -594,7 +594,7 @@ function upload_attachment($filename) $filedata['error'] = true; $filedata['err_msg'] = sprintf($user->lang['DISALLOWED_EXTENSION'], $filedata['extension']); $filedata['post_attach'] = false; - return ($filedata); + return $filedata; } $allowed_filesize = ($extensions[$filedata['extension']]['max_filesize'] != 0) ? $extensions[$filedata['extension']]['max_filesize'] : $config['max_filesize']; @@ -606,7 +606,7 @@ function upload_attachment($filename) $filedata['error'] = true; $filedata['err_msg'] = sprintf($user->lang['INVALID_FILENAME'], $filename); $filedata['post_attach'] = false; - return ($filedata); + return $filedata; } // check php upload-size @@ -615,7 +615,7 @@ function upload_attachment($filename) $filedata['error'] = true; $filedata['err_msg'] = (@ini_get('upload_max_filesize') == '') ? $user->lang['ATTACHMENT_PHP_SIZE_NA'] : sprintf($user->lang['ATTACHMENT_PHP_SIZE_OVERRUN'], @ini_get('upload_max_filesize')); $filedata['post_attach'] = false; - return ($filedata); + return $filedata; } /* @@ -655,7 +655,7 @@ function upload_attachment($filename) $filedata['error'] = true; $filedata['err_msg'] = sprintf($user->lang['ATTACHMENT_TOO_BIG'], $allowed_filesize, $size_lang); $filedata['post_attach'] = false; - return ($filedata); + return $filedata; } // Check our complete quota @@ -666,7 +666,7 @@ function upload_attachment($filename) $filedata['error'] = true; $filedata['err_msg'] = $user->lang['ATTACH_QUOTA_REACHED']; $filedata['post_attach'] = false; - return ($filedata); + return $filedata; } } @@ -773,7 +773,7 @@ function upload_attachment($filename) $filedata['err_msg'] = $result; $filedata['post_attach'] = false; } - return ($filedata); + return $filedata; } // Move/Upload File - could be used for Avatars too ? @@ -792,7 +792,7 @@ function move_uploaded_attachment($upload_mode, $source_filename, &$filedata) { if ( !@move_uploaded_file($source_filename, $config['upload_dir'] . '/' . $destination_filename) ) { - return (sprintf($user->lang['GENERAL_UPLOAD_ERROR'], './' . $config['upload_dir'] . '/' . $destination_filename)); + return sprintf($user->lang['GENERAL_UPLOAD_ERROR'], './' . $config['upload_dir'] . '/' . $destination_filename); } } @chmod($config['upload_dir'] . '/' . $destination_filename, 0666); @@ -803,7 +803,7 @@ function move_uploaded_attachment($upload_mode, $source_filename, &$filedata) { if ( !@copy($source_file, $config['upload_dir'] . '/' . $destination_filename) ) { - return (sprintf($user->lang['GENERAL_UPLOAD_ERROR'], './' . $config['upload_dir'] . '/' . $destination_filename)); + return sprintf($user->lang['GENERAL_UPLOAD_ERROR'], './' . $config['upload_dir'] . '/' . $destination_filename); } } @chmod($config['upload_dir'] . '/' . $destination_filename, 0666); @@ -825,7 +825,7 @@ function move_uploaded_attachment($upload_mode, $source_filename, &$filedata) if (!$res) { @ftp_quit($conn_id); - return (sprintf($user->lang['Ftp_error_upload'], $config['ftp_path'])); + return sprintf($user->lang['Ftp_error_upload'], $config['ftp_path']); } @ftp_site($conn_id, 'CHMOD 0644 ' . $destination_filename); @@ -857,7 +857,7 @@ function move_uploaded_attachment($upload_mode, $source_filename, &$filedata) } } }*/ - return (''); + return ''; } // Delete File @@ -904,7 +904,7 @@ function phpbb_unlink($filename, $mode = 'file', $use_ftp = false) message_die(GENERAL_ERROR, sprintf($lang['Ftp_error_delete'], $attach_config['ftp_path'] . $add)); } - return ($deleted); + return $deleted; } @ftp_quit($conn_id); @@ -912,7 +912,7 @@ function phpbb_unlink($filename, $mode = 'file', $use_ftp = false) $deleted = TRUE;*/ } - return ($deleted); + return $deleted; } diff --git a/phpBB/language/en/lang_main.php b/phpBB/language/en/lang_main.php index 22428c84f2..d7d5647879 100644 --- a/phpBB/language/en/lang_main.php +++ b/phpBB/language/en/lang_main.php @@ -364,6 +364,8 @@ $lang = array( 'OPTIONS' => 'Options', 'MOD_OPTIONS' => 'Moderator Options', 'POST_NORMAL' => 'Normal', + 'POST_REVIEW' => 'Post Review', + 'POST_REVIEW_EXPLAIN' => 'Since the beginning of your reply, new posts were added to this topic. You are able to review these posts now, to change yours accordingly.<br />This reminder will be displayed only once, if you press submit the next time your post will be stored.', 'LOCK_POST' => 'Lock Post', 'LOCK_POST_EXPLAIN' => 'Prevent editing', diff --git a/phpBB/posting.php b/phpBB/posting.php index 55793cb562..5469769f9b 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -24,36 +24,12 @@ // * topic review additions -> quoting from previous posts ? // * check for reply since started posting upon submission and display of 'between-posts' to allow re-defining of post // * hidden form element containing sid to prevent remote posting - Edwin van Vliet -// * Attachments // * bbcode parsing -> see functions_posting.php -// * lock topic option within posting // * multichoice polls // * permission defined ability for user to add poll options // * Spellcheck? aspell? or some such? // * Posting approval -// Temp Function - strtolower (will have a look at iconv later) - borrowed from php.net -function phpbb_strtolower($string) -{ - $new_string = ''; - - for ($i = 0; $i < strlen($string); $i++) - { - // Not sure about the offset, where is my ASCII Table ??? - if (ord(substr($string, $i, 1)) > 0xa0) - { - $new_string .= strtolower(substr($string, $i, 2)); - $i++; - } - else - { - $new_string .= strtolower(substr($string, $i, 1)); - } - } - - return $new_string; -} - define('IN_PHPBB', true); $phpbb_root_path = './'; include($phpbb_root_path . 'extension.inc'); @@ -609,7 +585,76 @@ if (($submit) || ($preview) || ($refresh)) // notify and show user the post made between his request and the final submit if ( ($mode == 'reply' || $mode == 'quote') && ($topic_cur_post_id != $topic_last_post_id) ) { - + $template->assign_vars(array( + 'S_POST_REVIEW' => true) + ); + + // Define censored word matches + if (empty($censors)) + { + $censors = array(); + obtain_word_list($censors); + } + + // Go ahead and pull all data for the remaining posts + $sql = "SELECT u.username, u.user_id, p.* + FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u + WHERE p.topic_id = $topic_id + AND p.poster_id = u.user_id + AND p.post_id > " . $topic_cur_post_id . " + ORDER BY p.post_time DESC"; + $result = $db->sql_query_limit($sql, $config['posts_per_page']); + + if ($row = $db->sql_fetchrow($result)) + { + $i = 0; + do + { + $poster_id = $row['user_id']; + $poster = $row['username']; + + // Handle anon users posting with usernames + if ($poster_id == ANONYMOUS && $row['post_username'] != '') + { + $poster = $row['post_username']; + $poster_rank = $user->lang['GUEST']; + } + + $post_subject = ($row['post_subject'] != '') ? $row['post_subject'] : ''; + + $message = $row['post_text']; + + $message = (empty($row['enable_smilies']) || empty($config['allow_smilies'])) ? preg_replace('#<!\-\- s(.*?) \-\-><img src="\{SMILE_PATH\}\/.*? \/><!\-\- s\1 \-\->#', '\1', $message) : str_replace('<img src="{SMILE_PATH}', '<img src="' . $phpbb_root_path . $config['smilies_path'], $message); + + if (count($censors['match'])) + { + $post_subject = preg_replace($censors['match'], $censors['replace'], $post_subject); + $message = preg_replace($censors['match'], $censors['replace'], $message); + } + + $template->assign_block_vars('post_postrow', array( + 'MINI_POST_IMG' => $user->img('icon_post', $user->lang['POST']), + 'POSTER_NAME' => $poster, + 'POST_DATE' => $user->format_date($row['post_time']), + 'POST_SUBJECT' => $post_subject, + 'MESSAGE' => nl2br($message), + + 'S_ROW_COUNT' => $i++) + ); + } + while ($row = $db->sql_fetchrow($result)); + } + $db->sql_freeresult($result); + + $template->assign_vars(array( + 'L_MESSAGE' => $user->lang['MESSAGE'], + 'L_POSTED' => $user->lang['POSTED'], + 'L_POST_SUBJECT'=> $user->lang['POST_SUBJECT'], + 'L_POST_REVIEW' => $user->lang['POST_REVIEW']) + ); + + $submit = FALSE; + $refresh = TRUE; } // Grab md5 'checksum' of new message @@ -711,7 +756,7 @@ if (($submit) || ($preview) || ($refresh)) } // Store message, sync counters - if (($err_msg == '') && ($submit)) + if ($err_msg == '' && $submit) { // Lock/Unlock Topic $change_topic_status = $topic_status; @@ -828,7 +873,7 @@ if ($subject) } // Save us some processing time. ;) -if (count($poll_options_tmp)) +if (count($poll_options)) { $poll_options_tmp = implode("\n", $poll_options); decode_text($poll_options_tmp); @@ -1158,6 +1203,7 @@ function topic_review($topic_id, $is_inline_review = false) FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u WHERE p.topic_id = $topic_id AND p.poster_id = u.user_id + " . (($greater_post_id != 0) ? " AND p.post_id > " . $greater_post_id : "") . " ORDER BY p.post_time DESC"; $result = $db->sql_query_limit($sql, $config['posts_per_page']); @@ -1228,5 +1274,25 @@ function topic_review($topic_id, $is_inline_review = false) } } +// Temp Function - strtolower (will have a look at iconv later) - borrowed from php.net +function phpbb_strtolower($string) +{ + $new_string = ''; + + for ($i = 0; $i < strlen($string); $i++) + { + if (ord(substr($string, $i, 1)) > 0xa0) + { + $new_string .= strtolower(substr($string, $i, 2)); + $i++; + } + else + { + $new_string .= strtolower(substr($string, $i, 1)); + } + } + + return $new_string; +} ?> \ No newline at end of file diff --git a/phpBB/templates/subSilver/posting_body.html b/phpBB/templates/subSilver/posting_body.html index 673a117d96..f02c68a92a 100644 --- a/phpBB/templates/subSilver/posting_body.html +++ b/phpBB/templates/subSilver/posting_body.html @@ -47,6 +47,59 @@ function checkForm() </tr> </table> +<!-- IF S_POST_REVIEW --> +<table class="tablebg" border="0" cellpadding="3" cellspacing="1" width="100%"> + <tr> + <th height="28" align="center">{L_POST_REVIEW}</th> + </tr> + <tr> + <td> </td> + </tr> + <tr> + <td class="gen" align="center">{L_POST_REVIEW_EXPLAIN}</td> + </tr> + <tr> + <td> </td> + </tr> + <tr> + <td class="row1"> + + <table class="tablebg" width="100%" cellpadding="2" cellspacing="1" border="0"> + <tr> + <th width="22%" height="26">{L_AUTHOR}</th> + <th>{L_MESSAGE}</th> + </tr> + <!-- BEGIN post_postrow --> + <!-- IF post_postrow.S_ROW_COUNT is even --> + <tr class="row1"> + <!-- ELSE --> + <tr class="row2"> + <!-- ENDIF --> + <td width="22%" align="left" valign="top"><span class="name"><a name="{post_postrow.U_POST_ID}"></a><b>{post_postrow.POSTER_NAME}</b></span></td> + <td height="28" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"> + <tr> + <td width="100%">{post_postrow.MINI_POST_IMG}<span class="postdetails">{L_POSTED}: {post_postrow.POST_DATE}<span class="gen"> </span> {L_POST_SUBJECT}: {post_postrow.POST_SUBJECT}</span></td> + </tr> + <tr> + <td colspan="2"><hr /></td> + </tr> + <tr> + <td colspan="2"><span class="postbody">{post_postrow.MESSAGE}</span></td> + </tr> + </table></td> + </tr> + <tr> + <td class="spacer" colspan="2" height="1"><img src="images/spacer.gif" alt="" width="1" height="1" /></td> + </tr> + <!-- END post_postrow --> + </table> + + </td> + </tr> +</table> +<br /> +<!-- ENDIF --> + <!-- IF S_DISPLAY_PREVIEW --><!-- INCLUDE posting_preview.html --><!-- ENDIF --> <table class="tablebg" width="100%" cellspacing="1" cellpadding="3" border="0">