사용자:Bd3076/common.js: 두 판 사이의 차이

리버티게임, 모두가 만들어가는 자유로운 게임
백괴게임>Bd3076
편집 요약 없음
백괴게임>Bd3076
편집 요약 없음
1번째 줄: 1번째 줄:
function pluginXCore() {
function pluginXCore() {
function forEach(object, callback) {
        for (var key in object) {
            var variable = object[key];
            callback(variable, key);
        }
    }
   
     var script_list = [];
     var script_list = [];
     var pluginExist = false;
     var pluginExist = false;

2018년 11월 8일 (목) 13:28 판

function pluginXCore() {
    var script_list = [];
    var pluginExist = false;
    
    var api = MediaWikiAPI();
    
    var generateScriptData = function(_url, _name, _creator, _doc, _script){
    	return {
    		url: _url,
    		name: _name,
    		creator: _creator,
    		doc: _doc,
    		script: _script,
    	};
    };
    
    var getPluginList = function(){
    	$(".c_pluginX").each(function() {
    		pluginExist = true;
    		var url = $(this).attr('data-url');
    		var name = $(this).attr('data-name');
    		var creator = $(this).attr('data-creator');
    		var doc = $(this).attr('data-doc');
    		
    		var script = api.getDocument(doc);
    		console.log("Code: " + script);
    		
    		script_list.push(generateScriptData(url, name, creator, doc, script));
    	});
    };
    
    var showWindow = function(){
    	$('#mw-content-text').html(api.readDocument("틀:PluginX/setup"));
    	var script = "";
    	
    	script_list.forEach(function(data){
    		var addingCode;
    		addingCode = '<div class="px-code">';
    		addingCode = addingCode.concat(data.script);
    		addingCode = addingCode.concat('</div> <div class="px-codeinfo"> <ul> <li> 플러그인 이름: ');
    		addingCode = addingCode.concat(data.name);
    		addingCode = addingCode.concat('</li> <li> 플러그인 제작자: ');
    		addingCode = addingCode.concat(data.creator);
    		addingCode = addingCode.concat('</li> </ul> </div');
    		
    		console.log(addingCode);
    		
    		script += addingCode;
    	});
    	
    	document.getElementById('px-script').innerHTML = script;
    };
    
    var executePlugins = function(){
    	document.getElementById('px-box').display = none;
    	
    	script_list.forEach(function(data){
    		var link = data.url;
    		$.getScript(link);
    	});
    };
    
    $('#px-button').attr('onClick', 'executePlugins()');
    
    getPluginList();
    if(pluginExist === false) return;
    showWindow();
}
$(pluginXCore());