Skip to:
Content

bbPress.org

Changeset 6489


Ignore:
Timestamp:
06/05/2017 04:52:58 PM (7 years ago)
Author:
johnjamesjacoby
Message:

Languages: Introduce UI for updating account language.

Includes helper functions for theme-side user editing, to wrap around wp_dropdown_languages().

Fixes #3010.

Location:
trunk/src
Files:
2 edited

Legend:

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

    r6487 r6489  
    14991499 *
    15001500 * @uses bbp_get_displayed_user_id()     To get the displayed user ID
    1501  * @uses bbp_is_single_user_edit()       To check if it's the profile edit page
     1501 * @uses bbp_is_user_home_edit()         To check if it's the profile edit page
    15021502 * @uses bbp_get_user_profile_edit_url() To get the displayed user profile edit URL
    15031503 * @uses add_query_arg()                 To add dismiss query argument to URL
     
    17051705}
    17061706
     1707/**
     1708 * Output the language chooser (for user edit)
     1709 *
     1710 * @since 2.6.0 bbPress (r6488)
     1711 *
     1712 * @param array $args See wp_dropdown_languages()
     1713 * @return string
     1714 */
     1715function bbp_edit_user_language( $args = array() ) {
     1716
     1717    // Bail if no user is being edited
     1718    if ( ! bbp_is_single_user_edit() ) {
     1719        return;
     1720    }
     1721
     1722    // Output the dropdown
     1723    bbp_user_languages_dropdown( $args );
     1724}
     1725
    17071726/** Topics Created ************************************************************/
    17081727
     
    18741893        // Filter & return
    18751894        return apply_filters( 'bbp_get_user_engagements_url', $url, $user_id );
     1895    }
     1896
     1897/** Language ******************************************************************/
     1898
     1899/**
     1900 * Output the select element used to save a user's language
     1901 *
     1902 * @since 2.6.0 bbPress (r6488)
     1903 *
     1904 * @param array $args See wp_dropdown_languages()
     1905 */
     1906function bbp_user_languages_dropdown( $args = array() ) {
     1907    echo bbp_get_user_languages_dropdown( $args );
     1908}
     1909
     1910    /**
     1911     * Return the select element used to save a user's language.
     1912     *
     1913     * @since 2.6.0 bbPress (r6488)
     1914     *
     1915     * @param array $args See wp_dropdown_languages()
     1916     * @return string
     1917     */
     1918    function bbp_get_user_languages_dropdown( $args = array() ) {
     1919
     1920        // Get user language
     1921        $user_id = ! empty( $args['user_id'] )
     1922            ? bbp_get_user_id( $args['user_id'], false, false )
     1923            : bbp_get_displayed_user_id();
     1924
     1925        // Get user locale
     1926        $user_locale = ! empty( $user_id )
     1927            ? get_userdata( $user_id )->locale
     1928            : 'site-default';
     1929
     1930        // Get all languages
     1931        $languages = get_available_languages();
     1932
     1933        // No locale for English
     1934        if ( 'en_US' === $user_locale ) {
     1935            $user_locale = '';
     1936
     1937        // Fallback to site-default if there is a mismatch
     1938        } elseif ( '' === $user_locale || ! in_array( $user_locale, $languages, true ) ) {
     1939            $user_locale = 'site-default';
     1940        }
     1941
     1942        // Don't pass user ID in
     1943        unset( $args['user_id'] );
     1944
     1945        // Parse arguments
     1946        $r = bbp_parse_args( $args, array(
     1947            'name'                        => 'locale',
     1948            'id'                          => 'locale',
     1949            'selected'                    => $user_locale,
     1950            'languages'                   => $languages,
     1951            'echo'                        => false,
     1952            'show_available_translations' => false,
     1953            'show_option_site_default'    => true
     1954        ), 'user_languages_dropdown' );
     1955
     1956        // Get the markup for the languages drop-down
     1957        $retval = wp_dropdown_languages( $r );
     1958
     1959        // Filter & return
     1960        return apply_filters( 'bbp_get_user_languages_dropdown', $retval, $r, $args );
    18761961    }
    18771962
  • trunk/src/templates/default/bbpress/form-user-edit.php

    r6258 r6489  
    128128        </div>
    129129
     130        <div>
     131            <label for="url"><?php esc_html_e( 'Language', 'bbpress' ) ?></label>
     132
     133            <?php bbp_edit_user_language(); ?>
     134
     135        </div>
     136
    130137        <?php do_action( 'bbp_user_edit_after_account' ); ?>
    131138
Note: See TracChangeset for help on using the changeset viewer.