Skip to:
Content

BuddyPress.org

Ticket #7642: 7642-2.patch

File 7642-2.patch, 3.2 KB (added by hnla, 7 years ago)
  • src/bp-templates/bp-nouveau/includes/template-tags.php

     
    739739                }
    740740
    741741        } elseif ( ! empty( $bp_nouveau->object_nav ) ) {
     742
    742743                $bp_nouveau->displayed_nav = $bp_nouveau->object_nav;
    743744
    744745                /**
     
    751752                 * @param array $n   The arguments of the Navigation loop.
    752753                 */
    753754                $nav = apply_filters( 'bp_nouveau_get_nav', $nav, $n );
     755
    754756        }
    755757
    756758        $bp_nouveau->sorted_nav = array_values( $nav );
     
    21322134                        $attribute_type = ' ' . checked( $value, $submitted, false );
    21332135                }
    21342136
    2135                 if ( ! empty( $class ) ) {
    2136                         // In case people are adding classes..
    2137                         $classes = explode( ' ', $class );
    2138                         $class = ' class="' . esc_attr( join( ' ', array_map( 'sanitize_html_class', $classes ) ) ) . '"';
    2139                 }
     2137                // Do not run function to display errors for the private radio.
     2138                if ( 'private' !== $value ) {
    21402139
    2141                 // Do not fire the do_action to display errors for the private radio.
    2142                 if ( 'private' !== $value ) {
    21432140                        /**
    2144                          * Fires and displays any member registration field errors.
     2141                         * Fetch & display any BP member registration field errors.
    21452142                         *
    2146                          * @since 1.1.0 (BuddyPress)
     2143                         * Passes BP signup errors to Nouveau's template function to
     2144                         * render suitable markup for error string.
    21472145                         */
    2148                         do_action( "bp_{$name}_errors" );
     2146                        if( isset( buddypress()->signup->errors[$name] ) ) {
     2147                                nouveau_error_template( buddypress()->signup->errors[$name], 'error' );
     2148
     2149                                // If we have BP errors lets set a class for the input to style as an error.
     2150                                $class .= ' invalid';
     2151                        }
    21492152                }
    21502153
     2154                if ( ! empty( $class ) ) {
     2155
     2156                        // In case people are adding classes
     2157                        // &/or we have an error class to add.
     2158                        $classes = explode( ' ', $class );
     2159                }
     2160
     2161                if ( isset( $classes ) ) {
     2162
     2163                        // If we only have one token then lets trim the empty space
     2164                        $str_spacer = ( count( $classes ) > 2 )? ' ' : '';
     2165
     2166                        $class = ' class="' . esc_attr( join( $str_spacer, array_map( 'sanitize_html_class', $classes ) ) ) . '"';
     2167                }
     2168
    21512169                // Set the input.
    21522170                $field_output = sprintf( '<input type="%1$s" name="%2$s" id="%3$s" %4$s value="%5$s" %6$s />',
    21532171                        esc_attr( $type ),
     
    22312249                do_action( $submit_data['after'] );
    22322250        }
    22332251}
     2252
     2253/**
     2254 * Display supplemental error or feedback messages
     2255 *
     2256 * This template handles in page error or feedback messages e.g signup fields
     2257 * 'Username exists' type registration fields error notice.
     2258 *
     2259 * @param  string $string required: the message to display.
     2260 * @param  string $type optional: the type of error message e.g 'error'.
     2261 *
     2262 * @todo Could this requirement to handle additional messages be better served by
     2263 *       passing strings into the main Nouveau feedback messages array to be rendered
     2264 *       by the main template include for notices.
     2265 *
     2266 * @since 1.0.0
     2267 */
     2268function nouveau_error_template( $string = '', $type = '' ) {
     2269
     2270        if ( ! $string )
     2271                return;
     2272        ?>
     2273
     2274        <div class="bp-messages bp-feedback <?php echo esc_attr( $type ); ?>">
     2275                <span class="bp-icon" aria-hidden="true"></span>
     2276                <p><?php echo esc_html( $string ); ?></p>
     2277        </div>
     2278
     2279        <?php
     2280        return;
     2281}