틀:자동저장/플러그인: 두 판 사이의 차이

리버티게임(개발), 모두가 만들어가는 자유로운 게임
둘러보기로 이동 검색으로 이동
백괴게임>BANIP
잔글 (2.0.1 버전업: 하위 브라우저 호환)
백괴게임>BANIP
(버전업 2.0.2 => edge에서 사용할 수 없는 URL API의 searchParam 파라미터 코드 구문을 저번에 commonjs에 만들어놓은 geturlSearch 함수로 변경)
6번째 줄: 6번째 줄:
{{#vardefine:name|autosave}}
{{#vardefine:name|autosave}}
{{#vardefine:creat|Manymaster}}
{{#vardefine:creat|Manymaster}}
{{#vardefine:version|2.0.1}}
{{#vardefine:version|2.0.2}}
{{#vardefine:descript|자동저장 시스템을 위한 플러그인}}
{{#vardefine:descript|자동저장 시스템을 위한 플러그인}}
{{#vardefine:local|false}}
{{#vardefine:local|false}}
16번째 줄: 16번째 줄:
var safeNameSpace = [""];
var safeNameSpace = [""];
/* autosave 편집모드가 아닐 경우 플러그인 종료 */
/* autosave 편집모드가 아닐 경우 플러그인 종료 */
var searchParams = new URL(location).searchParams;
var searchParams = geturlSearch(location);
var isEditMode = searchParams.get("action") === "edit";
var isEditMode = searchParams.action === "edit";
var isAutosaveMode = searchParams.get("autosave") === "1";
var isAutosaveMode = searchParams.autosave === "1";
if (!(isEditMode && isAutosaveMode)) return "";
if (!(isEditMode && isAutosaveMode)) return "";



2018년 3월 18일 (일) 19:27 판

요령 => 아래 변수들의 첫번째 인자들을 내용에 맞게 자르고 붙여넣어주세요

!!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 윗부분은 만지지 마시오 절대로!!!!!!!!!!!!!!!!!






!!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 끝 아래는 만지지 마시오!!!!!!!!!!!!!!!!!

이 플러그인에 대한 자세한 설명을 보시려면 틀:자동저장을 참고해주세요.

		 
/* 작동 가능한 네임스페이스 */
var safeNameSpace = [""];
/* autosave 편집모드가 아닐 경우 플러그인 종료 */
var searchParams = geturlSearch(location);
var isEditMode = searchParams.action === "edit";
var isAutosaveMode = searchParams.autosave === "1";
if (!(isEditMode && isAutosaveMode)) return "";

/* 자동 저장하기에 안전한 네임스페이스가 아닌 경우 플러그인 종료 */
var thisNamespaceNumber = mw.config.get("wgNamespaceNumber");
var nameSpaceIds = mw.config.get("wgNamespaceIds");
var isSafeNameSpace = safeNameSpace
    .map(function (namespace) { return nameSpaceIds[namespace]; })
    .some(function (nsNumber) { return nsNumber == thisNamespaceNumber; });
if (!(isSafeNameSpace)) return "";

/* 자동 인증된 사용자가 아닌 경우 플러그인 종료 */
var userGroups = mw.config.get('wgUserGroups');
var autocheck = 0;
if (userGroups) {
    for (var i = 0; i < userGroups.length; i++) {
        if (userGroups[i] === 'autoconfirmed') {
            autocheck++;
        }
    }
}
if (autocheck != 1) return "";

/* 지정된 단락에서 불러오기 */
var savetempDom = $(".game-autosave");
if ($(".game-autosave").length === 0)
    throw new Error("autosave => game-autosave를 클래스명으로 가진 돔을 찾을 수 없습니다.");
var savetemp = $(".game-autosave").html();

/* 문제가 되는 문자열 치환 */
savetemp = savetemp.replace(/(<([^>]+)>)/ig, "");
savetemp = savetemp.replace(/\n+/gi, "\n");
savetemp = savetemp.replace("\n", "");
savetemp = savetemp.replace(/&lt;/gi, "<");
savetemp = savetemp.replace(/&gt;/gi, ">");

/* 기록, 저장하고 빠져나오기 */
$("#wpTextbox1").val(savetemp);
$("#wpSave").click();
return;

/** 이 플러그인 제작을 도와주신 분들
 * Ver 2 제작자: [[사용자:BANIP|BANIP]]
 * 원 코드 작성자: [[사용자:*devunt]]
*/