리버티게임:관리자 요청/2018년 11월: 두 판 사이의 차이
백괴게임>유한림 (+) |
백괴게임>Bd3076 (→Common.js 수정 요청: 새 문단) |
||
1번째 줄: | 1번째 줄: | ||
<noinclude>{{관리자 요청 보존|2018|11}}</noinclude> | <noinclude>{{관리자 요청 보존|2018|11}}</noinclude> | ||
== Common.js 수정 요청 == | |||
DB 플러그인 파트를 | |||
<pre> | |||
/** DB기능 초기화 | |||
* [[틀:DB]]를 사용 가능하게 해 줍니다. | |||
* [[사용자:BANIP|BANIP]] | |||
*/ | |||
function enableLocalStorage() { | |||
// 문서 미리보기 상태일 시 종료 | |||
if (location.pathname === "/w/index.php") return; | |||
//플러그인의 모든 키 순회 | |||
function forEach(object, callback) { | |||
for (var key in object) { | |||
var variable = object[key]; | |||
callback(variable, key); | |||
} | |||
} | |||
function setLocalStorage(parentKey, datas) { | |||
var stringKeys = JSON.stringify(Object.keys(datas)); | |||
localStorage.setItem(parentKey + "/__keys__", stringKeys); | |||
forEach(datas, function(v, i) { | |||
if (i === "action") return; | |||
localStorage.setItem(parentKey + "/" + i, v); | |||
}); | |||
} | |||
function getLocalStorage(parentKey) { | |||
var datas = {}; | |||
var stringKeys = localStorage.getItem(parentKey + "/__keys__"); | |||
if (stringKeys === null) return null; | |||
var keys = JSON.parse(stringKeys); | |||
keys.forEach(function(key) { | |||
datas[key] = localStorage.getItem(parentKey + "/" + key); | |||
}) | |||
return datas; | |||
} | |||
function clearLocalStorage(parentKey) { | |||
var datas = {}; | |||
var stringKeys = localStorage.getItem(parentKey + "/__keys__"); | |||
if (stringKeys === null) return null; | |||
var keys = JSON.parse(stringKeys); | |||
keys.forEach(function(key) { | |||
datas[key] = localStorage.removeItem(parentKey + "/" + key); | |||
}) | |||
} | |||
function getSearch() { | |||
return geturlSearch(); | |||
} | |||
function searchParamToString(searchParamsObj){ | |||
var params = "?" + Object.entries(searchParamsObj) | |||
.map(function(v){ return v.join("=") }) | |||
.join("&"); | |||
return encodeURI(params); | |||
} | |||
function setSearch(datas) { | |||
var searchParams = getSearch(); | |||
forEach(datas, function(v, i) { | |||
searchParams[i] = v; | |||
}); | |||
location.search = searchParamToString(searchParams); | |||
} | |||
function hasSearch() { | |||
return !(location.search === ""); | |||
} | |||
$(".controlLocalStorage").each(function() { | |||
var parentKey = $(this).data("key"); | |||
var behavior = $(this).data("behavior"); | |||
switch (behavior) { | |||
case "세이브": | |||
if (!hasSearch()) return; | |||
var datas = getSearch(); | |||
clearLocalStorage(parentKey); | |||
setLocalStorage(parentKey, datas); | |||
break; | |||
case "로드": | |||
if (hasSearch()) return; | |||
var datas = getLocalStorage(parentKey, datas); | |||
if (datas === null) return; | |||
setSearch(datas); | |||
break; | |||
case "초기화": | |||
clearLocalStorage(parentKey); | |||
break; | |||
} | |||
}) | |||
} | |||
$(enableLocalStorage); | |||
</pre> | |||
처럼 바꿔주세요. 초기화 기능을 추가했습니다. |
2018년 11월 1일 (목) 18:07 판
관리자 요청 |
---|
◀ 2018년 11월 ▶ |
새 글 쓰기 |
새로 고침 |
Common.js 수정 요청
DB 플러그인 파트를
/** DB기능 초기화 * [[틀:DB]]를 사용 가능하게 해 줍니다. * [[사용자:BANIP|BANIP]] */ function enableLocalStorage() { // 문서 미리보기 상태일 시 종료 if (location.pathname === "/w/index.php") return; //플러그인의 모든 키 순회 function forEach(object, callback) { for (var key in object) { var variable = object[key]; callback(variable, key); } } function setLocalStorage(parentKey, datas) { var stringKeys = JSON.stringify(Object.keys(datas)); localStorage.setItem(parentKey + "/__keys__", stringKeys); forEach(datas, function(v, i) { if (i === "action") return; localStorage.setItem(parentKey + "/" + i, v); }); } function getLocalStorage(parentKey) { var datas = {}; var stringKeys = localStorage.getItem(parentKey + "/__keys__"); if (stringKeys === null) return null; var keys = JSON.parse(stringKeys); keys.forEach(function(key) { datas[key] = localStorage.getItem(parentKey + "/" + key); }) return datas; } function clearLocalStorage(parentKey) { var datas = {}; var stringKeys = localStorage.getItem(parentKey + "/__keys__"); if (stringKeys === null) return null; var keys = JSON.parse(stringKeys); keys.forEach(function(key) { datas[key] = localStorage.removeItem(parentKey + "/" + key); }) } function getSearch() { return geturlSearch(); } function searchParamToString(searchParamsObj){ var params = "?" + Object.entries(searchParamsObj) .map(function(v){ return v.join("=") }) .join("&"); return encodeURI(params); } function setSearch(datas) { var searchParams = getSearch(); forEach(datas, function(v, i) { searchParams[i] = v; }); location.search = searchParamToString(searchParams); } function hasSearch() { return !(location.search === ""); } $(".controlLocalStorage").each(function() { var parentKey = $(this).data("key"); var behavior = $(this).data("behavior"); switch (behavior) { case "세이브": if (!hasSearch()) return; var datas = getSearch(); clearLocalStorage(parentKey); setLocalStorage(parentKey, datas); break; case "로드": if (hasSearch()) return; var datas = getLocalStorage(parentKey, datas); if (datas === null) return; setSearch(datas); break; case "초기화": clearLocalStorage(parentKey); break; } }) } $(enableLocalStorage);
처럼 바꿔주세요. 초기화 기능을 추가했습니다.