틀:자동저장/플러그인: 두 판 사이의 차이
< 틀:자동저장
백괴게임>Manymaster (새로운플러그인생성) |
잔글 ("틀:자동저장/플러그인" 문서를 보호했습니다: 방문이 많거나 리버티게임 프로젝트에서 중요한 문서: 변조될 경우 자동저장을 사용하는 모든 게임에 문제가 발생하므로, 관리자 전용 편집으로 변경 ([편집=관리자만 허용] (무기한) [이동=관리자만 허용] (무기한))) |
||
(사용자 2명의 중간 판 17개는 보이지 않습니다) | |||
5번째 줄: | 5번째 줄: | ||
{{#vardefine:name|autosave}} | {{#vardefine:name|autosave}} | ||
{{#vardefine:creat| | {{#vardefine:creat|Manymaster}} | ||
{{#vardefine:version| | {{#vardefine:version|2.0.2}} | ||
{{#vardefine:descript|자동저장 시스템을 위한 플러그인}} | {{#vardefine:descript|자동저장 시스템을 위한 플러그인}} | ||
{{#vardefine:local|false}} | {{#vardefine:local|false}} | ||
14번째 줄: | 14번째 줄: | ||
<nowiki> | <nowiki> | ||
/* 작동 가능한 네임스페이스 */ | /* 작동 가능한 네임스페이스 */ | ||
var safeNameSpace = [""]; | |||
/* autosave 편집모드가 아닐 경우 플러그인 종료 */ | /* autosave 편집모드가 아닐 경우 플러그인 종료 */ | ||
var searchParams = geturlSearch(location); | |||
var isEditMode = searchParams.action === "edit"; | |||
var isAutosaveMode = searchParams.autosave === "1"; | |||
if(!(isEditMode && isAutosaveMode)) return ""; | 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 ""; | if (!(isSafeNameSpace)) return ""; | ||
/* 자동 인증된 사용자가 아닌 경우 플러그인 종료 */ | /* 자동 인증된 사용자가 아닌 경우 플러그인 종료 */ | ||
var userGroups = mw.config.get( 'wgUserGroups' ); | var userGroups = mw.config.get('wgUserGroups'); | ||
var autocheck = 0 | var autocheck = 0; | ||
if ( userGroups ) { | if (userGroups) { | ||
for ( var i = 0; i < userGroups.length; i++ ) { | for (var i = 0; i < userGroups.length; i++) { | ||
if ( userGroups[i] === 'autoconfirmed' ) { | if (userGroups[i] === 'autoconfirmed') { | ||
autocheck++; | autocheck++; | ||
} | |||
} | |||
} | } | ||
if (autocheck != 1) return ""; | |||
if(! | |||
/* 지정된 단락에서 불러오기 */ | /* 지정된 단락에서 불러오기 */ | ||
var savetempDom = $(".game-autosave"); | |||
if($(".game-autosave").length === 0) | if ($(".game-autosave").length === 0) | ||
throw new Error("autosave => game-autosave를 클래스명으로 가진 돔을 찾을 수 없습니다."); | throw new Error("autosave => game-autosave를 클래스명으로 가진 돔을 찾을 수 없습니다."); | ||
var savetemp = $(".game-autosave").html(); | var savetemp = $(".game-autosave").html(); | ||
/* 문제가 되는 문자열 치환 */ | /* 문제가 되는 문자열 치환 */ | ||
savetemp = savetemp.replace(/(<([^>]+)>)/ig,""); | savetemp = savetemp.replace(/(<([^>]+)>)/ig, ""); | ||
savetemp = savetemp.replace(/\n+/gi, "\n"); | savetemp = savetemp.replace(/\n+/gi, "\n"); | ||
savetemp = savetemp.replace("\n", ""); | savetemp = savetemp.replace("\n", ""); | ||
savetemp = savetemp.replace(/ | savetemp = savetemp.replace(/&lt;/gi, "<"); | ||
savetemp = savetemp.replace(/ | savetemp = savetemp.replace(/&gt;/gi, ">"); | ||
/* 기록, 저장하고 빠져나오기 */ | /* 기록, 저장하고 빠져나오기 */ | ||
59번째 줄: | 58번째 줄: | ||
$("#wpSave").click(); | $("#wpSave").click(); | ||
return; | return; | ||
/** 이 플러그인 제작을 도와주신 분들 | |||
* Ver 2 제작자: [[사용자:BANIP|BANIP]] | |||
* 원 코드 작성자: [[사용자:*devunt]] | |||
*/ | |||
</nowiki> | </nowiki> | ||
}} | }} | ||
!!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 끝 아래는 만지지 마시오!!!!!!!!!!!!!!!!! | !!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 끝 아래는 만지지 마시오!!!!!!!!!!!!!!!!! | ||
</div>{{#switch: {{{1|화면}}} | </div>{{#switch: {{{1|화면}}} | ||
|dump = | |dump = | ||
|화면 = | |화면 = 이 플러그인에 대한 자세한 설명을 보시려면 [[틀:자동저장]]을 참고해주세요.[[분류:플러그인]] | ||
<p<includeonly></includeonly>re class="script" data-name="{{#var:name}}" | <p<includeonly></includeonly>re class="script" data-name="{{#var:name}}" | ||
data-create="{{#var:creat}}" | data-create="{{#var:creat}}" | ||
76번째 줄: | 76번째 줄: | ||
data-local="{{#var:local}}" | data-local="{{#var:local}}" | ||
data-executable="{{#var:executable}}" | data-executable="{{#var:executable}}" | ||
data-state=" | data-state="틀:자동저장/플러그인"> | ||
{{#var:code}} | {{#var:code}} | ||
</pre> | </pre> | ||
82번째 줄: | 82번째 줄: | ||
{{#ifeq:{{{2|틀}}}|틀|{{플러그인/알림|{{#var:name}}}}|}} | {{#ifeq:{{{2|틀}}}|틀|{{플러그인/알림|{{#var:name}}}}|}} | ||
<span class="use-script" data-name="{{#var:name}}" data-creat="{{#var:creat}}" data-version="{{#var:version}}" data-executable="{{#var:executable}}" | <span class="use-script" data-name="{{#var:name}}" data-creat="{{#var:creat}}" data-version="{{#var:version}}" data-executable="{{#var:executable}}" | ||
data-descript="{{#var:descript}}" data-local="{{#var:local}}" data-state=" | data-descript="{{#var:descript}}" data-local="{{#var:local}}" data-state="틀:자동저장/플러그인" data-link="{{fullurl: {{#rel2abs: {{{1}}} }} }}"></span> | ||
}} | }} |
2024년 7월 12일 (금) 10:42 기준 최신판
이 플러그인에 대한 자세한 설명을 보시려면 틀:자동저장을 참고해주세요.
/* 작동 가능한 네임스페이스 */ 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(/</gi, "<"); savetemp = savetemp.replace(/>/gi, ">"); /* 기록, 저장하고 빠져나오기 */ $("#wpTextbox1").val(savetemp); $("#wpSave").click(); return; /** 이 플러그인 제작을 도와주신 분들 * Ver 2 제작자: [[사용자:BANIP|BANIP]] * 원 코드 작성자: [[사용자:*devunt]] */