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

리버티게임, 모두가 만들어가는 자유로운 게임
백괴게임>Bd3076
편집 요약 없음
백괴게임>Bd3076
편집 요약 없음
1번째 줄: 1번째 줄:
var _afterLoad = function(){};
/**
* setCookie, getCookie
* 쿠키를 다룰 수 있게 해 줍니다.
* 작성자: [[사용자:Bd3076|Bd3076]]
*/


var _ready_for_ready = function(){
var setCookie = function(name, value) {
setTimeout(_ready_pluginX, 1000);
  var date = new Date();
  date.setTime(date.getTime() + 12345678987654321);
  document.cookie = name + '=' + value + ';expires=' + date.toUTCString() + ';path=/';
};
};


var _ready_pluginX = function(){
var getCookie = function(name) {
document.getElementById('firstHeading').innerHTML = "플러그인 문서를 생성하시려면 아래의 <strong>바꾸기</strong> 버튼을 누르세요.";
  var value = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
$('#ooui-4').css('display', 'none');
  return value? value[2] : null;
$('#ooui-5').css('display', 'none');
$('#ooui-6').css('display', 'none');
};
};


if(mw.config.get('wgPageName').substr(0, 11) == "특수:콘텐츠모델바꾸기"){
/**
var url = new URL(window.location);
* pluginX Core
var mode = url.searchParams.get('mode');
* pluginX 시스템이 제대로 돌아가게 해 줍니다.
if(mode == 'usingPluginX'){
* 작성자: [[사용자:Bd3076|Bd3076]]
_afterLoad = _ready_for_ready;
*/
 
function pluginXCore() {
    var _afterLoad = function(){};
var _ready_for_ready = function(){
setTimeout(_ready_pluginX, 1000);
};
var _ready_pluginX = function(){
document.getElementById('firstHeading').innerHTML = "플러그인 문서를 생성하시려면 아래의 <strong>바꾸기</strong> 버튼을 누르세요.";
$('#ooui-4').css('display', 'none');
$('#ooui-5').css('display', 'none');
$('#ooui-6').css('display', 'none');
};
if(mw.config.get('wgPageName').substr(0, 11) == "특수:콘텐츠모델바꾸기"){
var url = new URL(window.location);
var mode = url.searchParams.get('mode');
if(mode == 'usingPluginX'){
_afterLoad = _ready_for_ready;
}
}
}
$(_afterLoad());
    var script_list = [];
    var pluginExist = false;
    var html_before;
    var allRevId = 0;
   
    console.log('pluginXCore 도착');
   
    var api = MediaWikiAPI();
   
    /// 플러그인의 정보가 담긴 데이터를 만듭니다.
    var generateScriptData = function(_url, _name, _creator, _doc, _script){
    return {
    url: _url,
    name: _name,
    creator: _creator,
    doc: _doc,
    script: _script,
    };
    };
   
    /// 플러그인 목록을 만들어서 script_list[]에 담습니다.
    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 revid = $(this).attr('data-revid');
   
    var script = api.getDocument(doc);
    console.log("Code: " + script);
   
    script_list.push(generateScriptData(url, name, creator, doc, script));
   
    allRevId += revid;
    });
    };
   
    /// 플러그인을 실행합니다.
    var executePlugins = function(){
    setCookie('revIds', allRevId);
    document.getElementById('mw-content-text').innerHTML = html_before;
   
    script_list.forEach(function(data){
    var link = data.url;
    $.getScript(link);
    });
    };
   
    /// 플러그인을 실행하지 않습니다.
    var doNotExecutePlugins = function(){
    document.getElementById('mw-content-text').innerHTML = html_before;
    };
   
    /// 알림 창을 만듭니다.
    var showWindow = function(){
    html_before = document.getElementById('mw-content-text').innerHTML;
    $('#mw-content-text').html(api.readDocument("틀:PluginX/setup"));
    var script = "";
   
    script_list.forEach(function(data){
    var addingCode;
    addingCode = '<div class="px-code"><pre>';
    addingCode = addingCode.concat(((data.script.replace('&', '&amp;')).replace('<', '&lt;')).replace('>', '&gt;'));
    addingCode = addingCode.concat('</pre> </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;
   
$('#px-button').on('click', executePlugins);
$('#px-button2').on('click', doNotExecutePlugins);
    };
   
    getPluginList();
   
    if(pluginExist === false) return;
   
    showWindow();
   
    /// 플러그인이 바뀌었는지 확인합니다.
    if(getCookie('revIds') == allRevId){
    executePlugins();
    return;
    }
}
}
$(pluginXCore());


$(_afterLoad());
/* pluginX Core 끝 */

2018년 11월 11일 (일) 18:22 판

/**
 * setCookie, getCookie
 * 쿠키를 다룰 수 있게 해 줍니다.
 * 작성자: [[사용자:Bd3076|Bd3076]]
*/

var setCookie = function(name, value) {
  var date = new Date();
  date.setTime(date.getTime() + 12345678987654321);
  document.cookie = name + '=' + value + ';expires=' + date.toUTCString() + ';path=/';
};

var getCookie = function(name) {
  var value = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
  return value? value[2] : null;
};

/**
 * pluginX Core
 * pluginX 시스템이 제대로 돌아가게 해 줍니다.
 * 작성자: [[사용자:Bd3076|Bd3076]]
*/

function pluginXCore() {
    var _afterLoad = function(){};
	
	var _ready_for_ready = function(){
		setTimeout(_ready_pluginX, 1000);
	};
	
	var _ready_pluginX = function(){
		document.getElementById('firstHeading').innerHTML = "플러그인 문서를 생성하시려면 아래의 <strong>바꾸기</strong> 버튼을 누르세요.";
		$('#ooui-4').css('display', 'none');
		$('#ooui-5').css('display', 'none');
		$('#ooui-6').css('display', 'none');
	};
	
	if(mw.config.get('wgPageName').substr(0, 11) == "특수:콘텐츠모델바꾸기"){
		var url = new URL(window.location);
		var mode = url.searchParams.get('mode');
		if(mode == 'usingPluginX'){
			_afterLoad = _ready_for_ready;
		}
	}

	$(_afterLoad());
	
	
    var script_list = [];
    var pluginExist = false;
    var html_before;
    var allRevId = 0;
    
    console.log('pluginXCore 도착');
    
    var api = MediaWikiAPI();
    
    /// 플러그인의 정보가 담긴 데이터를 만듭니다.
    var generateScriptData = function(_url, _name, _creator, _doc, _script){
    	return {
    		url: _url,
    		name: _name,
    		creator: _creator,
    		doc: _doc,
    		script: _script,
    	};
    };
    
    /// 플러그인 목록을 만들어서 script_list[]에 담습니다.
    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 revid = $(this).attr('data-revid');
    		
    		var script = api.getDocument(doc);
    		console.log("Code: " + script);
    		
    		script_list.push(generateScriptData(url, name, creator, doc, script));
    		
    		allRevId += revid;
    	});
    };
    
    /// 플러그인을 실행합니다.
    var executePlugins = function(){
    	setCookie('revIds', allRevId);
    	document.getElementById('mw-content-text').innerHTML = html_before;
    	
    	script_list.forEach(function(data){
    		var link = data.url;
    		$.getScript(link);
    	});
    };
    
    /// 플러그인을 실행하지 않습니다.
    var doNotExecutePlugins = function(){
    	document.getElementById('mw-content-text').innerHTML = html_before;
    };
    
    /// 알림 창을 만듭니다.
    var showWindow = function(){
    	html_before = document.getElementById('mw-content-text').innerHTML;
    	$('#mw-content-text').html(api.readDocument("틀:PluginX/setup"));
    	var script = "";
    	
    	script_list.forEach(function(data){
    		var addingCode;
    		addingCode = '<div class="px-code"><pre>';
    		addingCode = addingCode.concat(((data.script.replace('&', '&amp;')).replace('<', '&lt;')).replace('>', '&gt;'));
    		addingCode = addingCode.concat('</pre> </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;
    
		$('#px-button').on('click', executePlugins);
		$('#px-button2').on('click', doNotExecutePlugins);
    };
    
    getPluginList();
    
    if(pluginExist === false) return;
    
    showWindow();
    
    /// 플러그인이 바뀌었는지 확인합니다.
    if(getCookie('revIds') == allRevId){
    	executePlugins();
    	return;
    }
}
$(pluginXCore());

 /* pluginX Core 끝 */