백괴게임>BANIP |
imported>Hsl0 |
(사용자 9명의 중간 판 18개는 보이지 않습니다) |
1번째 줄: |
1번째 줄: |
| <noinclude>{{관리자 요청 보존|2018|11}}</noinclude>
| | #REDIRECT [[보존:관리자 요청/2018년 11월]] |
| | |
| == 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>
| |
| 처럼 바꿔주세요. 초기화 기능을 추가했습니다. -- {{:사용자:Bd3076/서명}} 2018년 11월 1일 (목) 18:07 (KST)
| |
| :{{완료}} by [[사용자:Manymaster|manymaster]] ([[사용자토론:Manymaster|토론]]|[[특수기능:기여/Manymaster|기여]]) 2018년 11월 1일 (목) 18:16 (KST)
| |
| | |
| == 닉네임 변경 문의 (Kh0505 > 초코나무숲) ==
| |
| | |
| [[백괴게임:관리자_요청/2017년_12월#.EC.A0.9C_.EB.8B.89.EB.84.A4.EC.9E.84.EC.9D.84_MegaSquare.EB.A1.9C_.EB.B3.80.EA.B2.BD.ED.95.B4_.EC.A3.BC.EC.84.B8.EC.9A.94.|여기]]와 비슷합니다.
| |
| | |
| 이 계정이 예전에 게임 DB용으로 대충 만든 계정이었기 때문에(물론 그 이후 아예 버리긴 했다만..) 닉네임을 대충 지었습니다. 때문에 제 닉네임을 현 닉넴에서 '''초코나무숲'''으로 변경해주시면 감사드리겠습니다. — '''[[사:Kh0505|{{색깔|Kh0505|green}}]]''' <small>'''[[사토:Kh0505|{{색깔|토론|#008080}}]]{{색깔| · |#008080}}[[특수:기여/Kh0505|{{색깔|기여|#008080}}]]'''</small> 2018년 11월 4일 (일) 08:34 (KST)
| |
| :{{보류}} 한 사용자의 계정 통합 과정에서 미디어위키가 완전히 꼬여버리는 일이 올해 초에 발생했습니다. 이로 인해 사용자 계정명 바꾸기 및 통합이 거의 불가능해졌습니다. 죄송합니다만, 나중에 계정 이름 바꾸기를 요청해 주시면 감사하겠습니다. -- {{사:이의섭/서명}} 2018년 11월 4일 (일) 09:07 (KST)
| |
| ::아, 알겠습니다. 감사합니다. — '''[[사:Kh0505|{{색깔|Kh0505|green}}]]''' <small>'''[[사토:Kh0505|{{색깔|토론|#008080}}]]{{색깔| · |#008080}}[[특수:기여/Kh0505|{{색깔|기여|#008080}}]]'''</small> 2018년 11월 4일 (일) 09:09 (KST)
| |
| | |
| == 로고변경 스크립트를 수정했습니다 ==
| |
| | |
| <pre>
| |
| | |
| /** [[틀:로고 바꾸기]]용 함수
| |
| * 작성자: [[사용자:Manymaster|manymaster]]
| |
| */
| |
| function logochange() {
| |
| // 허용 확장자 및 url 패턴
| |
| var allwedURLPattern = ["i.uncyclopedia.kr/game/","i.uncyclopedia.kr/pedia/","upload.wikimedia.org/wikipedia/commons/"]
| |
| var allowedExt = ["gif","png","jpg","jpeg","svg"]
| |
| | |
| const logoElement = document.getElementsByClassName("changelogo123");
| |
| /* .changelogo 요소가 없으면 종료 */
| |
| if (logoElement.length === 0) {
| |
| return;
| |
| | |
| }
| |
| | |
| var logoTest = logoElement[0].innerHTML.toLowerCase();
| |
| //이미지 url이 주어진 조건에 맞는지 검사
| |
| var isSafeURL = allwedURLPattern.some( function(middleURL){
| |
| var reg = new RegExp("^//" + middleURL)
| |
| return ( logoTest.match(reg) != null)
| |
| })
| |
| var isSafeExt = allowedExt.some( function(ext){
| |
| var reg = new RegExp("\." + ext + "$")
| |
| return ( logoTest.match(reg) != null)
| |
| })
| |
| | |
| // URL패턴과 확장자의 조건이 맞지 않으면 종료
| |
| if ( !(isSafeURL && isSafeExt) ) {
| |
| return;
| |
| }
| |
| | |
| /* 로고 교체 */
| |
| var orglogoElement = document.querySelector("#p-logo a");
| |
| orglogoElement.style.backgroundImage = "url('" + logoElement[0].innerHTML + "')";
| |
| /* 사이즈 교체 */
| |
| var sizeElement = document.querySelector(".changelogosize");
| |
| orglogoElement.style.backgroundSize = sizeElement === null ? "160px 160px" : sizeElement.innerHTML + " " + sizeElement.innerHTML
| |
| | |
| }
| |
| logochange()
| |
| /* [[틀:로고 바꾸기]]용 함수 끝 */
| |
| </pre>
| |
| slice로 테스트한 부분을 정규표현식으로 변경함으로써 코드 전체의 가독성을 높이고
| |
| | |
| 확장자와 url을 추가/수정하기 쉽게 고쳤습니다 --{{사용자:BANIP/서명}} 2018년 11월 7일 (수) 15:47 (KST)
| |
| :{{완료}} 언제나 감사드립니다. by [[사용자:Manymaster|manymaster]] ([[사용자토론:Manymaster|토론]]|[[특수기능:기여/Manymaster|기여]]) 2018년 11월 7일 (수) 15:50 (KST)
| |
| :: 앗.. 죄송합니다 깜빡하고 제가 테스트하던 코드 그대로 넣어서 작동이 안되는것 같습니다
| |
| ::getElementsByClassName("changelogo123"); 이부분에서 123을 지워주시면 감사드리겠습니다 두번 손보게 해서 죄송합니다.. --2018년 11월 7일 (수) 16:09 (KST)
| |