Robin W (@robin-w)

Forum Replies Created

Viewing 25 replies - 6,676 through 6,700 (of 14,305 total)
  • @robin-w

    Moderator

    or bbp toolkit

    bbPress Toolkit

    @robin-w

    Moderator
    In reply to: Working Member List?

    @robin-w

    Moderator

    bbpress version 2 just uses WordPress users, so look at WordPress list members plugins

    for instance

    Members List Plugin

    In reply to: Working Member List?

    @robin-w

    Moderator

    this is code from bbpress version 1 – 9 years ago, unlikely to work

    @robin-w

    Moderator

    not used that, and as it is a paid product, I suggest you ask their support area

    In reply to: bbpress Loop Argument

    @robin-w

    Moderator

    great – glad it worked !!

    @robin-w

    Moderator

    the code would go in your single post template – not having seen the template, I can’t say where !

    I was presuming that you were editing this template and Ftp’ing it to your site, in which case, yes it could break it, but you’d just keep a copy of the old template and FTP that back. If you have debugging switched on, then this will tell you where the error is to let you correct

    In reply to: bbpress Loop Argument

    @robin-w

    Moderator

    I’d be tempted to just clone the bbp_has_topics function

    eg

    add this to your functions file

    function babblebey_has_topics( $args = '' ) {
    	global $wp_rewrite;
    
    	/** Defaults **************************************************************/
    
    	// Other defaults
    	$default_topic_search  = !empty( $_REQUEST['ts'] ) ? $_REQUEST['ts'] : false;
    	$default_show_stickies = (bool) ( bbp_is_single_forum() || bbp_is_topic_archive() ) && ( false === $default_topic_search );
    	$default_post_parent   = bbp_is_single_forum() ? bbp_get_forum_id() : 'any';
    
    	// Default argument array
    	$default = array(
    		'post_type'      => bbp_get_topic_post_type(), // Narrow query down to bbPress topics
    		'post_parent'    => $default_post_parent,      // Forum ID
    		'meta_key'       => '_bbp_last_active_time',   // Make sure topic has some last activity time
    		'orderby'        => 'meta_value',              // 'meta_value', 'author', 'date', 'title', 'modified', 'parent', rand',
    		'order'          => 'DESC',                    // 'ASC', 'DESC'
    		'posts_per_page' => -1, 						// Topics per page
    		'paged'          => bbp_get_paged(),           // Page Number
    		's'              => $default_topic_search,     // Topic Search
    		'show_stickies'  => $default_show_stickies,    // Ignore sticky topics?
    		'max_num_pages'  => false,                     // Maximum number of pages to show
    	);
    
    	// What are the default allowed statuses (based on user caps)
    	if ( bbp_get_view_all() ) {
    
    		// Default view=all statuses
    		$post_statuses = array(
    			bbp_get_public_status_id(),
    			bbp_get_closed_status_id(),
    			bbp_get_spam_status_id(),
    			bbp_get_trash_status_id()
    		);
    
    		// Add support for private status
    		if ( current_user_can( 'read_private_topics' ) ) {
    			$post_statuses[] = bbp_get_private_status_id();
    		}
    
    		// Join post statuses together
    		$default['post_status'] = implode( ',', $post_statuses );
    
    	// Lean on the 'perm' query var value of 'readable' to provide statuses
    	} else {
    		$default['perm'] = 'readable';
    	}
    
    	// Maybe query for topic tags
    	if ( bbp_is_topic_tag() ) {
    		$default['term']     = bbp_get_topic_tag_slug();
    		$default['taxonomy'] = bbp_get_topic_tag_tax_id();
    	}
    
    	/** Setup *****************************************************************/
    
    	// Parse arguments against default values
    	$r = bbp_parse_args( $args, $default, 'babblebey_topics' );
    
    	// Get bbPress
    	$bbp = bbpress();
    
    	// Call the query
    	$bbp->topic_query = new WP_Query( $r );
    
    	// Set post_parent back to 0 if originally set to 'any'
    	if ( 'any' === $r['post_parent'] )
    		$r['post_parent'] = 0;
    
    	// Limited the number of pages shown
    	if ( !empty( $r['max_num_pages'] ) )
    		$bbp->topic_query->max_num_pages = $r['max_num_pages'];
    
    	/** Stickies **************************************************************/
    
    	// Put sticky posts at the top of the posts array
    	if ( !empty( $r['show_stickies'] ) && $r['paged'] <= 1 ) {
    
    		// Get super stickies and stickies in this forum
    		$stickies = bbp_get_super_stickies();
    
    		// Get stickies for current forum
    		if ( !empty( $r['post_parent'] ) ) {
    			$stickies = array_merge( $stickies, bbp_get_stickies( $r['post_parent'] ) );
    		}
    
    		// Remove any duplicate stickies
    		$stickies = array_unique( $stickies );
    
    		// We have stickies
    		if ( is_array( $stickies ) && !empty( $stickies ) ) {
    
    			// Start the offset at -1 so first sticky is at correct 0 offset
    			$sticky_offset = -1;
    
    			// Loop over topics and relocate stickies to the front.
    			foreach ( $stickies as $sticky_index => $sticky_ID ) {
    
    				// Get the post offset from the posts array
    				$post_offsets = wp_filter_object_list( $bbp->topic_query->posts, array( 'ID' => $sticky_ID ), 'OR', 'ID' );
    
    				// Continue if no post offsets
    				if ( empty( $post_offsets ) ) {
    					continue;
    				}
    
    				// Loop over posts in current query and splice them into position
    				foreach ( array_keys( $post_offsets ) as $post_offset ) {
    					$sticky_offset++;
    
    					$sticky = $bbp->topic_query->posts[$post_offset];
    
    					// Remove sticky from current position
    					array_splice( $bbp->topic_query->posts, $post_offset, 1 );
    
    					// Move to front, after other stickies
    					array_splice( $bbp->topic_query->posts, $sticky_offset, 0, array( $sticky ) );
    
    					// Cleanup
    					unset( $stickies[$sticky_index] );
    					unset( $sticky );
    				}
    
    				// Cleanup
    				unset( $post_offsets );
    			}
    
    			// Cleanup
    			unset( $sticky_offset );
    
    			// If any posts have been excluded specifically, Ignore those that are sticky.
    			if ( !empty( $stickies ) && !empty( $r['post__not_in'] ) ) {
    				$stickies = array_diff( $stickies, $r['post__not_in'] );
    			}
    
    			// Fetch sticky posts that weren't in the query results
    			if ( !empty( $stickies ) ) {
    
    				// Query to use in get_posts to get sticky posts
    				$sticky_query = array(
    					'post_type'   => bbp_get_topic_post_type(),
    					'post_parent' => 'any',
    					'meta_key'    => '_bbp_last_active_time',
    					'orderby'     => 'meta_value',
    					'order'       => 'DESC',
    					'include'     => $stickies
    				);
    
    				// Cleanup
    				unset( $stickies );
    
    				// Conditionally exclude private/hidden forum ID's
    				$exclude_forum_ids = bbp_exclude_forum_ids( 'array' );
    				if ( ! empty( $exclude_forum_ids ) ) {
    					$sticky_query['post_parent__not_in'] = $exclude_forum_ids;
    				}
    
    				// What are the default allowed statuses (based on user caps)
    				if ( bbp_get_view_all() ) {
    					$sticky_query['post_status'] = $r['post_status'];
    
    				// Lean on the 'perm' query var value of 'readable' to provide statuses
    				} else {
    					$sticky_query['post_status'] = $r['perm'];
    				}
    
    				// Get all stickies
    				$sticky_posts = get_posts( $sticky_query );
    				if ( !empty( $sticky_posts ) ) {
    
    					// Get a count of the visible stickies
    					$sticky_count = count( $sticky_posts );
    
    					// Merge the stickies topics with the query topics .
    					$bbp->topic_query->posts       = array_merge( $sticky_posts, $bbp->topic_query->posts );
    
    					// Adjust loop and counts for new sticky positions
    					$bbp->topic_query->found_posts = (int) $bbp->topic_query->found_posts + (int) $sticky_count;
    					$bbp->topic_query->post_count  = (int) $bbp->topic_query->post_count  + (int) $sticky_count;
    
    					// Cleanup
    					unset( $sticky_posts );
    				}
    			}
    		}
    	}
    
    	// If no limit to posts per page, set it to the current post_count
    	if ( -1 === $r['posts_per_page'] )
    		$r['posts_per_page'] = $bbp->topic_query->post_count;
    
    	// Add pagination values to query object
    	$bbp->topic_query->posts_per_page = $r['posts_per_page'];
    	$bbp->topic_query->paged          = $r['paged'];
    
    	// Only add pagination if query returned results
    	if ( ( (int) $bbp->topic_query->post_count || (int) $bbp->topic_query->found_posts ) && (int) $bbp->topic_query->posts_per_page ) {
    
    		// Limit the number of topics shown based on maximum allowed pages
    		if ( ( !empty( $r['max_num_pages'] ) ) && $bbp->topic_query->found_posts > $bbp->topic_query->max_num_pages * $bbp->topic_query->post_count )
    			$bbp->topic_query->found_posts = $bbp->topic_query->max_num_pages * $bbp->topic_query->post_count;
    
    		// If pretty permalinks are enabled, make our pagination pretty
    		if ( $wp_rewrite->using_permalinks() ) {
    
    			// User's topics
    			if ( bbp_is_single_user_topics() ) {
    				$base = bbp_get_user_topics_created_url( bbp_get_displayed_user_id() );
    
    			// User's favorites
    			} elseif ( bbp_is_favorites() ) {
    				$base = bbp_get_favorites_permalink( bbp_get_displayed_user_id() );
    
    			// User's subscriptions
    			} elseif ( bbp_is_subscriptions() ) {
    				$base = bbp_get_subscriptions_permalink( bbp_get_displayed_user_id() );
    
    			// Root profile page
    			} elseif ( bbp_is_single_user() ) {
    				$base = bbp_get_user_profile_url( bbp_get_displayed_user_id() );
    
    			// View
    			} elseif ( bbp_is_single_view() ) {
    				$base = bbp_get_view_url();
    
    			// Topic tag
    			} elseif ( bbp_is_topic_tag() ) {
    				$base = bbp_get_topic_tag_link();
    
    			// Page or single post
    			} elseif ( is_page() || is_single() ) {
    				$base = get_permalink();
    
    			// Forum archive
    			} elseif ( bbp_is_forum_archive() ) {
    				$base = bbp_get_forums_url();
    
    			// Topic archive
    			} elseif ( bbp_is_topic_archive() ) {
    				$base = bbp_get_topics_url();
    
    			// Default
    			} else {
    				$base = get_permalink( (int) $r['post_parent'] );
    			}
    
    			// Use pagination base
    			$base = trailingslashit( $base ) . user_trailingslashit( $wp_rewrite->pagination_base . '/%#%/' );
    
    		// Unpretty pagination
    		} else {
    			$base = add_query_arg( 'paged', '%#%' );
    		}
    
    		// Pagination settings with filter
    		$bbp_topic_pagination = apply_filters( 'bbp_topic_pagination', array (
    			'base'      => $base,
    			'format'    => '',
    			'total'     => $r['posts_per_page'] === $bbp->topic_query->found_posts ? 1 : ceil( (int) $bbp->topic_query->found_posts / (int) $r['posts_per_page'] ),
    			'current'   => (int) $bbp->topic_query->paged,
    			'prev_text' => is_rtl() ? '&rarr;' : '&larr;',
    			'next_text' => is_rtl() ? '&larr;' : '&rarr;',
    			'mid_size'  => 1
    		) );
    
    		// Add pagination to query object
    		$bbp->topic_query->pagination_links = paginate_links( $bbp_topic_pagination );
    
    		// Remove first page from pagination
    		$bbp->topic_query->pagination_links = str_replace( $wp_rewrite->pagination_base . "/1/'", "'", $bbp->topic_query->pagination_links );
    	}
    
    	// Return object
    	return apply_filters( 'babblebey_has_topics', $bbp->topic_query->have_posts(), $bbp->topic_query );
    }

    which is just bbp_has_topics’ renamed with pagination changed to -1

    and then call that

    @robin-w

    Moderator

    untested, but try

    $title = get_the_title() ;
    $forums = bbp_get_forums_for_current_user() ;
    	foreach ($forums as $forum) {
    		if ($forum->post_title == $title) {
    			$forum_id= $forum->ID ;
    		}
    	}
    do_shortcode( '[bbp-single-topic id='.$forum_id.']' );	

    @robin-w

    Moderator

    great – glad you are fixed

    @robin-w

    Moderator

    so where are you placing this code ? eg in a page template?

    @robin-w

    Moderator

    bbp_is_user_subscribed_to_topic()

    bbp_is_user_favorite( $user_id, $topic_id );

    In reply to: bbpress Loop Argument

    @robin-w

    Moderator

    given that

    get_template_part( ‘template-parts/topic’, ‘card’ );

    is from your theme (or other plugin) not bbpress, not sure what is taking the pagination.

    the usual solution would be to parse args eg

    add_filter ('bbp_before_has_topics_parse_args', rew_has_topics') ;
    
    function rew_has_topics( $args = '' ) {
    	$args['posts_per_page'] = '-1' ;
    return $args;
    }

    @robin-w

    Moderator

    bbp_is_user_subscribed_to_forum($forum)

    @robin-w

    Moderator

    this is 11 yr old and relates to version 1 of the bbpress plugin – so yes not current

    @robin-w

    Moderator

    You can copy all the templates across, but you only need to copy those that you want to change, and it is better just to do this, as then you know which you have altered.

    so if you wanted to amend loop-single-forum you would do the following

    create a directory on your theme called ‘bbpress’
    ie wp-content/themes/%your-theme-name%/bbpress

    where %your-theme-name% is the name of your theme

    find
    wp-content/plugins/bbpress/templates/default/bbpress/loop-single-forum.php
    Make a copy of this file, and put in in the directory called bbpress that you created above, so you end up with
    wp-content/themes/%your-theme-name%/bbpress/loop-single-forum.php
    bbPress will now use this template instead of the original
    and you can amend this

    @robin-w

    Moderator

    ‘updating..’ beyond my current time avaailability

    @robin-w

    Moderator

    then you need to amend form-topic and form-reply

    to amend

    <button type="submit" tabindex="<?php bbp_tab_index(); ?>" id="bbp_topic_submit" name="bbp_topic_submit" class="button submit"><?php _e( 'Submit', 'bbpress' ); ?></button>

    to something like (untested)

    <?php if ( bbp_allow_revisions() && bbp_is_topic_edit() ) : ?>
    <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 endif ; ?>
    <?php else : ?>
    <button type="submit" tabindex="<?php bbp_tab_index(); ?>" id="bbp_topic_submit" name="bbp_topic_submit" class="button submit"><?php _e( 'Update', 'bbpress' ); ?></button>
    <?php endelse : ?>
    

    @robin-w

    Moderator
    //This function changes the text wherever it is quoted
    function change_translate_text( $translated_text ) {
    	if ( $translated_text == 'old text' ) {
    	$translated_text = 'new text';
    	}
    	return $translated_text;
    }
    add_filter( 'gettext', 'change_translate_text', 20 );

    @robin-w

    Moderator

    Step by step guide to setting up a bbPress forum – Part 1

    item 3 method 2 and you can put introductory text before the shortcode

    @robin-w

    Moderator

    great!

    In reply to: Migrating from phpBB

    @robin-w

    Moderator

    I’ve never used phpbb, but suggest you need to get the database loaded somewhere, which will then have access. You can then convert from there

    In reply to: Migrating from phpBB

    @robin-w

    Moderator

    ‘the serviceprovider has the database on phpmyadmin’.
    vs
    ‘but I have no access to the old database’

    if the service provider has given you the old database, then those credentials should work?

    so do you have access to the old database?

    @robin-w

    Moderator

    untested, but this might do it

    add_filter( 'bbp_get_reply_author_display_name' , 'rew_reply_change_to_login', 10 , 2 ) ;
    
    function rew_reply_change_to_login ($author_name, $reply_id) {
    	// Get the author ID
    	$author_id = bbp_get_reply_author_id( $reply_id );
    	$author_name = get_the_author_meta( 'user_login', $author_id );
    return $author_name ;
    }
    
    add_filter( 'bbp_get_topic_author_display_name' , 'rew_topic_change_to_login', 10 , 2 ) ;
    
    function rew_topic_change_to_login ($author_name, $topic_id) {
    	// Get the author ID
    	$author_id = bbp_get_topic_author_id( $topic_id );
    	$author_name = get_the_author_meta( 'user_login', $author_id );
    return $author_name ;
    }

    let me know

    In reply to: Export images in forum

    @robin-w

    Moderator

    ‘I have the plugin allowing for media uploads’ – no idea what plugin you are talking about, but can only suggest you try it and see

Viewing 25 replies - 6,676 through 6,700 (of 14,305 total)