사용자:Bd3076/common.js: 두 판 사이의 차이
백괴게임>Bd3076 편집 요약 없음 |
백괴게임>Bd3076 편집 요약 없음 |
||
1번째 줄: | 1번째 줄: | ||
/** | |||
* setCookie, getCookie | |||
* 쿠키를 다룰 수 있게 해 줍니다. | |||
* 작성자: [[사용자:Bd3076|Bd3076]] | |||
*/ | |||
var | var setCookie = function(name, value) { | ||
var date = new Date(); | |||
date.setTime(date.getTime() + 12345678987654321); | |||
document.cookie = name + '=' + value + ';expires=' + date.toUTCString() + ';path=/'; | |||
}; | }; | ||
var | var getCookie = function(name) { | ||
var value = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); | |||
return value? value[2] : null; | |||
}; | }; | ||
if(mw.config.get('wgPageName').substr(0, 11) == "특수:콘텐츠모델바꾸기"){ | /** | ||
* 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('&', '&')).replace('<', '<')).replace('>', '>')); | |||
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 끝 */ |
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('&', '&')).replace('<', '<')).replace('>', '>'));
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 끝 */