diff --git a/UniversalLanguageSelector.hooks.php b/UniversalLanguageSelector.hooks.php index 6326246e..318ccca9 100644 --- a/UniversalLanguageSelector.hooks.php +++ b/UniversalLanguageSelector.hooks.php @@ -311,7 +311,8 @@ class UniversalLanguageSelectorHooks { $wgULSEventLogging, $wgULSImeSelectors, $wgULSNoImeSelectors, $wgULSFontRepositoryBasePath, - $wgExtensionAssetsPath; + $wgExtensionAssetsPath, + $wgWBClientSettings; // Place constant stuff here (not depending on request context) if ( is_string( $wgULSGeoService ) ) { @@ -334,6 +335,12 @@ class UniversalLanguageSelectorHooks { '/UniversalLanguageSelector/data/fontrepo/fonts/'; } + // Cannot check where whether CLL is enabled for a particular user. The overhead + // of including this data is small. + if ( isset( $wgWBClientSettings['sortPrepend'] ) ) { + $vars['wgULSCompactLinksPrepend'] = $wgWBClientSettings['sortPrepend']; + } + return true; } diff --git a/resources/js/ext.uls.compactlinks.js b/resources/js/ext.uls.compactlinks.js index 93841cab..af38ee05 100644 --- a/resources/js/ext.uls.compactlinks.js +++ b/resources/js/ext.uls.compactlinks.js @@ -226,6 +226,8 @@ // Previous languages are always the better suggestion // because the user has explicitly chosen them. filterByPreviousLanguages, + // Site specific highlights, mostly used on Wikimedia sites + filterBySitePicks, // Add all common languages to the beginning of array. // These are the most probable languages predicted by ULS. this.getCommonLanguages, @@ -279,6 +281,19 @@ } ); } + /** + * Filter the language list by site picks. + * + * @return {Array} List of language codes supported by the article + */ + function filterBySitePicks( languages ) { + var picks = mw.config.get( 'wgULSCompactLinksPrepend' ) || []; + + return $.grep( picks, function ( language ) { + return $.inArray( language, languages ) >= 0; + } ); + } + /** * Filter the language list by common languages. * Common languages are the most probable languages predicted by ULS.