Skip to:
Content

Ticket #7642: 7642-3.patch

File 7642-3.patch, 3.8 KB (added by hnla, 6 weeks 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 ); 
     
    20742076        } 
    20752077 
    20762078        foreach ( $fields as $name => $attributes ) { 
     2079 
     2080                // We need to ensure that $classes array is emptied before we start a new iteration of this loop. 
     2081                $classes = ''; 
     2082 
    20772083                list( $label, $required, $value, $attribute_type, $type, $class ) = array_values( $attributes ); 
    20782084 
    20792085                if ( $required ) { 
     
    21322138                        $attribute_type = ' ' . checked( $value, $submitted, false ); 
    21332139                } 
    21342140 
    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                 } 
     2141                // Do not run function to display errors for the private radio. 
     2142                if ( 'private' !== $value ) { 
    21402143 
    2141                 // Do not fire the do_action to display errors for the private radio. 
    2142                 if ( 'private' !== $value ) { 
    21432144                        /** 
    2144                          * Fires and displays any member registration field errors. 
     2145                         * Fetch & display any BP member registration field errors. 
    21452146                         * 
    2146                          * @since 1.1.0 (BuddyPress) 
     2147                         * Passes BP signup errors to Nouveau's template function to 
     2148                         * render suitable markup for error string. 
    21472149                         */ 
    2148                         do_action( "bp_{$name}_errors" ); 
     2150                        if( isset( buddypress()->signup->errors[ $name ] ) ) { 
     2151                                nouveau_error_template( buddypress()->signup->errors[ $name ] ); 
     2152 
     2153                                // If we have BP errors lets set a class for the input to style as an error. 
     2154                                $invalid = 'invalid'; 
     2155                        } 
    21492156                } 
    21502157 
     2158                if ( isset( $invalid ) && isset( buddypress()->signup->errors[ $name ] ) ) { 
     2159                        if ( ! empty( $class ) ) { 
     2160                                $class = $class . ' ' . $invalid; 
     2161                        } else { 
     2162                                $class = $invalid; 
     2163                        } 
     2164                } 
     2165 
     2166                if ( ! empty( $class ) ) { 
     2167 
     2168                        // In case people are adding classes &/or we have an error class to add. 
     2169                        $classes = explode( ' ', $class ); 
     2170                } 
     2171 
     2172                if ( ! empty( $classes ) ) { 
     2173 
     2174                        $class = ' class="' . esc_attr( join( ' ', array_map( 'sanitize_html_class', $classes ) ) ) . '"'; 
     2175                } 
     2176 
    21512177                // Set the input. 
    21522178                $field_output = sprintf( '<input type="%1$s" name="%2$s" id="%3$s" %4$s value="%5$s" %6$s />', 
    21532179                        esc_attr( $type ), 
     
    22312257                do_action( $submit_data['after'] ); 
    22322258        } 
    22332259} 
     2260 
     2261/** 
     2262 * Display supplemental error or feedback messages 
     2263 * 
     2264 * This template handles in page error or feedback messages e.g signup fields 
     2265 * 'Username exists' type registration field error notices. 
     2266 * 
     2267 * @param  string $string required: the message to display. 
     2268 * @param  string $type optional: the type of error message e.g 'error'. 
     2269 * 
     2270 * @todo Could this requirement to handle additional messages be better served by 
     2271 *       passing strings into the main Nouveau feedback messages array to be rendered 
     2272 *       by the main template include for notices. 
     2273 * 
     2274 * @since 1.0.0 
     2275 */ 
     2276function nouveau_error_template( $string = '', $type = '' ) { 
     2277 
     2278        if ( ! $string ) { 
     2279                return; 
     2280        } 
     2281 
     2282        // Set a default type & add white space if passing in a param. 
     2283        if ( $type ) { 
     2284                $type = ' ' . $type; 
     2285        } else { 
     2286                $type = ' error'; 
     2287        } 
     2288 
     2289        ?> 
     2290 
     2291        <div class="<?php echo esc_attr( 'bp-messages bp-feedback' . $type ); ?>"> 
     2292                <span class="bp-icon" aria-hidden="true"></span> 
     2293                <p><?php echo esc_html( $string ); ?></p> 
     2294        </div> 
     2295 
     2296        <?php 
     2297        return; 
     2298}