Forum Replies Created
-
Thank you! This fix worked for us. Hope the official patch is released soon.
In reply to: how to create dynamic reply-boxHmm. Ok it looks like my theme (Kleo) has a different forum template. Simply put the custom reply.js file was going to the Parent Node wrapper which put the Reply form at the bottom of any child replies. I simply had to have it find the first child node of the wrapper so it could drop the reply form right underneath.
I just looked at your staging site which is a different template. Try this instead:
reply.appendChild(respond);
In reply to: how to create dynamic reply-box@jon-fergus I got this fixed with the reply.js file you include in your child theme.
simply change this line:
reply.parentNode.appendChild(respond);
to this:
reply.parentNode.children[1].appendChild(respond);
And the reply box should appear directly under the post you are replying to.
Hi All. Needed this exact behavior as well. It really should be the default behavior. But if you don’t want to hack the core here is the code to place in your functions.php or custom plugin:
/** * Format the BuddyBar/Toolbar notifications * Fixed: https://bbpress.org/forums/topic/new-reply-notification-link-to-the-reply/ */ function bbp_format_buddypress_notifications_custom( $action, $item_id, $secondary_item_id, $total_items, $format = 'string' ) { // New reply notifications if ( 'bbp_new_reply' === $action ) { $topic_id = bbp_get_reply_topic_id( $item_id ); $topic_title = bbp_get_topic_title( $topic_id ); $topic_link = wp_nonce_url( add_query_arg( array( 'action' => 'bbp_mark_read', 'topic_id' => $item_id ), bbp_get_reply_url( $item_id ) ), 'bbp_mark_topic_' . $item_id ); $title_attr = __( 'Topic Replies', 'bbpress' ); if ( (int) $total_items > 1 ) { $text = sprintf( __( 'You have %d new replies', 'bbpress' ), (int) $total_items ); $filter = 'bbp_multiple_new_subscription_notification'; } else { if ( !empty( $secondary_item_id ) ) { $text = sprintf( __( 'You have %d new reply to %2$s from %3$s', 'bbpress' ), (int) $total_items, $topic_title, bp_core_get_user_displayname( $secondary_item_id ) ); } else { $text = sprintf( __( 'You have %d new reply to %s', 'bbpress' ), (int) $total_items, $topic_title ); } $filter = 'bbp_single_new_subscription_notification'; } // WordPress Toolbar if ( 'string' === $format ) { $return = apply_filters( $filter, '<a href="' . esc_url( $topic_link ) . '" title="' . esc_attr( $title_attr ) . '">' . esc_html( $text ) . '</a>', (int) $total_items, $text, $topic_link ); // Deprecated BuddyBar } else { $return = apply_filters( $filter, array( 'text' => $text, 'link' => $topic_link ), $topic_link, (int) $total_items, $text, $topic_title ); } do_action( 'bbp_format_buddypress_notifications', $action, $item_id, $secondary_item_id, $total_items ); return $return; } } remove_filter( 'bp_notifications_get_notifications_for_user', 'bbp_format_buddypress_notifications', 10 ); add_filter( 'bp_notifications_get_notifications_for_user', 'bbp_format_buddypress_notifications_custom', 10, 5 ); /** * Hooked into the new reply function, this notification action is responsible * for notifying topic and hierarchical reply authors of topic replies. * Fixed: https://bbpress.org/forums/topic/new-reply-notification-link-to-the-reply/ */ function bbp_buddypress_add_notification_custom( $reply_id = 0, $topic_id = 0, $forum_id = 0, $anonymous_data = false, $author_id = 0, $is_edit = false, $reply_to = 0 ) { // Bail if somehow this is hooked to an edit action if ( !empty( $is_edit ) ) { return; } // Get autohr information $topic_author_id = bbp_get_topic_author_id( $topic_id ); $secondary_item_id = $author_id; // Hierarchical replies if ( !empty( $reply_to ) ) { $reply_to_item_id = bbp_get_topic_author_id( $reply_to ); } // Get some reply information $args = array( 'user_id' => $topic_author_id, 'item_id' => $reply_id, 'component_name' => bbp_get_component_name(), 'component_action' => 'bbp_new_reply', 'date_notified' => get_post( $reply_id )->post_date, ); // Notify the topic author if not the current reply author if ( $author_id !== $topic_author_id ) { $args['secondary_item_id'] = $secondary_item_id ; bp_notifications_add_notification( $args ); } // Notify the immediate reply author if not the current reply author if ( !empty( $reply_to ) && ( $author_id !== $reply_to_item_id ) ) { $args['secondary_item_id'] = $reply_to_item_id ; bp_notifications_add_notification( $args ); } } remove_action( 'bbp_new_reply', 'bbp_buddypress_add_notification', 10 ); add_action( 'bbp_new_reply', 'bbp_buddypress_add_notification_custom', 10, 7 );