Skip to:
Content

bbPress.org

Changeset 3241


Ignore:
Timestamp:
05/27/2011 09:40:08 AM (15 years ago)
Author:
johnjamesjacoby
Message:

Commit bomb of updates to breadcrumb logic:

Switch from parameters to a parse args array.
Switch from template part to function.
Add before/after HTML arguments.
Add missing breadcrumb to reply-edit, view, and topic-tag templates.
Add home link logic.
Add filters on breadcrumb items.
Add quick-bail filter at the beginning of breadcrumb function.

Location:
branches/plugin
Files:
1 deleted
18 edited

Legend:

Unmodified
Added
Removed
  • branches/plugin/bbp-includes/bbp-core-shortcodes.php

    r3235 r3241  
    249249                $this->_ob_start();
    250250
    251                 // Display breadcrumb if a subforum
    252                 bbp_get_template_part( 'bbpress/nav', 'breadcrumb' );
     251                // Breadcrumb
     252                bbp_breadcrumb();
    253253
    254254                // Password protected
    … …  
    426426
    427427                // Breadcrumb
    428                 bbp_get_template_part( 'bbpress/nav', 'breadcrumb' );
     428                bbp_breadcrumb();
    429429
    430430                // Password protected
    … …  
    487487
    488488                // Breadcrumb
    489                 if ( bbp_is_forum() or bbp_is_topic_edit() )
    490                         bbp_get_template_part( 'bbpress/nav', 'breadcrumb' );
     489                if ( bbp_is_forum() || bbp_is_topic_edit() )
     490                        bbp_breadcrumb();
    491491
    492492                // Editing a topic
    … …  
    523523                // Start output buffer
    524524                $this->_ob_start();
     525
     526                // Breadcrumb
     527                if ( bbp_is_reply_edit() )
     528                        bbp_breadcrumb();
    525529
    526530                // Output templates
    … …  
    601605                $this->_ob_start();
    602606
     607                // Breadcrumb
     608                bbp_breadcrumb();
     609
    603610                // Tag description
    604611                bbp_topic_tag_description();
    … …  
    651658                $this->_ob_start();
    652659
    653                 // Display breadcrumb if a subforum
    654                 bbp_get_template_part( 'bbpress/nav', 'breadcrumb' );
     660                // Breadcrumb
     661                bbp_breadcrumb();
    655662
    656663                // Password protected
  • branches/plugin/bbp-includes/bbp-general-template.php

    r3230 r3241  
    11181118 * @uses bbp_get_breadcrumb() To get the breadcrumb
    11191119 */
    1120 function bbp_title_breadcrumb( $sep = ' › ' ) {
    1121         echo bbp_get_breadcrumb( $sep );
     1120function bbp_title_breadcrumb( $args = array() ) {
     1121        echo bbp_get_breadcrumb( $args );
    11221122}
    11231123
    … …  
    11321132 * @uses bbp_get_breadcrumb() To get the breadcrumb
    11331133 */
    1134 function bbp_breadcrumb( $sep = ' › ', $current_page = true, $root = true ) {
    1135         echo bbp_get_breadcrumb( $sep, $current_page, $root );
     1134function bbp_breadcrumb( $args = array() ) {
     1135        echo bbp_get_breadcrumb( $args );
    11361136}
    11371137        /**
    … …  
    11591159         * @return string Breadcrumbs
    11601160         */
    1161         function bbp_get_breadcrumb( $sep = ' › ', $current_page = true, $root = true ) {
    1162                 global $post, $bbp;
    1163 
    1164                 // No post, no breadcrumb
    1165                 if ( empty( $post ) )
     1161        function bbp_get_breadcrumb( $args = array() ) {
     1162                global $bbp;
     1163
     1164                // Turn off breadcrumbs
     1165                if ( apply_filters( 'bbp_no_breadcrumb', false ) )
    11661166                        return;
    11671167
     1168                // Parse args
     1169                $defaults = array(
     1170
     1171                        // HTML
     1172                        'before'          => '<div class="bbp-breadcrumb"><p>',
     1173                        'after'           => '</p></div>',
     1174                        'sep'             => is_rtl() ? ' &lsaquo; ' : ' &rsaquo; ',
     1175
     1176                        // Home
     1177                        'include_home'    => true,
     1178                        'home_text'       => ( $front = get_option( 'page_on_front' ) ) ? get_the_title( $front ) : __( 'Home' ),
     1179
     1180                        // Forum root
     1181                        'include_root'    => get_option( '_bbp_include_root' ),
     1182                        'root_text'       => ( $page = get_page_by_path( $bbp->root_slug ) ) ? get_the_title( $page->ID ) : __( 'Forums', 'bbpress' ),
     1183
     1184                        // Current
     1185                        'include_current' => true,
     1186                );
     1187                $r = wp_parse_args( $args, $defaults );
     1188                extract( $r );
     1189
    11681190                // Get post ancestors
    1169                 $ancestors = array_reverse( get_post_ancestors( $post->ID ) );
    1170 
    1171                 // Right to left support
    1172                 if ( is_rtl() )
    1173                         $sep = ( $sep = ' &rsaquo; ' ) ? ' &lsaquo; ' : $sep;
    1174 
    1175                 // Do we want to include the forum root?
    1176                 if ( !empty( $root ) && ( get_option( '_bbp_include_root' ) ) && ( $root_slug = get_option( '_bbp_root_slug' ) ) ) {
    1177 
    1178                         // Page exists at the root slug location, so add it to the breadcrumb
    1179                         if ( $page = get_page_by_path( $root_slug ) )
    1180                                 $title = get_the_title( $page->ID );
    1181 
    1182                         // Use generic root title
    1183                         else
    1184                                 $title = __( 'Forums', 'bbpress' );
    1185 
    1186                         // Add root slug
    1187                         $breadcrumbs[] = '<a href="' . trailingslashit( home_url( $root_slug ) ) . '">' . $title . '</a>';
    1188                 }
     1191                $ancestors = array_reverse( get_post_ancestors( get_the_ID() ) );
     1192
     1193                // Do we want to include a link to home?
     1194                if ( !empty( $include_home ) )
     1195                        $breadcrumbs[] = '<a href="' . trailingslashit( home_url() ) . '" class="bbp-breadcrumb-home">' . $home_text . '</a>';
     1196
     1197                // Do we want to include a link to the forum root?
     1198                if ( !empty( $include_root ) && ( !empty( $page ) && ( $front != $page->ID ) ) )
     1199                        $breadcrumbs[] = '<a href="' . trailingslashit( home_url( $bbp->root_slug ) ) . '" class="bbp-breadcrumb-root">' . $root_text . '</a>';
    11891200
    11901201                // Loop through parents
    … …  
    12191230
    12201231                // Add current page to breadcrumb
    1221                 if ( true == $current_page )
    1222                         $breadcrumbs[] = get_the_title();
     1232                if ( true == $include_current )
     1233                        $breadcrumbs[] = '<span class="bbp-breadcrumb-current">' . get_the_title() . '</span>';
    12231234
    12241235                // Allow the separator of the breadcrumb to be easily changed
    1225                 $sep   = apply_filters( 'bbp_breadcrumb_separator', $sep );
     1236                $sep = apply_filters( 'bbp_breadcrumb_separator', $sep );
    12261237
    12271238                // Right to left support
    12281239                if ( is_rtl() )
    1229                         $breadcrumbs = array_reverse( $breadcrumbs );
     1240                        $breadcrumbs = apply_filters( 'bbp_breadcrumbs', array_reverse( $breadcrumbs ) );
    12301241
    12311242                // Build the trail
    1232                 $trail = !empty( $breadcrumbs ) ? implode( $sep, $breadcrumbs ) : '';
     1243                $trail = !empty( $breadcrumbs ) ? $before . implode( $sep, $breadcrumbs ) . $after: '';
    12331244
    12341245                return apply_filters( 'bbp_get_breadcrumb', $trail );
  • branches/plugin/bbp-themes/bbp-twentyten/archive-topic.php

    r3182 r3241  
    2323                                                <div class="entry-content">
    2424
    25                                                         <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     25                                                        <?php bbp_breadcrumb(); ?>
    2626
    2727                                                        <?php do_action( 'bbp_template_before_topics_index' ); ?>
  • branches/plugin/bbp-themes/bbp-twentyten/bbpress/action-edit.php

    r3130 r3241  
    2121                                                <div class="entry-content">
    2222
    23                                                         <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     23                                                        <?php bbp_breadcrumb(); ?>
    2424
    2525                                                        <?php if ( bbp_is_reply_edit() ) : ?>
  • branches/plugin/bbp-themes/bbp-twentyten/bbpress/action-split-merge.php

    r3130 r3241  
    2323                                                <div class="entry-content">
    2424
    25                                                         <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     25                                                        <?php bbp_breadcrumb(); ?>
    2626
    2727                                                        <?php if ( bbp_is_topic_merge() ) : ?>
  • branches/plugin/bbp-themes/bbp-twentyten/bbpress/single-forum.php

    r3131 r3241  
    1212<?php if ( bbp_user_can_view_forum( array( 'forum_id' => bbp_get_topic_forum_id() ) ) ) : ?>
    1313
    14         <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     14        <?php bbp_breadcrumb(); ?>
    1515
    1616        <?php bbp_single_forum_description(); ?>
  • branches/plugin/bbp-themes/bbp-twentyten/bbpress/view.php

    r3069 r3241  
    2020                                        <h1 class="entry-title"><?php bbp_view_title(); ?></h1>
    2121                                        <div class="entry-content">
     22
     23                                                <?php bbp_breadcrumb(); ?>
    2224
    2325                                                <?php bbp_set_query_name( 'bbp_view' ); ?>
  • branches/plugin/bbp-themes/bbp-twentyten/page-create-topic.php

    r3130 r3241  
    2525                                                        <?php the_content(); ?>
    2626
    27                                                         <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     27                                                        <?php bbp_breadcrumb(); ?>
    2828
    2929                                                        <?php bbp_get_template_part( 'bbpress/form', 'topic' ); ?>
  • branches/plugin/bbp-themes/bbp-twentyten/page-front-topics.php

    r3130 r3241  
    2525                                                        <?php the_content(); ?>
    2626
    27                                                         <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     27                                                        <?php bbp_breadcrumb(); ?>
    2828
    2929                                                        <?php do_action( 'bbp_template_before_topics_index' ); ?>
  • branches/plugin/bbp-themes/bbp-twentyten/page-topic-tags.php

    r3130 r3241  
    2525                                                        <?php get_the_content() ? the_content() : _e( '<p>This is a collection of tags that are currently popular on our forums.</p>', 'bbpress' ); ?>
    2626
    27                                                         <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     27                                                        <?php bbp_breadcrumb(); ?>
    2828
    2929                                                        <div id="bbp-topic-hot-tags">
  • branches/plugin/bbp-themes/bbp-twentyten/page-topics-no-replies.php

    r3130 r3241  
    2525                                                        <?php the_content(); ?>
    2626
    27                                                         <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     27                                                        <?php bbp_breadcrumb(); ?>
    2828
    2929                                                        <?php bbp_set_query_name( 'bbp_no_replies' ); ?>
  • branches/plugin/bbp-themes/bbp-twentyten/page-user-login.php

    r3130 r3241  
    2727                                                        <?php the_content(); ?>
    2828
    29                                                         <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     29                                                        <?php bbp_breadcrumb(); ?>
    3030
    3131                                                        <?php bbp_get_template_part( 'bbpress/form', 'user-login' ); ?>
  • branches/plugin/bbp-themes/bbp-twentyten/page-user-lost-pass.php

    r3130 r3241  
    2727                                                        <?php the_content(); ?>
    2828
    29                                                         <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     29                                                        <?php bbp_breadcrumb(); ?>
    3030
    3131                                                        <?php bbp_get_template_part( 'bbpress/form', 'user-lost-pass' ); ?>
  • branches/plugin/bbp-themes/bbp-twentyten/page-user-register.php

    r3130 r3241  
    2727                                                        <?php the_content(); ?>
    2828
    29                                                         <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     29                                                        <?php bbp_breadcrumb(); ?>
    3030
    3131                                                        <?php bbp_get_template_part( 'bbpress/form', 'user-register' ); ?>
  • branches/plugin/bbp-themes/bbp-twentyten/single-forum.php

    r3168 r3241  
    2525                                                        <div class="entry-content">
    2626
    27                                                                 <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     27                                                                <?php bbp_breadcrumb(); ?>
    2828
    2929                                                                <?php if ( post_password_required() ) : ?>
  • branches/plugin/bbp-themes/bbp-twentyten/single-reply.php

    r3109 r3241  
    2222                                                <h1 class="entry-title"><?php bbp_reply_title(); ?></h1>
    2323
    24                                                 <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     24                                                <?php bbp_breadcrumb(); ?>
    2525
    2626                                                <div class="entry-content">
  • branches/plugin/bbp-themes/bbp-twentyten/single-topic.php

    r3234 r3241  
    2525                                                        <div class="entry-content">
    2626
    27                                                                 <?php bbp_get_template_part( 'bbpress/nav', 'breadcrumb' ); ?>
     27                                                                <?php bbp_breadcrumb(); ?>
    2828
    2929                                                                <?php if ( post_password_required() ) : ?>
  • branches/plugin/bbp-themes/bbp-twentyten/taxonomy-topic-tag.php

    r3115 r3241  
    2121
    2222                                        <div class="entry-content">
     23
     24                                                <?php bbp_breadcrumb(); ?>
    2325
    2426                                                <?php bbp_topic_tag_description(); ?>
Note: See TracChangeset for help on using the changeset viewer.