| @@ -1,9 +1,8 @@ | ||
| 1 | 1 | <?php |
| 2 | + | |
| 2 | 3 | /** |
| 3 | 4 | * Displays the languages tab in Polylang settings |
| 4 | - * | |
| 5 | - * @package Polylang | |
| 6 | 5 | */ |
| 7 | 6 | |
| 8 | 7 | if ( ! defined( 'ABSPATH' ) ) { |
| 9 | 8 | exit; // Don't access directly |
| @@ -18,9 +17,9 @@ | ||
| 18 | 17 | ?> |
| 19 | 18 | <div class="metabox-holder"> |
| 20 | 19 | <?php |
| 21 | 20 | wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); |
| 22 | - do_meta_boxes( 'toplevel_page_mlang', 'normal', array() ); | |
| 21 | + do_meta_boxes( 'settings_page_mlang', 'normal', array() ); | |
| 23 | 22 | ?> |
| 24 | 23 | </div> |
| 25 | 24 | </div><!-- col-wrap --> |
| 26 | 25 | </div><!-- col-right --> |
| @@ -54,19 +53,15 @@ | ||
| 54 | 53 | <select name="lang_list" id="lang_list"> |
| 55 | 54 | <option value=""></option> |
| 56 | 55 | <?php |
| 57 | 56 | foreach ( $this->get_predefined_languages() as $lg ) { |
| 58 | - $lg['flag_code'] = $lg['flag']; | |
| 59 | - $language = new PLL_Language( $lg ); | |
| 60 | - $language->set_flag(); | |
| 61 | 57 | printf( |
| 62 | - '<option value="%1$s:%2$s:%3$s:%4$s" data-flag-html="%6$s">%5$s - %2$s</option>' . "\n", | |
| 58 | + '<option value="%1$s:%2$s:%3$s:%4$s">%5$s - %2$s</option>' . "\n", | |
| 63 | 59 | esc_attr( $lg['code'] ), |
| 64 | 60 | esc_attr( $lg['locale'] ), |
| 65 | 61 | 'rtl' == $lg['dir'] ? '1' : '0', |
| 66 | 62 | esc_attr( $lg['flag'] ), |
| 67 | - esc_html( $lg['name'] ), | |
| 68 | - esc_html( $language->flag ) | |
| 63 | + esc_html( $lg['name'] ) | |
| 69 | 64 | ); |
| 70 | 65 | } |
| 71 | 66 | ?> |
| 72 | 67 | </select> |
| @@ -127,14 +122,19 @@ | ||
| 127 | 122 | <label for="flag_list"><?php esc_html_e( 'Flag', 'polylang' ); ?></label> |
| 128 | 123 | <select name="flag" id="flag_list"> |
| 129 | 124 | <option value=""></option> |
| 130 | 125 | <?php |
| 131 | - $flags = include __DIR__ . '/flags.php'; | |
| 126 | + $flags = include PLL_SETTINGS_INC . '/flags.php'; | |
| 132 | 127 | foreach ( $flags as $code => $label ) { |
| 128 | + /** This filter is documented in include/language.php */ | |
| 129 | + $flag = apply_filters( 'pll_flag', array( 'url' => plugins_url( "/flags/{$code}.png", POLYLANG_FILE ) ), $code ); | |
| 130 | + | |
| 133 | 131 | printf( |
| 134 | - '<option value="%s" data-flag-html="%s"%s>%s</option>' . "\n", | |
| 132 | + '<option value="%s" data-url="%s"%s%s%s>%s</option>' . "\n", | |
| 135 | 133 | esc_attr( $code ), |
| 136 | - esc_html( PLL_Language::get_flag_html( PLL_Language::get_flag_informations( $code ) ) ), | |
| 134 | + esc_url( $flag['url'] ), | |
| 135 | + ( empty( $flag['width'] ) ? '' : sprintf( ' data-width="%s"', (int) $flag['width'] ) ), | |
| 136 | + ( empty( $flag['height'] ) ? '' : sprintf( ' data-height="%s"', (int) $flag['height'] ) ), | |
| 137 | 137 | selected( isset( $edit_lang->flag_code ) && $edit_lang->flag_code === $code, true, false ), |
| 138 | 138 | esc_html( $label ) |
| 139 | 139 | ); |
| 140 | 140 | } |
| @@ -178,4 +178,15 @@ | ||
| 178 | 178 | </div><!-- form-wrap --> |
| 179 | 179 | </div><!-- col-wrap --> |
| 180 | 180 | </div><!-- col-left --> |
| 181 | 181 | </div><!-- col-container --> |
| 182 | + | |
| 183 | +<script type="text/javascript"> | |
| 184 | + //<![CDATA[ | |
| 185 | + jQuery( document ).ready( function( $ ) { | |
| 186 | + // close postboxes that should be closed | |
| 187 | + $( '.if-js-closed' ).removeClass( 'if-js-closed' ).addClass( 'closed' ); | |
| 188 | + // postboxes setup | |
| 189 | + postboxes.add_postbox_toggles( 'settings_page_mlang' ); | |
| 190 | + } ); | |
| 191 | + //]]> | |
| 192 | +</script> | |