Commits

Doug Stewart committed 68c4771

Bulk import of bbPress and BuddyPress fixes from 1.3-support branch.

  • Participants
  • Parent commits cbbbc95

Comments (0)

Files changed (24)

File README.markdown

 
 ### VERSION HISTORY ###
 
+* Version 1.3.6
+	* **Issues Fixed**
+		* BuddyPress "Load More" link in Activity streams actually, you know, *loads more*.
+		* bbPress support updated for all the proper bbP hooks, so certain plugins that weren't working before now **POOF** magically work again.
 * Version 1.3.5
 	* **Issues Fixed**
 		* Fixed error where selecting "Display Text: no" in theme header options would still display the 50% opacity #titltedesc div.
 	* Initial release
 
 ### KNOWN ISSUES ###
+* Version 1.3.5
+	* <del>bbPress support lags behind core bbPress Twenty Ten standards</del>
+	* <del>"Load More" link in BuddyPress Activity screen doesn't work</del>
 * Version 1.3.4
 	* <del>Blanking header text via theme admin settings doesn't blank the 50% transparency div in the default style</del>
 * Version 1.3.3

File bbpress/content-single-topic-lead.php

 
 				<td class="bbp-topic-author">
 
-					<?php bbp_topic_author_link(); ?>
+					<?php bbp_topic_author_link( array( 'sep' => '<br />' ) ); ?>
 
 					<?php if ( is_super_admin() ) : ?>
 

File bbpress/css/bbpress-rtl.css

 }
 #content .bbp-topic-author,
 #content .bbp-reply-author {
-	padding: 20px 0 20px 20px
+	padding: 20px 0 20px 20px;
 	width: 90px;
 	text-align: center;
 	vertical-align: top;
 #content tbody .bbp-reply-content {
 	vertical-align: top;
 	padding: 15px 15px 10px 10px;
+	overflow: auto;
 }
 
 #content .bbp-topic-content img,
 .bbp-topics-front tr.super-sticky td,
 .bbp-topics tr.super-sticky td,
 .bbp-topics tr.sticky td,
-.bbp-forum-info tr.sticky td {
+.bbp-forum-content tr.sticky td {
 	background-color: #ffffe0 !important;
 	font-size: 1.1em;
 }
 /* =Widgets
 -------------------------------------------------------------- */
 
-.widget-area .bbp-login-form fieldset legend {
+.bbp-login-form fieldset legend {
 	display: none;
 }
 
-.widget-area .bbp-login-form .bbp-username label,
-.widget-area .bbp-login-form .bbp-password label {
+.bbp-login-form .bbp-username input,
+.bbp-login-form .bbp-password input {
+	width: 90%;
+	padding: 5px;
+}
+s
+.bbp-login-form .bbp-username label,
+.bbp-login-form .bbp-password label {
 	width: 70px;
 	display: inline-block;
 }
-.widget-area .bbp-login-form .bbp-username,
-.widget-area .bbp-login-form .bbp-password,
-.widget-area .bbp-login-form .bbp-remember-me,
-.widget-area .bbp-login-form .bbp-submit-wrapper {
+.bbp-login-form .bbp-username,
+.bbp-login-form .bbp-password,
+.bbp-login-form .bbp-remember-me,
+.bbp-login-form .bbp-submit-wrapper {
 	margin-top: 10px;
 }
 
-.widget-area .bbp-login-form .bbp-remember-me {
-	float: right;
+.bbp-login-form .bbp-remember-me {
+
 }
 
-.widget-area .bbp-login-form .bbp-submit-wrapper {
-	float: left;
+.bbp-login-form .bbp-submit-wrapper {
+	text-align: left;
 }
 
-.widget-area .bbp-logged-in img.avatar {
+.bbp-login-form .bbp-login-links {
+}
+
+.bbp-login-form .bbp-login-links a {
+	float: right;
+	clear: right;
+}
+
+.bbp-logged-in img.avatar {
 	float: right;
 	margin-left: 15px;
 }
 
-.widget-area .bbp-logged-in h4 {
+.bbp-logged-in h4 {
 	font-weight: bold;
 	font-size: 1.3em;
-	display: inline;
 	clear: none;
-}
-
-.widget-area .bbp-logged-in a.logout-link {
-	display: block;
+	margin-bottom: 10px;
 }
 
 /* =Avatars
 
 fieldset div.avatar {
 	float: left;
-}
+}
+
+/* =BuddyPress Activity Streams
+-------------------------------------------------------------- */
+
+.activity-list li.bbp_topic_create .activity-content .activity-inner,
+.activity-list li.bbp_relsy_create .activity-content .activity-inner {
+	border-left: none;
+	margin-left: 0;
+	padding-left: 0;
+	border-right: 2px solid #EAEAEA;
+	margin-right: 5px;
+	padding-right: 10px;
+}

File bbpress/css/bbpress.css

 #main table.bbp-forums,
 #main table.bbp-replies {
 	clear: left;
+	table-layout: fixed;
 	width: 100%;
 }
 
 #lb-content th.bbp-topic-author,
 #lb-content th.bbp-reply-author {
 	text-align: center;
+	width: 120px;
 }
 #lb-content th.bbp-topic-content,
 #lb-content th.bbp-reply-content {
 	color: #aaa;
 }
 
+/*#lb-content .bbp-forum-info {
+	width: 55%;
+	text-align: left;
+}
+*/
 #lb-content .bbp-forum-topic-count,
 #lb-content .bbp-forum-reply-count,
 #lb-content .bbp-topic-reply-count,
 }
 #lb-content td.bbp-topic-author,
 #lb-content td.bbp-reply-author {
-	padding: 20px 0 20px 20px;
-	width: 90px;
+	padding: 20px;
 	text-align: center;
 	vertical-align: top;
 }
+.bbp-topic-title {
+	width: 55%;
+	text-align: left;
+}
 .bbp-topic-freshness,
 .bbp-forum-freshness {
-	text-align: center;
-	width: 20%;
+	text-align: right;
+	width: 25%;
+	padding-right: 15px;
 }
 
 #lb-content tbody .bbp-topic-content,
 #lb-content tbody .bbp-reply-content {
 	vertical-align: top;
 	padding: 15px 10px 10px 15px;
+	overflow: auto;
 }
 
 #lb-content .bbp-topic-content img,
 	margin: 0px 0px 10px;
 }
 
+textarea#bbp_reply_content,
+textarea#bbp_topic_content {
+	width: 100%;
+	box-sizing: border-box;
+	-webkit-box-sizing:border-box;
+	-moz-box-sizing: border-box;
+	-ms-box-sizing: border-box;
+}
+
 .bbp-topic-form,
 .bbp-reply-form,
 .bbp-topic-tag-form {
 	color: #555;
 	text-decoration: none;
 }
-div.bbp-template-notice a:hover {
-	color: #000;
-}
-div.bbp-template-notice.info {
-	border: #cee1ef 1px solid;
-	background-color: #f0f8ff;
-}
-div.bbp-template-notice.important {
-	border: #e6db55 1px solid;
-	background-color: #fffbcc;
-}
-div.bbp-template-notice.error,
-div.bbp-template-notice.warning {
-	background-color: #ffebe8;
-	border-color: #c00;
-}
-div.bbp-template-notice.error a,
-div.bbp-template-notice.warning a {
-	color: #c00;
-}
-div.bbp-template-notice p {
-	margin: 0.5em 0 6px 0 !important;
-	padding: 2px;
-	font-size: 12px;
-	line-height: 140%;
-}
-div.bbp-template-notice > p.description {
-	color: #333;
-}
+	div.bbp-template-notice a:hover {
+		color: #000;
+	}
+	div.bbp-template-notice.info {
+		border: #cee1ef 1px solid;
+		background-color: #f0f8ff;
+	}
+	div.bbp-template-notice.important {
+		border: #e6db55 1px solid;
+		background-color: #fffbcc;
+	}
+	div.bbp-template-notice.error,
+	div.bbp-template-notice.warning {
+		background-color: #ffebe8;
+		border-color: #c00;
+	}
+	div.bbp-template-notice.error a,
+	div.bbp-template-notice.warning a {
+		color: #c00;
+	}
+	div.bbp-template-notice p {
+		margin: 0.5em 0 6px 0 !important;
+		padding: 2px;
+		font-size: 12px;
+		line-height: 140%;
+	}
+
 /* =Stickies
 -------------------------------------------------------------- */
 
 .bbp-topics-front tr.super-sticky td,
 .bbp-topics tr.super-sticky td,
 .bbp-topics tr.sticky td,
-.bbp-forum-info tr.sticky td {
+.bbp-forum-content tr.sticky td {
 	background-color: #ffffe0 !important;
 	font-size: 1.1em;
 }
 /* =Widgets
 -------------------------------------------------------------- */
 
-.widget-area .bbp-login-form fieldset legend {
+.bbp-login-form fieldset legend {
 	display: none;
 }
 
-.widget-area .bbp-login-form .bbp-username label,
-.widget-area .bbp-login-form .bbp-password label {
+.bbp-login-form .bbp-username input,
+.bbp-login-form .bbp-email input,
+.bbp-login-form .bbp-password input {
+	padding: 5px;
+}
+
+.bbp-login-form .bbp-username label,
+.bbp-login-form .bbp-password label {
 	width: 70px;
 	display: inline-block;
 }
-.widget-area .bbp-login-form .bbp-username,
-.widget-area .bbp-login-form .bbp-password,
-.widget-area .bbp-login-form .bbp-remember-me,
-.widget-area .bbp-login-form .bbp-submit-wrapper {
+.bbp-login-form .bbp-username,
+.bbp-login-form .bbp-password,
+.bbp-login-form .bbp-remember-me,
+.bbp-login-form .bbp-submit-wrapper {
 	margin-top: 10px;
 }
 
-.widget-area .bbp-login-form .bbp-remember-me {
-	float: left;
+.bbp-login-form .bbp-remember-me {
+
 }
 
-.widget-area .bbp-login-form .bbp-submit-wrapper {
-	float: right;
+.bbp-login-form .bbp-submit-wrapper {
+	text-align: right;
 }
 
-.widget-area .bbp-logged-in img.avatar {
+.bbp-login-form .bbp-login-links {
+}
+
+.bbp-login-form .bbp-login-links a {
+	float: left;
+	clear: left;
+}
+
+.bbp-logged-in img.avatar {
 	float: left;
 	margin-right: 15px;
 }
 
-.widget-area .bbp-logged-in h4 {
+.bbp-logged-in h4 {
 	font-weight: bold;
 	font-size: 1.3em;
-	display: inline;
 	clear: none;
-}
-
-.widget-area .bbp-logged-in a.logout-link {
-	display: block;
+	margin-bottom: 10px;
 }
 
 /* =Avatars
 
 fieldset div.avatar {
 	float: right;
-}
+}
+
+/* =BuddyPress Activity Streams
+-------------------------------------------------------------- */
+
+.activity-list li.bbp_topic_create .activity-content .activity-inner,
+.activity-list li.bbp_reply_create .activity-content .activity-inner {
+	border-left: 2px solid #EAEAEA;
+	margin-left: 5px;
+	padding-left: 10px;
+}

File bbpress/feedback-no-access.php

 
 ?>
 
-<div id="forum-private" class="bbp-forum-info">
+<div id="forum-private" class="bbp-forum-content">
 	<h1 class="entry-title"><?php _e( 'Private', 'bbpress' ); ?></h1>
 	<div class="entry-content">
 		<div class="bbp-template-notice info">

File bbpress/form-anonymous.php

 
 <?php if ( bbp_is_anonymous() || ( bbp_is_topic_edit() && bbp_is_topic_anonymous() ) || ( bbp_is_reply_edit() && bbp_is_reply_anonymous() ) ) : ?>
 
+	<?php do_action( 'bbp_theme_before_anonymous_form' ); ?>
+
 	<fieldset class="bbp-form">
-		<legend><?php ( bbp_is_topic_edit() || bbp_is_reply_edit() ) ? _e( 'Author information', 'bbpress' ) : _e( 'Your information:', 'bbpress' ); ?></legend>
+		<legend><?php ( bbp_is_topic_edit() || bbp_is_reply_edit() ) ? _e( 'Author Information', 'bbpress' ) : _e( 'Your information:', 'bbpress' ); ?></legend>
+
+		<?php do_action( 'bbp_theme_anonymous_form_extras_top' ); ?>
+
 		<p>
 			<label for="bbp_anonymous_author"><?php _e( 'Name (required):', 'bbpress' ); ?></label><br />
-			<input type="text" id="bbp_anonymous_author" value="<?php bbp_is_topic_edit() ? bbp_topic_author() : bbp_is_reply_edit() ? bbp_reply_author() : bbp_current_anonymous_user_data( 'name' ); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_anonymous_name" />
+			<input type="text" id="bbp_anonymous_author"  value="<?php bbp_is_topic_edit() ? bbp_topic_author()       : bbp_is_reply_edit() ? bbp_reply_author()       : bbp_current_anonymous_user_data( 'name' );    ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_anonymous_name" />
 		</p>
 
 		<p>
 			<label for="bbp_anonymous_email"><?php _e( 'Mail (will not be published) (required):', 'bbpress' ); ?></label><br />
-			<input type="text" id="bbp_anonymous_email" value="<?php echo ( bbp_is_topic_edit() || bbp_is_reply_edit() ) ? get_post_meta( $post->ID, '_bbp_anonymous_email', true ) : bbp_get_current_anonymous_user_data( 'email' ); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_anonymous_email" />
+			<input type="text" id="bbp_anonymous_email"   value="<?php bbp_is_topic_edit() ? bbp_topic_author_email() : bbp_is_reply_edit() ? bbp_reply_author_email() : bbp_current_anonymous_user_data( 'email' );   ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_anonymous_email" />
 		</p>
 
 		<p>
 			<label for="bbp_anonymous_website"><?php _e( 'Website:', 'bbpress' ); ?></label><br />
-			<input type="text" id="bbp_anonymous_website" value="<?php bbp_is_topic_edit() ? bbp_topic_author_url() : bbp_is_reply_edit() ? bbp_reply_author_url() : bbp_current_anonymous_user_data( 'website' ); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_anonymous_website" />
+			<input type="text" id="bbp_anonymous_website" value="<?php bbp_is_topic_edit() ? bbp_topic_author_url()   : bbp_is_reply_edit() ? bbp_reply_author_url()   : bbp_current_anonymous_user_data( 'website' ); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_anonymous_website" />
 		</p>
+
+		<?php do_action( 'bbp_theme_anonymous_form_extras_bottom' ); ?>
+
 	</fieldset>
 
+	<?php do_action( 'bbp_theme_after_anonymous_form' ); ?>
+
 <?php endif; ?>

File bbpress/form-protected.php

  * @subpackage Theme
  */
 
-// Make sure we're back where we started
-wp_reset_postdata();
-
 ?>
 
 	<fieldset class="bbp-form" id="bbp-protected">

File bbpress/form-reply.php

  * @subpackage Theme
  */
 
-// Make sure we're back where we started
-wp_reset_postdata();
-
 ?>
 
 	<?php if ( bbp_is_reply_edit() ) : ?>
 
 	<?php endif; ?>
 
-	<?php if ( bbp_is_reply_edit() || bbp_is_topic_open() || current_user_can( 'edit_topic', bbp_get_topic_id() ) ) : ?>
+	<?php if ( bbp_current_user_can_access_create_reply_form() ) : ?>
 
-		<?php if ( ( bbp_is_reply_edit() && current_user_can( 'edit_reply', bbp_get_reply_id() ) ) || ( current_user_can( 'publish_topics' ) || bbp_allow_anonymous() ) ) : ?>
+		<div id="new-reply-<?php bbp_topic_id(); ?>" class="bbp-reply-form">
 
-			<div id="new-reply-<?php bbp_topic_id(); ?>" class="bbp-reply-form">
+			<form id="new-post" name="new-post" method="post" action="">
 
-				<form id="new-post" name="new-post" method="post" action="">
-					<fieldset class="bbp-form">
-						<legend><?php printf( __( 'Reply to: &ldquo;%s&rdquo;', 'bbpress' ), bbp_get_topic_title() ); ?></legend>
+				<?php do_action( 'bbp_theme_before_reply_form' ); ?>
 
-						<?php if ( !bbp_is_topic_open() && !bbp_is_reply_edit() ) : ?>
+				<fieldset class="bbp-form">
+					<legend><?php printf( __( 'Reply To: %s', 'bbpress' ), bbp_get_topic_title() ); ?></legend>
 
-							<div class="bbp-template-notice">
-								<p><?php _e( 'This topic is marked as closed to new replies, however your posting capabilities still allow you to do so.', 'bbpress' ); ?></p>
-							</div>
+					<?php do_action( 'bbp_theme_before_reply_form_notices' ); ?>
+
+					<?php if ( !bbp_is_topic_open() && !bbp_is_reply_edit() ) : ?>
+
+						<div class="bbp-template-notice">
+							<p><?php _e( 'This topic is marked as closed to new replies, however your posting capabilities still allow you to do so.', 'bbpress' ); ?></p>
+						</div>
+
+					<?php endif; ?>
+
+					<?php if ( current_user_can( 'unfiltered_html' ) ) : ?>
+
+						<div class="bbp-template-notice">
+							<p><?php _e( 'Your account has the ability to post unrestricted HTML content.', 'bbpress' ); ?></p>
+						</div>
+
+					<?php endif; ?>
+
+					<?php do_action( 'bbp_template_notices' ); ?>
+
+					<div>
+
+						<?php bbp_get_template_part( 'bbpress/form', 'anonymous' ); ?>
+
+						<?php do_action( 'bbp_theme_before_reply_form_content' ); ?>
+
+						<p>
+							<label for="bbp_reply_content"><?php _e( 'Reply:', 'bbpress' ); ?></label><br />
+							<textarea id="bbp_reply_content" tabindex="<?php bbp_tab_index(); ?>" name="bbp_reply_content" rows="6"><?php bbp_form_reply_content(); ?></textarea>
+						</p>
+
+						<?php do_action( 'bbp_theme_after_reply_form_content' ); ?>
+
+						<?php if ( !current_user_can( 'unfiltered_html' ) ) : ?>
+
+							<p class="form-allowed-tags">
+								<label><?php _e( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes:','bbpress' ); ?></label><br />
+								<code><?php bbp_allowed_tags(); ?></code>
+							</p>
 
 						<?php endif; ?>
 
-						<?php if ( current_user_can( 'unfiltered_html' ) ) : ?>
+						<?php do_action( 'bbp_theme_before_reply_form_tags' ); ?>
 
-							<div class="bbp-template-notice">
-								<p><?php _e( 'Your account has the ability to post unrestricted HTML content.', 'bbpress' ); ?></p>
-							</div>
+						<p>
+							<label for="bbp_topic_tags"><?php _e( 'Tags:', 'bbpress' ); ?></label><br />
+							<input type="text" value="<?php bbp_form_topic_tags(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_topic_tags" id="bbp_topic_tags" <?php disabled( bbp_is_topic_spam() ); ?> />
+						</p>
+
+						<?php do_action( 'bbp_theme_after_reply_form_tags' ); ?>
+
+						<?php if ( bbp_is_subscriptions_active() && !bbp_is_anonymous() && ( !bbp_is_reply_edit() || ( bbp_is_reply_edit() && !bbp_is_reply_anonymous() ) ) ) : ?>
+
+							<?php do_action( 'bbp_theme_before_reply_form_subscription' ); ?>
+
+							<p>
+
+								<input name="bbp_topic_subscription" id="bbp_topic_subscription" type="checkbox" value="bbp_subscribe"<?php bbp_form_topic_subscribed(); ?> tabindex="<?php bbp_tab_index(); ?>" />
+
+								<?php if ( bbp_is_reply_edit() && $post->post_author != bbp_get_current_user_id() ) : ?>
+
+									<label for="bbp_topic_subscription"><?php _e( 'Notify the author of follow-up replies via email', 'bbpress' ); ?></label>
+
+								<?php else : ?>
+
+									<label for="bbp_topic_subscription"><?php _e( 'Notify me of follow-up replies via email', 'bbpress' ); ?></label>
+
+								<?php endif; ?>
+
+							</p>
+
+							<?php do_action( 'bbp_theme_after_reply_form_subscription' ); ?>
 
 						<?php endif; ?>
 
-						<?php do_action( 'bbp_template_notices' ); ?>
+						<?php if ( bbp_allow_revisions() && bbp_is_reply_edit() ) : ?>
 
-						<div>
+							<?php do_action( 'bbp_theme_before_reply_form_revisions' ); ?>
 
-							<div class="avatar">
+							<fieldset class="bbp-form">
+								<legend><?php _e( 'Revision', 'bbpress' ); ?></legend>
+								<div>
+									<input name="bbp_log_reply_edit" id="bbp_log_reply_edit" type="checkbox" value="1" <?php bbp_form_reply_log_edit(); ?> tabindex="<?php bbp_tab_index(); ?>" />
+									<label for="bbp_log_reply_edit"><?php _e( 'Keep a log of this edit:', 'bbpress' ); ?></label><br />
+								</div>
 
-								<?php bbp_is_reply_edit() ? bbp_reply_author_avatar( bbp_get_reply_id(), 120 ) : bbp_current_user_avatar( 120 ); ?>
+								<div>
+									<label for="bbp_reply_edit_reason"><?php printf( __( 'Optional reason for editing:', 'bbpress' ), bbp_get_current_user_name() ); ?></label><br />
+									<input type="text" value="<?php bbp_form_reply_edit_reason(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_reply_edit_reason" id="bbp_reply_edit_reason" />
+								</div>
+							</fieldset>
 
-							</div>
+							<?php do_action( 'bbp_theme_after_reply_form_revisions' ); ?>
 
-							<?php bbp_get_template_part( 'bbpress/form', 'anonymous' ); ?>
+						<?php else : ?>
 
-							<p>
-								<label for="bbp_reply_content"><?php _e( 'Reply:', 'bbpress' ); ?></label><br />
-								<textarea id="bbp_reply_content" tabindex="<?php bbp_tab_index(); ?>" name="bbp_reply_content" cols="51" rows="6"><?php bbp_form_reply_content(); ?></textarea>
-							</p>
+							<?php bbp_topic_admin_links(); ?>
 
-							<?php if ( !current_user_can( 'unfiltered_html' ) ) : ?>
+						<?php endif; ?>
 
-								<p class="form-allowed-tags">
-									<label><?php _e( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes:','bbpress' ); ?></label><br />
-									<code><?php bbp_allowed_tags(); ?></code>
-								</p>
+						<?php do_action( 'bbp_theme_before_reply_form_submit_wrapper' ); ?>
 
-							<?php endif; ?>
+						<div class="bbp-submit-wrapper">
 
-							<p>
-								<label for="bbp_topic_tags"><?php _e( 'Tags:', 'bbpress' ); ?></label><br />
-								<input id="bbp_topic_tags" type="text" value="<?php bbp_form_topic_tags(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_topic_tags" />
-							</p>
+							<?php do_action( 'bbp_theme_before_reply_form_submit_button' ); ?>
 
-							<?php if ( bbp_is_subscriptions_active() && !bbp_is_anonymous() && ( !bbp_is_reply_edit() || ( bbp_is_reply_edit() && !bbp_is_reply_anonymous() ) ) ) : ?>
+							<button type="submit" tabindex="<?php bbp_tab_index(); ?>" id="bbp_reply_submit" name="bbp_reply_submit" class="button submit"><?php _e( 'Submit', 'bbpress' ); ?></button>
 
-								<p>
+							<?php do_action( 'bbp_theme_after_reply_form_submit_button' ); ?>
 
-									<input name="bbp_topic_subscription" id="bbp_topic_subscription" type="checkbox" value="bbp_subscribe"<?php bbp_form_topic_subscribed(); ?> tabindex="<?php bbp_tab_index(); ?>" />
-
-									<?php if ( bbp_is_reply_edit() && $post->post_author != bbp_get_current_user_id() ) : ?>
-
-										<label for="bbp_topic_subscription"><?php _e( 'Notify the author of follow-up replies via email', 'bbpress' ); ?></label>
-
-									<?php else : ?>
-
-										<label for="bbp_topic_subscription"><?php _e( 'Notify me of follow-up replies via email', 'bbpress' ); ?></label>
-
-									<?php endif; ?>
-
-								</p>
-
-							<?php endif; ?>
-
-							<?php if ( bbp_is_reply_edit() ) : ?>
-
-								<fieldset class="bbp-form">
-									<legend><?php _e( 'Revision', 'bbpress' ); ?></legend>
-									<div>
-										<input name="bbp_log_reply_edit" id="bbp_log_reply_edit" type="checkbox" value="1" <?php bbp_form_reply_log_edit(); ?> tabindex="<?php bbp_tab_index(); ?>" />
-										<label for="bbp_log_reply_edit"><?php _e( 'Keep a log of this edit:', 'bbpress' ); ?></label><br />
-									</div>
-
-									<div>
-										<label for="bbp_reply_edit_reason"><?php printf( __( 'Optional reason for editing:', 'bbpress' ), bbp_get_current_user_name() ); ?></label><br />
-										<input type="text" value="<?php bbp_form_reply_edit_reason(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_reply_edit_reason" id="bbp_reply_edit_reason" />
-									</div>
-								</fieldset>
-
-							<?php else : ?>
-
-								<?php bbp_topic_admin_links(); ?>
-
-							<?php endif; ?>
-
-							<div class="bbp-submit-wrapper">
-								<button type="submit" tabindex="<?php bbp_tab_index(); ?>" id="bbp_reply_submit" name="bbp_reply_submit"><?php _e( 'Submit', 'bbpress' ); ?></button>
-							</div>
 						</div>
 
-						<?php bbp_reply_form_fields(); ?>
+						<?php do_action( 'bbp_theme_after_reply_form_submit_wrapper' ); ?>
 
-					</fieldset>
-				</form>
+					</div>
+
+					<?php bbp_reply_form_fields(); ?>
+
+				</fieldset>
+
+				<?php do_action( 'bbp_theme_after_reply_form' ); ?>
+
+			</form>
+		</div>
+
+	<?php elseif ( bbp_is_topic_closed() ) : ?>
+
+		<div id="no-reply-<?php bbp_topic_id(); ?>" class="bbp-no-reply">
+			<div class="bbp-template-notice">
+				<p><?php printf( __( 'The topic &#8216;%s&#8217; is closed to new replies.', 'bbpress' ), bbp_get_topic_title() ); ?></p>
 			</div>
+		</div>
 
-		<?php else : ?>
+	<?php elseif ( bbp_is_forum_closed( bbp_get_topic_forum_id() ) ) : ?>
 
-			<div id="no-reply-<?php bbp_topic_id(); ?>" class="bbp-no-reply">
-				<div class="bbp-template-notice">
-					<p><?php is_user_logged_in() ? _e( 'You cannot reply to this topic.', 'bbpress' ) : _e( 'You must be logged in to reply to this topic.', 'bbpress' ); ?></p>
-				</div>
+		<div id="no-reply-<?php bbp_topic_id(); ?>" class="bbp-no-reply">
+			<div class="bbp-template-notice">
+				<p><?php printf( __( 'The forum &#8216;%s&#8217; is closed to new topics and replies.', 'bbpress' ), bbp_get_forum_title( bbp_get_topic_forum_id() ) ); ?></p>
 			</div>
-
-		<?php endif; ?>
+		</div>
 
 	<?php else : ?>
 
 		<div id="no-reply-<?php bbp_topic_id(); ?>" class="bbp-no-reply">
 			<div class="bbp-template-notice">
-				<p><?php _e( 'This topic has been closed to new replies.', 'bbpress' ); ?></p>
+				<p><?php is_user_logged_in() ? _e( 'You cannot reply to this topic.', 'bbpress' ) : _e( 'You must be logged in to reply to this topic.', 'bbpress' ); ?></p>
 			</div>
 		</div>
 

File bbpress/form-topic-merge.php

 						</div>
 
 						<div class="bbp-submit-wrapper">
-							<button type="submit" tabindex="<?php bbp_tab_index(); ?>" id="bbp_merge_topic_submit" name="bbp_merge_topic_submit"><?php _e( 'Submit', 'bbpress' ); ?></button>
+							<button type="submit" tabindex="<?php bbp_tab_index(); ?>" id="bbp_merge_topic_submit" name="bbp_merge_topic_submit" class="button submit"><?php _e( 'Submit', 'bbpress' ); ?></button>
 						</div>
 					</div>
 

File bbpress/form-topic-split.php

 						</div>
 
 						<div class="bbp-submit-wrapper">
-							<button type="submit" tabindex="<?php bbp_tab_index(); ?>" id="bbp_merge_topic_submit" name="bbp_merge_topic_submit"><?php _e( 'Submit', 'bbpress' ); ?></button>
+							<button type="submit" tabindex="<?php bbp_tab_index(); ?>" id="bbp_merge_topic_submit" name="bbp_merge_topic_submit" class="button submit"><?php _e( 'Submit', 'bbpress' ); ?></button>
 						</div>
 					</div>
 

File bbpress/form-topic-tag.php

 
 					<div>
 						<label for="tag-name"><?php _e( 'Name:', 'bbpress' ); ?></label>
-						<input type="text" name="tag-name" size="20" maxlength="40" tabindex="<?php bbp_tab_index(); ?>" value="<?php echo esc_attr( bbp_get_topic_tag_slug() ); ?>" />
+						<input type="text" id="tag-name" name="tag-name" size="20" maxlength="40" tabindex="<?php bbp_tab_index(); ?>" value="<?php echo esc_attr( bbp_get_topic_tag_name() ); ?>" />
 					</div>
 
 					<div>
-						<label for="tag-name"><?php _e( 'Slug:', 'bbpress' ); ?></label>
-						<input type="text" name="tag-slug" size="20" maxlength="40" tabindex="<?php bbp_tab_index(); ?>" value="<?php echo esc_attr( apply_filters( 'editable_slug', bbp_get_topic_tag_slug() ) ); ?>" />
+						<label for="tag-slug"><?php _e( 'Slug:', 'bbpress' ); ?></label>
+						<input type="text" id="tag-slug" name="tag-slug" size="20" maxlength="40" tabindex="<?php bbp_tab_index(); ?>" value="<?php echo esc_attr( apply_filters( 'editable_slug', bbp_get_topic_tag_slug() ) ); ?>" />
 					</div>
 
 					<div class="bbp-submit-wrapper">
 						<input type="submit" name="submit" tabindex="<?php bbp_tab_index(); ?>" value="<?php esc_attr_e( 'Update', 'bbpress' ); ?>" /><br />
 
-						<input type="hidden" name="tag-id" value="<?php bbp_get_topic_tag_id(); ?>" />
+						<input type="hidden" name="tag-id" value="<?php bbp_topic_tag_id(); ?>" />
 						<input type="hidden" name="action" value="bbp-update-topic-tag" />
 
 						<?php wp_nonce_field( 'update-tag_' . bbp_get_topic_tag_id() ); ?>
 				<form id="merge_tag" name="merge_tag" method="post" action="">
 
 					<div>
-						<label for="tag-name"><?php _e( 'Existing tag:', 'bbpress' ); ?></label>
-						<input type="text" name="tag-name" size="22" tabindex="<?php bbp_tab_index(); ?>" maxlength="40" />
+						<label for="tag-existing-name"><?php _e( 'Existing tag:', 'bbpress' ); ?></label>
+						<input type="text" id="tag-existing-name" name="tag-existing-name" size="22" tabindex="<?php bbp_tab_index(); ?>" maxlength="40" />
 					</div>
 
 					<div class="bbp-submit-wrapper">

File bbpress/form-topic.php

  * @subpackage Theme
  */
 
-// Make sure we're back where we started
-wp_reset_postdata();
-
 ?>
 
-	<?php if ( !bbp_is_forum() ) : ?>
+	<?php if ( !bbp_is_single_forum() ) : ?>
 
 		<?php bbp_breadcrumb(); ?>
 
 		<div id="new-topic-<?php bbp_topic_id(); ?>" class="bbp-topic-form">
 
 			<form id="new-post" name="new-post" method="post" action="">
+
+				<?php do_action( 'bbp_theme_before_topic_form' ); ?>
+
 				<fieldset class="bbp-form">
 					<legend>
 
 						<?php
 							if ( bbp_is_topic_edit() )
-								printf( __( 'Edit topic "%s"', 'bbpress' ), bbp_get_topic_title() );
+								printf( __( 'Now Editing &ldquo;%s&rdquo;', 'bbpress' ), bbp_get_topic_title() );
 							else
-								bbp_is_forum() ? printf( __( 'Create new topic in: &ldquo;%s&rdquo;', 'bbpress' ), bbp_get_forum_title() ) : _e( 'Create new topic', 'bbpress' );
+								bbp_is_single_forum() ? printf( __( 'Create New Topic in &ldquo;%s&rdquo;', 'bbpress' ), bbp_get_forum_title() ) : _e( 'Create New Topic', 'bbpress' );
 						?>
 
 					</legend>
 
+					<?php do_action( 'bbp_theme_before_topic_form_notices' ); ?>
+
 					<?php if ( !bbp_is_topic_edit() && bbp_is_forum_closed() ) : ?>
 
 						<div class="bbp-template-notice">
 					<?php do_action( 'bbp_template_notices' ); ?>
 
 					<div>
-						<div class="avatar">
-
-							<?php bbp_is_topic_edit() ? bbp_topic_author_avatar( bbp_get_topic_id(), 120 ) : bbp_current_user_avatar( 120 ); ?>
-
-						</div>
 
 						<?php bbp_get_template_part( 'bbpress/form', 'anonymous' ); ?>
 
+						<?php do_action( 'bbp_theme_before_topic_form_title' ); ?>
+
 						<p>
 							<label for="bbp_topic_title"><?php printf( __( 'Topic Title (Maximum Length: %d):', 'bbpress' ), bbp_get_title_max_length() ); ?></label><br />
 							<input type="text" id="bbp_topic_title" value="<?php bbp_form_topic_title(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_topic_title" maxlength="<?php bbp_title_max_length(); ?>" />
 						</p>
 
+						<?php do_action( 'bbp_theme_after_topic_form_title' ); ?>
+
+						<?php do_action( 'bbp_theme_before_topic_form_content' ); ?>
+
 						<p>
 							<label for="bbp_topic_content"><?php _e( 'Topic Description:', 'bbpress' ); ?></label><br />
-							<textarea id="bbp_topic_content" tabindex="<?php bbp_tab_index(); ?>" name="bbp_topic_content" cols="51" rows="6"><?php bbp_form_topic_content(); ?></textarea>
+							<textarea id="bbp_topic_content" tabindex="<?php bbp_tab_index(); ?>" name="bbp_topic_content" cols="60" rows="6"><?php bbp_form_topic_content(); ?></textarea>
 						</p>
 
+						<?php do_action( 'bbp_theme_after_topic_form_content' ); ?>
+
 						<?php if ( !current_user_can( 'unfiltered_html' ) ) : ?>
 
 							<p class="form-allowed-tags">
 
 						<?php endif; ?>
 
+						<?php do_action( 'bbp_theme_before_topic_form_tags' ); ?>
+
 						<p>
 							<label for="bbp_topic_tags"><?php _e( 'Topic Tags:', 'bbpress' ); ?></label><br />
-							<input type="text" value="<?php bbp_form_topic_tags(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_topic_tags" id="bbp_topic_tags" />
+							<input type="text" value="<?php bbp_form_topic_tags(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_topic_tags" id="bbp_topic_tags" <?php disabled( bbp_is_topic_spam() ); ?> />
 						</p>
 
-						<?php if ( !bbp_is_forum() ) : ?>
+						<?php do_action( 'bbp_theme_after_topic_form_tags' ); ?>
+
+						<?php if ( !bbp_is_single_forum() ) : ?>
+
+							<?php do_action( 'bbp_theme_before_topic_form_forum' ); ?>
 
 							<p>
 								<label for="bbp_forum_id"><?php _e( 'Forum:', 'bbpress' ); ?></label><br />
 								<?php bbp_dropdown( array( 'selected' => bbp_get_form_topic_forum() ) ); ?>
 							</p>
 
+							<?php do_action( 'bbp_theme_after_topic_form_forum' ); ?>
+
 						<?php endif; ?>
 
 						<?php if ( current_user_can( 'moderate' ) ) : ?>
 
+							<?php do_action( 'bbp_theme_before_topic_form_type' ); ?>
+
 							<p>
 
 								<label for="bbp_stick_topic"><?php _e( 'Topic Type:', 'bbpress' ); ?></label><br />
 
 							</p>
 
+							<?php do_action( 'bbp_theme_after_topic_form_type' ); ?>
+
 						<?php endif; ?>
 
 						<?php if ( bbp_is_subscriptions_active() && !bbp_is_anonymous() && ( !bbp_is_topic_edit() || ( bbp_is_topic_edit() && !bbp_is_topic_anonymous() ) ) ) : ?>
 
+							<?php do_action( 'bbp_theme_before_topic_form_subscriptions' ); ?>
+
 							<p>
 								<input name="bbp_topic_subscription" id="bbp_topic_subscription" type="checkbox" value="bbp_subscribe" <?php bbp_form_topic_subscribed(); ?> tabindex="<?php bbp_tab_index(); ?>" />
 
 								<?php endif; ?>
 							</p>
 
+							<?php do_action( 'bbp_theme_after_topic_form_subscriptions' ); ?>
+
 						<?php endif; ?>
 
-						<?php if ( bbp_is_topic_edit() ) : ?>
+						<?php if ( bbp_allow_revisions() && bbp_is_topic_edit() ) : ?>
+
+							<?php do_action( 'bbp_theme_before_topic_form_revisions' ); ?>
 
 							<fieldset class="bbp-form">
 								<legend><?php _e( 'Revision', 'bbpress' ); ?></legend>
 								</div>
 							</fieldset>
 
+							<?php do_action( 'bbp_theme_after_topic_form_revisions' ); ?>
+
 						<?php endif; ?>
 
+						<?php do_action( 'bbp_theme_before_topic_form_submit_wrapper' ); ?>
+
 						<div class="bbp-submit-wrapper">
-							<button type="submit" tabindex="<?php bbp_tab_index(); ?>" id="bbp_topic_submit" name="bbp_topic_submit"><?php _e( 'Submit', 'bbpress' ); ?></button>
+
+							<?php do_action( 'bbp_theme_before_topic_form_submit_button' ); ?>
+
+							<button type="submit" tabindex="<?php bbp_tab_index(); ?>" id="bbp_topic_submit" name="bbp_topic_submit" class="button submit"><?php _e( 'Submit', 'bbpress' ); ?></button>
+
+							<?php do_action( 'bbp_theme_after_topic_form_submit_button' ); ?>
+
 						</div>
+
+						<?php do_action( 'bbp_theme_after_topic_form_submit_wrapper' ); ?>
+
 					</div>
 
 					<?php bbp_topic_form_fields(); ?>
 
 				</fieldset>
+
+				<?php do_action( 'bbp_theme_after_topic_form' ); ?>
+
 			</form>
 		</div>
 
 
 		<div id="no-topic-<?php bbp_topic_id(); ?>" class="bbp-no-topic">
 			<div class="bbp-template-notice">
-				<p><?php _e( 'This forum is closed to new topics.', 'bbpress' ); ?></p>
+				<p><?php printf( __( 'The forum &#8216;%s&#8217; is closed to new topics and replies.', 'bbpress' ), bbp_get_forum_title() ); ?></p>
 			</div>
 		</div>
 

File bbpress/form-user-edit.php

 
 		<div>
 			<label for="first_name"><?php _e( 'First Name', 'bbpress' ) ?></label>
-			<input type="text" name="first_name" id="first_name" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'first_name' ) ); ?>" class="regular-text" />
+			<input type="text" name="first_name" id="first_name" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'first_name' ) ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
 		</div>
 
 		<div>
 			<label for="last_name"><?php _e( 'Last Name', 'bbpress' ) ?></label>
-			<input type="text" name="last_name" id="last_name" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'last_name' ) ); ?>" class="regular-text" />
+			<input type="text" name="last_name" id="last_name" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'last_name' ) ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
 		</div>
 
 		<div>
 			<label for="nickname"><?php _e( 'Nickname', 'bbpress' ); ?></label>
-			<input type="text" name="nickname" id="nickname" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'nickname' ) ); ?>" class="regular-text" />
+			<input type="text" name="nickname" id="nickname" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'nickname' ) ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
 		</div>
 
 		<div>
 
 		<div>
 			<label for="url"><?php _e( 'Website', 'bbpress' ) ?></label>
-			<input type="text" name="url" id="url" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'user_url' ) ); ?>" class="regular-text code" />
+			<input type="text" name="url" id="url" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'user_url' ) ); ?>" class="regular-text code" tabindex="<?php bbp_tab_index(); ?>" />
 		</div>
 
 		<?php foreach ( bbp_edit_user_contact_methods() as $name => $desc ) : ?>
 
 			<div>
 				<label for="<?php echo $name; ?>"><?php echo apply_filters( 'user_'.$name.'_label', $desc ); ?></label>
-				<input type="text" name="<?php echo $name; ?>" id="<?php echo $name; ?>" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'name' ) ); ?>" class="regular-text" />
+				<input type="text" name="<?php echo $name; ?>" id="<?php echo $name; ?>" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'name' ) ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
 			</div>
 
 		<?php endforeach; ?>
 
 		<div>
 			<label for="description"><?php _e( 'Biographical Info', 'bbpress' ); ?></label>
-			<textarea name="description" id="description" rows="5" cols="30"><?php echo esc_attr( bbp_get_displayed_user_field( 'description' ) ); ?></textarea>
+			<textarea name="description" id="description" rows="5" cols="30" tabindex="<?php bbp_tab_index(); ?>"><?php echo esc_attr( bbp_get_displayed_user_field( 'description' ) ); ?></textarea>
 			<span class="description"><?php _e( 'Share a little biographical information to fill out your profile. This may be shown publicly.', 'bbpress' ); ?></span>
 		</div>
 
 
 		<div>
 			<label for="user_login"><?php _e( 'Username', 'bbpress' ); ?></label>
-			<input type="text" name="user_login" id="user_login" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'user_login' ) ); ?>" disabled="disabled" class="regular-text" />
+			<input type="text" name="user_login" id="user_login" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'user_login' ) ); ?>" disabled="disabled" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
 			<span class="description"><?php _e( 'Usernames cannot be changed.', 'bbpress' ); ?></span>
 		</div>
 
 		<div>
-			<label for="email"><?php _e( 'E-mail', 'bbpress' ); ?></label>
+			<label for="email"><?php _e( 'Email', 'bbpress' ); ?></label>
 
-			<input type="text" name="email" id="email" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'user_email' ) ); ?>" class="regular-text" />
+			<input type="text" name="email" id="email" value="<?php echo esc_attr( bbp_get_displayed_user_field( 'user_email' ) ); ?>" class="regular-text" tabindex="<?php bbp_tab_index(); ?>" />
 
 			<?php
 
 		<div id="password">
 			<label for="pass1"><?php _e( 'New Password', 'bbpress' ); ?></label>
 			<fieldset class="bbp-form">
-				<input type="password" name="pass1" id="pass1" size="16" value="" autocomplete="off" />
+				<input type="password" name="pass1" id="pass1" size="16" value="" autocomplete="off" tabindex="<?php bbp_tab_index(); ?>" />
 				<span class="description"><?php _e( 'If you would like to change the password type a new one. Otherwise leave this blank.', 'bbpress' ); ?></span>
 
-				<input type="password" name="pass2" id="pass2" size="16" value="" autocomplete="off" />
+				<input type="password" name="pass2" id="pass2" size="16" value="" autocomplete="off" tabindex="<?php bbp_tab_index(); ?>" />
 				<span class="description"><?php _e( 'Type your new password again.', 'bbpress' ); ?></span><br />
 
 				<div id="pass-strength-result"></div>
 			<div>
 				<label for="role"><?php _e( 'Super Admin', 'bbpress' ); ?></label>
 				<label>
-					<input type="checkbox" id="super_admin" name="super_admin"<?php checked( is_super_admin( bbp_get_displayed_user_id() ) ); ?> />
+					<input type="checkbox" id="super_admin" name="super_admin"<?php checked( is_super_admin( bbp_get_displayed_user_id() ) ); ?> tabindex="<?php bbp_tab_index(); ?>" />
 					<?php _e( 'Grant this user super admin privileges for the Network.', 'bbpress' ); ?>
 				</label>
 			</div>
 
 			<?php bbp_edit_user_form_fields(); ?>
 
-			<button type="submit" id="bbp_user_edit_submit" name="bbp_user_edit_submit"><?php bbp_is_user_home() ? _e( 'Update Profile', 'bbpress' ) : _e( 'Update User', 'bbpress' ); ?></button>
+			<button type="submit" tabindex="<?php bbp_tab_index(); ?>" id="bbp_user_edit_submit" name="bbp_user_edit_submit" class="button submit user-submit"><?php bbp_is_user_home() ? _e( 'Update Profile', 'bbpress' ) : _e( 'Update User', 'bbpress' ); ?></button>
 		</div>
 	</fieldset>
 

File bbpress/form-user-login.php

 
 	<form method="post" action="<?php bbp_wp_login_action( array( 'context' => 'login_post' ) ); ?>" class="bbp-login-form">
 		<fieldset class="bbp-form">
-			<legend><?php _e( 'Login', 'bbpress' ); ?></legend>
+			<legend><?php _e( 'Log In', 'bbpress' ); ?></legend>
 
 			<div class="bbp-username">
 				<label for="user_login"><?php _e( 'Username', 'bbpress' ); ?>: </label>
 
 				<?php do_action( 'login_form' ); ?>
 
-				<input type="submit" name="user-submit" value="<?php _e( 'Login', 'bbpress' ); ?>" tabindex="<?php bbp_tab_index(); ?>" class="user-submit" />
+				<input type="submit" name="user-submit" value="<?php _e( 'Log In', 'bbpress' ); ?>" tabindex="<?php bbp_tab_index(); ?>" class="user-submit" />
 
 				<?php bbp_user_login_fields(); ?>
 

File bbpress/form-user-register.php

 			</div>
 
 			<div class="bbp-email">
-				<label for="user_email"><?php _e( 'Email Address', 'bbpress' ); ?>: </label>
+				<label for="user_email"><?php _e( 'Email', 'bbpress' ); ?>: </label>
 				<input type="text" name="user_email" value="<?php bbp_sanitize_val( 'user_email' ); ?>" size="20" id="user_email" tabindex="<?php bbp_tab_index(); ?>" />
 			</div>
 
 
 			<div class="bbp-submit-wrapper">
 
-				<button type="submit" name="user-submit" tabindex="<?php bbp_tab_index(); ?>" class="user-submit"><?php _e( 'Register', 'bbpress' ); ?></button>
+				<button type="submit" name="user-submit" tabindex="<?php bbp_tab_index(); ?>" class="button submit user-submit"><?php _e( 'Register', 'bbpress' ); ?></button>
 
 				<?php bbp_user_register_fields(); ?>
 

File bbpress/js/topic.js

 
 	// Favorites
 	favoritesLink: '',
+	favoritesActive: 0,
 	isFav: 0,
 	favLinkYes: 'favorites',
 	favLinkNo: '?',
 }, bbpTopicJS );
 
 // Topic Global
-bbpTopicJS.isFav        = parseInt( bbpTopicJS.isFav );
-bbpTopicJS.subsActive   = parseInt( bbpTopicJS.subsActive );
-bbpTopicJS.isSubscribed = parseInt( bbpTopicJS.isSubscribed );
+bbpTopicJS.favoritesActive = parseInt( bbpTopicJS.favoritesActive );
+bbpTopicJS.isFav           = parseInt( bbpTopicJS.isFav );
+bbpTopicJS.subsActive      = parseInt( bbpTopicJS.subsActive );
+bbpTopicJS.isSubscribed    = parseInt( bbpTopicJS.isSubscribed );
 
 // Run it
-jQuery( function($) {
+jQuery(document).ready( function() {
+
 	/** Favorites *************************************************************/
-	var favoritesToggle = $( '#favorite-toggle' )
-		.addClass( 'list:favorite' )
-		.wpList( { alt: '', dimAfter: favLinkSetup } );
 
-	var favoritesToggleSpan = favoritesToggle.children( 'span' )
-		[bbpTopicJS.isFav ? 'addClass' : 'removeClass' ]( 'is-favorite' );
+	if ( 1 == bbpTopicJS.favoritesActive ) {
+		var favoritesToggle = jQuery( '#favorite-toggle' )
+			.addClass( 'list:favorite' )
+			.wpList( { alt: '', dimAfter: favLinkSetup } );
+
+		var favoritesToggleSpan = favoritesToggle.children( 'span' )
+			[bbpTopicJS.isFav ? 'addClass' : 'removeClass' ]( 'is-favorite' );
+	}
 
 	function favLinkSetup() {
-		bbpTopicJS.isFav = favoritesToggleSpan.is('.is-favorite');
+		bbpTopicJS.isFav = favoritesToggleSpan.is( '.is-favorite' );
 		var aLink = "<a href='" + bbpTopicJS.favoritesLink + "'>";
 		var aDim  = "<a href='" + favoritesToggleSpan.find( 'a[class^="dim:"]' ).attr( 'href' ) + "' class='dim:favorite-toggle:" + favoritesToggleSpan.attr( 'id' ) + ":is-favorite'>";
 		if ( bbpTopicJS.isFav ) {
 	}
 
 	/** Subscriptions *********************************************************/
+
+	if ( 1 == bbpTopicJS.subsActive ) {
+		var subscriptionToggle = jQuery( '#subscription-toggle' )
+			.addClass( 'list:subscription' )
+			.wpList( { alt: '', dimAfter: subsLinkSetup } );
+
+		var subscriptionToggleSpan = subscriptionToggle.children( 'span' )
+			[bbpTopicJS.isSubscribed ? 'addClass' : 'removeClass' ]( 'is-subscribed' );
+	}
+
 	function subsLinkSetup() {
 		bbpTopicJS.isSubscribed = subscriptionToggleSpan.is( '.is-subscribed' );
 		var aLink = "<a href='" + bbpTopicJS.subsLink + "'>";
 		subscriptionToggleSpan.html( html );
 		subscriptionToggle.get(0).wpList.process( subscriptionToggle );
 	}
-
-	if ( bbpTopicJS.subsActive == 1 ) {
-		var subscriptionToggle = $( '#subscription-toggle' )
-			.addClass( 'list:subscription' )
-			.wpList( { alt: '', dimAfter: subsLinkSetup } );
-
-		var subscriptionToggleSpan = subscriptionToggle.children( 'span' )
-			[bbpTopicJS.isSubscribed ? 'addClass' : 'removeClass' ]( 'is-subscribed' );
-	}
 } );

File bbpress/loop-forums.php

 
 			<?php while ( bbp_forums() ) : bbp_the_forum(); ?>
 
-				<tr id="bbp-forum-<?php bbp_forum_id(); ?>" <?php bbp_forum_class(); ?>>
-
-					<td class="bbp-forum-info">
-						<a class="bbp-forum-title" href="<?php bbp_forum_permalink(); ?>" title="<?php bbp_forum_title(); ?>"><?php bbp_forum_title(); ?></a>
-
-						<?php bbp_list_forums(); ?>
-
-						<div class="bbp-forum-description"><?php the_content(); ?></div>
-					</td>
-
-					<td class="bbp-forum-topic-count"><?php bbp_forum_topic_count(); ?></td>
-
-					<td class="bbp-forum-reply-count"><?php bbp_show_lead_topic() ? bbp_forum_reply_count() : bbp_forum_post_count(); ?></td>
-
-					<td class="bbp-forum-freshness">
-
-						<?php bbp_forum_freshness_link(); ?>
-
-						<p class="bbp-topic-meta">
-
-							<span class="bbp-topic-freshness-author"><?php bbp_author_link( array( 'post_id' => bbp_get_forum_last_active_id(), 'size' => 14 ) ); ?></span>
-
-						</p>
-					</td>
-
-				</tr><!-- bbp-forum-<?php bbp_forum_id(); ?> -->
+				<?php bbp_get_template_part( 'bbpress/loop', 'single-forum' ); ?>
 
 			<?php endwhile; ?>
 

File bbpress/loop-replies.php

 
 			<?php while ( bbp_replies() ) : bbp_the_reply(); ?>
 
-				<tr class="bbp-reply-header">
-					<td colspan="2">
-
-						<?php printf( __( '%1$s at %2$s', 'bbpress' ), get_the_date(), esc_attr( get_the_time() ) ); ?>
-
-						<a href="<?php bbp_reply_url(); ?>" title="<?php bbp_reply_title(); ?>" class="bbp-reply-permalink">#<?php bbp_reply_id(); ?></a>
-
-						<?php bbp_reply_admin_links(); ?>
-
-					</td>
-				</tr>
-
-				<tr id="post-<?php bbp_reply_id(); ?>" <?php bbp_reply_class(); ?>>
-
-					<td class="bbp-reply-author">
-
-						<?php bbp_reply_author_link(); ?>
-
-						<?php if ( is_super_admin() ) : ?>
-						
-							<div class="bbp-reply-ip"><?php bbp_author_ip( bbp_get_reply_id() ); ?></div>
-
-						<?php endif; ?>
-
-					</td>
-
-					<td class="bbp-reply-content">
-
-						<?php bbp_reply_content(); ?>
-
-					</td>
-
-				</tr><!-- #post-<?php bbp_topic_id(); ?> -->
+				<?php bbp_get_template_part( 'bbpress/loop', 'single-reply' ); ?>
 
 			<?php endwhile; ?>
 

File bbpress/loop-single-forum.php

+<?php
+
+/**
+ * Forums Loop - Single Forum
+ *
+ * @package bbPress
+ * @subpackage Theme
+ */
+
+?>
+
+	<tr id="bbp-forum-<?php bbp_forum_id(); ?>" <?php bbp_forum_class(); ?>>
+
+		<td class="bbp-forum-info">
+
+			<?php do_action( 'bbp_theme_before_forum_title' ); ?>
+
+			<a class="bbp-forum-title" href="<?php bbp_forum_permalink(); ?>" title="<?php bbp_forum_title(); ?>"><?php bbp_forum_title(); ?></a>
+
+			<?php do_action( 'bbp_theme_after_forum_title' ); ?>
+
+			<?php do_action( 'bbp_theme_before_forum_sub_forums' ); ?>
+
+			<?php bbp_list_forums(); ?>
+
+			<?php do_action( 'bbp_theme_after_forum_sub_forums' ); ?>
+
+			<?php do_action( 'bbp_theme_before_forum_description' ); ?>
+
+			<div class="bbp-forum-description"><?php the_content(); ?></div>
+
+			<?php do_action( 'bbp_theme_after_forum_description' ); ?>
+
+		</td>
+
+		<td class="bbp-forum-topic-count"><?php bbp_forum_topic_count(); ?></td>
+
+		<td class="bbp-forum-reply-count"><?php bbp_show_lead_topic() ? bbp_forum_reply_count() : bbp_forum_post_count(); ?></td>
+
+		<td class="bbp-forum-freshness">
+
+			<?php do_action( 'bbp_theme_before_forum_freshness_link' ); ?>
+
+			<?php bbp_forum_freshness_link(); ?>
+
+			<?php do_action( 'bbp_theme_after_forum_freshness_link' ); ?>
+
+			<p class="bbp-topic-meta">
+
+				<?php do_action( 'bbp_theme_before_topic_author' ); ?>
+
+				<span class="bbp-topic-freshness-author"><?php bbp_author_link( array( 'post_id' => bbp_get_forum_last_active_id(), 'size' => 14 ) ); ?></span>
+
+				<?php do_action( 'bbp_theme_after_topic_author' ); ?>
+
+			</p>
+		</td>
+
+	</tr><!-- bbp-forum-<?php bbp_forum_id(); ?> -->

File bbpress/loop-single-reply.php

+<?php
+
+/**
+ * Replies Loop - Single Reply
+ *
+ * @package bbPress
+ * @subpackage Theme
+ */
+
+?>
+
+	<tr class="bbp-reply-header">
+		<td colspan="2">
+
+			<?php printf( __( '%1$s at %2$s', 'bbpress' ), get_the_date(), esc_attr( get_the_time() ) ); ?>
+
+			<a href="<?php bbp_reply_url(); ?>" title="<?php bbp_reply_title(); ?>" class="bbp-reply-permalink">#<?php bbp_reply_id(); ?></a>
+
+			<?php do_action( 'bbp_theme_before_reply_admin_links' ); ?>
+
+			<?php bbp_reply_admin_links(); ?>
+
+			<?php do_action( 'bbp_theme_after_reply_admin_links' ); ?>
+
+		</td>
+	</tr>
+
+	<tr id="post-<?php bbp_reply_id(); ?>" <?php bbp_reply_class(); ?>>
+
+		<td class="bbp-reply-author">
+
+			<?php do_action( 'bbp_theme_before_reply_author_details' ); ?>
+
+			<?php bbp_reply_author_link( array( 'sep' => '<br />' ) ); ?>
+
+			<?php if ( is_super_admin() ) : ?>
+
+				<?php do_action( 'bbp_theme_before_reply_author_admin_details' ); ?>
+
+				<div class="bbp-reply-ip"><?php bbp_author_ip( bbp_get_reply_id() ); ?></div>
+
+				<?php do_action( 'bbp_theme_after_reply_author_admin_details' ); ?>
+
+			<?php endif; ?>
+
+			<?php do_action( 'bbp_theme_after_reply_author_details' ); ?>
+
+		</td>
+
+		<td class="bbp-reply-content">
+
+			<?php do_action( 'bbp_theme_after_reply_content' ); ?>
+
+			<?php bbp_reply_content(); ?>
+
+			<?php do_action( 'bbp_theme_before_reply_content' ); ?>
+
+		</td>
+
+	</tr><!-- #post-<?php bbp_topic_id(); ?> -->

File bbpress/loop-single-topic.php

+<?php
+
+/**
+ * Topics Loop - Single
+ *
+ * @package bbPress
+ * @subpackage Theme
+ */
+
+?>
+
+	<tr id="topic-<?php bbp_topic_id(); ?>" <?php bbp_topic_class(); ?>>
+
+		<td class="bbp-topic-title">
+
+			<?php do_action( 'bbp_theme_before_topic_title' ); ?>
+
+			<a href="<?php bbp_topic_permalink(); ?>" title="<?php bbp_topic_title(); ?>"><?php bbp_topic_title(); ?></a>
+
+			<?php do_action( 'bbp_theme_after_topic_title' ); ?>
+
+			<?php bbp_topic_pagination(); ?>
+
+			<?php do_action( 'bbp_theme_before_topic_meta' ); ?>
+
+			<p class="bbp-topic-meta">
+
+				<?php do_action( 'bbp_theme_before_topic_started_by' ); ?>
+
+				<span class="bbp-topic-started-by"><?php printf( __( 'Started by: %1$s', 'bbpress' ), bbp_get_topic_author_link( array( 'size' => '14' ) ) ); ?></span>
+
+				<?php do_action( 'bbp_theme_after_topic_started_by' ); ?>
+
+				<?php if ( !bbp_is_single_forum() || ( bbp_get_topic_forum_id() != bbp_get_forum_id() ) ) : ?>
+
+					<?php do_action( 'bbp_theme_before_topic_started_in' ); ?>
+
+					<span class="bbp-topic-started-in"><?php printf( __( 'in: <a href="%1$s">%2$s</a>', 'bbpress' ), bbp_get_forum_permalink( bbp_get_topic_forum_id() ), bbp_get_forum_title( bbp_get_topic_forum_id() ) ); ?></span>
+
+					<?php do_action( 'bbp_theme_after_topic_started_in' ); ?>
+
+				<?php endif; ?>
+
+			</p>
+
+			<?php do_action( 'bbp_theme_after_topic_meta' ); ?>
+
+		</td>
+
+		<td class="bbp-topic-voice-count"><?php bbp_topic_voice_count(); ?></td>
+
+		<td class="bbp-topic-reply-count"><?php bbp_show_lead_topic() ? bbp_topic_reply_count() : bbp_topic_post_count(); ?></td>
+
+		<td class="bbp-topic-freshness">
+
+			<?php do_action( 'bbp_theme_before_topic_freshness_link' ); ?>
+
+			<?php bbp_topic_freshness_link(); ?>
+
+			<?php do_action( 'bbp_theme_after_topic_freshness_link' ); ?>
+
+			<p class="bbp-topic-meta">
+
+				<?php do_action( 'bbp_theme_before_topic_freshness_author' ); ?>
+
+				<span class="bbp-topic-freshness-author"><?php bbp_author_link( array( 'post_id' => bbp_get_topic_last_active_id(), 'size' => 14 ) ); ?></span>
+
+				<?php do_action( 'bbp_theme_after_topic_freshness_author' ); ?>
+
+			</p>
+		</td>
+
+		<?php if ( bbp_is_user_home() ) : ?>
+
+			<?php if ( bbp_is_favorites() ) : ?>
+
+				<td class="bbp-topic-action">
+
+					<?php do_action( 'bbp_theme_before_topic_favorites_action' ); ?>
+
+					<?php bbp_user_favorites_link( array( 'mid' => '+', 'post' => '' ), array( 'pre' => '', 'mid' => '&times;', 'post' => '' ) ); ?>
+
+					<?php do_action( 'bbp_theme_after_topic_favorites_action' ); ?>
+
+				</td>
+
+			<?php elseif ( bbp_is_subscriptions() ) : ?>
+
+				<td class="bbp-topic-action">
+
+					<?php do_action( 'bbp_theme_before_topic_subscription_action' ); ?>
+
+					<?php bbp_user_subscribe_link( array( 'before' => '', 'subscribe' => '+', 'unsubscribe' => '&times;' ) ); ?>
+
+					<?php do_action( 'bbp_theme_after_topic_subscription_action' ); ?>
+
+				</td>
+
+			<?php endif; ?>
+
+		<?php endif; ?>
+
+	</tr><!-- #topic-<?php bbp_topic_id(); ?> -->

File bbpress/loop-topics.php

 
 			<?php while ( bbp_topics() ) : bbp_the_topic(); ?>
 
-				<tr id="topic-<?php bbp_topic_id(); ?>" <?php bbp_topic_class(); ?>>
-
-					<td class="bbp-topic-title">
-						<a href="<?php bbp_topic_permalink(); ?>" title="<?php bbp_topic_title(); ?>"><?php bbp_topic_title(); ?></a>
-
-						<?php bbp_topic_pagination(); ?>
-
-						<p class="bbp-topic-meta">
-
-							<span class="bbp-topic-started-by"><?php printf( __( 'Started by: %1$s', 'bbpress' ), bbp_get_topic_author_link( array( 'size' => '14' ) ) ); ?></span>
-
-							<?php if ( !bbp_is_forum() || ( bbp_get_topic_forum_id() != bbp_get_forum_id() ) ) : ?>
-
-								<span class="bbp-topic-started-in"><?php printf( __( 'in: <a href="%1$s">%2$s</a>', 'bbpress' ), bbp_get_forum_permalink( bbp_get_topic_forum_id() ), bbp_get_forum_title( bbp_get_topic_forum_id() ) ); ?></span>
-
-							<?php endif; ?>
-
-						</p>
-					</td>
-
-					<td class="bbp-topic-voice-count"><?php bbp_topic_voice_count(); ?></td>
-
-					<td class="bbp-topic-reply-count"><?php bbp_show_lead_topic() ? bbp_topic_reply_count() : bbp_topic_post_count(); ?></td>
-
-					<td class="bbp-topic-freshness">
-
-						<?php bbp_topic_freshness_link(); ?>
-
-						<p class="bbp-topic-meta">
-
-							<span class="bbp-topic-freshness-author"><?php bbp_author_link( array( 'post_id' => bbp_get_topic_last_active_id(), 'size' => 14 ) ); ?></span>
-
-						</p>
-					</td>
-
-					<?php if ( bbp_is_user_home() ) : ?>
-
-						<?php if ( bbp_is_favorites() ) : ?>
-
-							<td class="bbp-topic-action">
-
-								<?php bbp_user_favorites_link( array( 'mid' => '+', 'post' => '' ), array( 'pre' => '', 'mid' => '&times;', 'post' => '' ) ); ?>
-
-							</td>
-
-						<?php elseif ( bbp_is_subscriptions() ) : ?>
-
-							<td class="bbp-topic-action">
-
-								<?php bbp_user_subscribe_link( array( 'before' => '', 'subscribe' => '+', 'unsubscribe' => '&times;' ) ); ?>
-
-							</td>
-
-						<?php endif; ?>
-
-					<?php endif; ?>
-
-				</tr><!-- #topic-<?php bbp_topic_id(); ?> -->
+				<?php bbp_get_template_part( 'bbpress/loop', 'single-topic' ); ?>
 
 			<?php endwhile; ?>
 
 	</table><!-- #bbp-forum-<?php bbp_topic_id(); ?> -->
 
 	<?php do_action( 'bbp_template_after_topics_loop' ); ?>
-

File bp-wrapper-header.php

 	<div id="wrapper">
 	<?php lblg_above_content(); ?>
 		<div id="lb-content">
+			<div id="content">
 			<div class="padder">