| Строка 47: |
Строка 47: |
| })(); | | })(); |
|
| |
|
| /* Подгрузка внешних CSS/JS */
| |
| (function(){
| |
| if(typeof mw === 'undefined') return;
| |
|
| |
| function getFilesFromUrl(param){
| |
| if(!param) return [];
| |
| return param.split('|').map(function(file){ return file.trim(); });
| |
| }
| |
|
| |
| function getBaseUrl(){
| |
| var server = mw.config.get('wgServer').replace(/^http:/,'https:');
| |
| var script = mw.config.get('wgScript');
| |
| return server + script + '?action=raw&ctype=text/';
| |
| }
| |
|
| |
| function isValidExtension(ext){ return ext === 'js' || ext === 'css'; }
| |
|
| |
| function getFileUrl(file){
| |
| var prefix = file.indexOf('MediaWiki:') === 0 ? 'MediaWiki:' : 'User:' + (mw.config.get('wgUserName') || '') + '/';
| |
| var fullName = file.indexOf(':') > -1 ? file : prefix + file;
| |
| var ext = file.split('.').pop().toLowerCase();
| |
| if(!isValidExtension(ext)){
| |
| console.error('Недопустимое расширение файла:', file);
| |
| return null;
| |
| }
| |
| var timestamp = new Date().getTime();
| |
| return getBaseUrl() + (ext==='js' ? 'javascript' : 'css') + '&title=' + encodeURIComponent(fullName) + '&_=' + timestamp;
| |
| }
| |
|
| |
| function loadFiles(files){
| |
| for(var i=0;i<files.length;i++){
| |
| var url = getFileUrl(files[i]);
| |
| if(url){
| |
| var ext = files[i].split('.').pop().toLowerCase();
| |
| mw.loader.load(url,'text/' + (ext==='js' ? 'javascript' : 'css'));
| |
| }
| |
| }
| |
| }
| |
|
| |
| mw.loader.using('mediawiki.util', function(){
| |
| var params = mw.util.getParamValue('use');
| |
| var files = getFilesFromUrl(params);
| |
| loadFiles(files);
| |
| });
| |
| })();
| |
|
| |
|
| /* Перенос page-info и цвет заголовков */ | | /* Перенос page-info и цвет заголовков */ |