Skip to:
Content

bbPress.org


Ignore:
Timestamp:
06/19/2017 09:46:29 AM (9 years ago)
Author:
johnjamesjacoby
Message:

Authors: Rejig author link functions.

  • Allow for easier filtering of link sections
  • Update default arguments to remove no-break space and <br>, and rely on styling instead
  • Surrounding code clean-up
  • Add escaping to display names in links
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/includes/replies/template.php

    r6583 r6591  
    11321132                        'type'       => 'both',
    11331133                        'size'       => 80,
    1134                         'sep'        => '&nbsp;',
     1134                        'sep'        => '',
    11351135                        'show_role'  => false
    11361136                ), 'get_reply_author_link' );
    11371137
     1138                // Default return value
     1139                $author_link = '';
     1140
    11381141                // Used as reply_id
    1139                 if ( is_numeric( $args ) ) {
    1140                         $reply_id = bbp_get_reply_id( $args );
    1141                 } else {
    1142                         $reply_id = bbp_get_reply_id( $r['post_id'] );
    1143                 }
     1142                $reply_id = is_numeric( $args )
     1143                        ? bbp_get_reply_id( $args )
     1144                        : bbp_get_reply_id( $r['post_id'] );
    11441145
    11451146                // Reply ID is good
     
    11521153                        // Tweak link title if empty
    11531154                        if ( empty( $r['link_title'] ) ) {
    1154                                 $link_title = sprintf( empty( $anonymous ) ? __( 'View %s\'s profile', 'bbpress' ) : __( 'Visit %s\'s website', 'bbpress' ), bbp_get_reply_author_display_name( $reply_id ) );
     1155                                $author     = bbp_get_reply_author_display_name( $reply_id );
     1156                                $title      = empty( $anonymous )
     1157                                        ? __( 'View %s\'s profile',  'bbpress' )
     1158                                        : __( 'Visit %s\'s website', 'bbpress' );
     1159                                $link_title = sprintf( $title, $author );
    11551160
    11561161                        // Use what was passed if not
     
    11601165
    11611166                        // Setup title and author_links array
    1162                         $link_title   = ! empty( $link_title ) ? ' title="' . esc_attr( $link_title ) . '"' : '';
    11631167                        $author_links = array();
    1164 
    1165                         // Get avatar
    1166                         if ( 'avatar' === $r['type'] || 'both' === $r['type'] ) {
     1168                        $link_title   = ! empty( $link_title )
     1169                                ? ' title="' . esc_attr( $link_title ) . '"'
     1170                                : '';
     1171
     1172                        // Get avatar (unescaped, because HTML)
     1173                        if ( ( 'avatar' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
    11671174                                $author_links['avatar'] = bbp_get_reply_author_avatar( $reply_id, $r['size'] );
    11681175                        }
    11691176
    1170                         // Get display name
    1171                         if ( 'name' === $r['type']   || 'both' === $r['type'] ) {
    1172                                 $author_links['name'] = bbp_get_reply_author_display_name( $reply_id );
     1177                        // Get display name (escaped, because never HTML)
     1178                        if ( ( 'name' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
     1179                                $author_links['name'] = esc_html( bbp_get_reply_author_display_name( $reply_id ) );
    11731180                        }
    11741181
     
    11791186                        if ( empty( $anonymous ) && bbp_user_has_profile( bbp_get_reply_author_id( $reply_id ) ) ) {
    11801187
     1188                                // Empty array
     1189                                $links = array();
     1190
    11811191                                // Assemble the links
    11821192                                foreach ( $author_links as $link => $link_text ) {
    1183                                         $link_class = ' class="bbp-author-' . $link . '"';
    1184                                         $author_link[] = sprintf( '<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url( $author_url ), $link_title, $link_class, $link_text );
     1193                                        $link_class = ' class="bbp-author-' . esc_attr( $link ) . '"';
     1194                                        $links[]    = sprintf( '<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url( $author_url ), $link_title, $link_class, $link_text );
    11851195                                }
    11861196
     1197                                // Role is not linked
    11871198                                if ( true === $r['show_role'] ) {
    1188                                         $author_link[] = bbp_get_reply_author_role( array( 'reply_id' => $reply_id ) );
     1199                                        $links[] = bbp_get_reply_author_role( array( 'reply_id' => $reply_id ) );
    11891200                                }
    11901201
    1191                                 $author_link = implode( $r['sep'], $author_link );
    1192 
    1193                         // No links if anonymous
    1194                         } else {
    1195                                 $author_link = implode( $r['sep'], $author_links );
     1202                                // Juggle
     1203                                $author_links = $links;
     1204                                unset( $links );
    11961205                        }
    11971206
    1198                 // No replies so link is empty
    1199                 } else {
    1200                         $author_link = '';
     1207                        // Filter sections
     1208                        $sections    = apply_filters( 'bbp_get_reply_author_links', $author_links, $r, $args );
     1209
     1210                        // Assemble sections into author link
     1211                        $author_link = implode( $r['sep'], $sections );
    12011212                }
    12021213
Note: See TracChangeset for help on using the changeset viewer.