본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
도움말
최근 바뀜
게임 목록
임의의 게임으로
Top 20
청사진
커뮤니티
오락실
토론란
발전소
추천 게임
게임제작도움방
자매 프로젝트
리버티책
오사인덱스
진실위키
큰숲백과
위키연합회의장
연합회의장
사이트 개발 서버
개발 서버
리버티게임
검색
검색
보이기
계정 만들기
로그인
개인 도구
계정 만들기
로그인
로그아웃한 편집자를 위한 문서
더 알아보기
기여
토론
사용자:BANIP/플러그인/랭킹시스템 문서 원본 보기
사용자 문서
토론
한국어
읽기
원본 보기
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
원본 보기
역사 보기
새로 고침
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
사용자 기여
기록 목록
사용자 그룹을 보기
특수 문서 목록
문서 정보
축약된 URL 얻기
보이기
사이드바로 이동
숨기기
←
사용자:BANIP/플러그인/랭킹시스템
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
이 문서는 신규 사용자나 비등록 사용자가 편집할 수 없도록 잠겨 있어, 편집하려면
자동 인증된 사용자
가 되어야 합니다.
이 문서에 대한 의견은
토론 문서
에 적어주시기 바랍니다.
문서의 원본을 보거나 복사할 수 있습니다.
<div style="display:none"> 요령 => 아래 변수들의 첫번째 인자들을 내용에 맞게 자르고 붙여넣어주세요 !!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 윗부분은 만지지 마시오 절대로!!!!!!!!!!!!!!!!! {{#vardefine:name|RankingSystem}} {{#vardefine:creat|BANIP}} {{#vardefine:version|1.0.0}} {{#vardefine:descript|랭킹시스템 라이브러리}} {{#vardefine:local|true}} {{#vardefine:excutable|false}} {{#vardefine:code| // 이부부분에 코드 입력 // /** * @param {string} documentTitle 랭킹정보가 있는 문서의 제목. {function} sortCallback 랭킹을 정렬할때 기준으로 사용하는 함수 {any} prev 랭킹 정렬 기준으로 사용할 왼쪽의 값 {any} next 랭킹 정렬 기준으로 사용할 오른쪽의 값 {object} api MediaWikiapi의 인스턴스, 없어도 됨. @return {Object} {function} get 랭킹정보를 object형태로 획득 {function} update 랭킹정보 업데이트 {object} updateInfo 업데이트할 사용자 정보 {function} updateCriteria 사용자정보의 업데이트 기준 @param {any} rankingScore 랭킹에서 사용중인 스코어 {any} thisScore 사용자 스코어 @return{bool} true가 반환되면 업데이트 {object} alternateKeys 랭킹에서 보여지는 대체 키 */ function forEach(object, callback){ for(var key in object){ var variable = object[key]; callback(variable,key); } } function getRankingJSON(rankingDoc) { console.log(rankingDoc) if(!rankingDoc) return {}; var regexp = /\<includeonly\>(.*)\<\/includeonly\>/; var stringRanking = regexp.exec(rankingDoc)[1]; return JSON.parse(stringRanking); } function updateDoc(rankingJSON, api, alternateKeys) { //alternateKeys가 반영된 개개인의 랭킹정보 획득 function getOutputJSON(json){ var result = {}; forEach(json,function(value,key){ key = alternateKeys[key] || key; result[key] = value; }) return result; } //보여지는 형태의 랭킹정보 획득 function getOutputString(json){ var name = json.name; var result = "* '''" + name + "''' : "; forEach(json,function(value,key){ if(key === "name") return; key = alternateKeys[key] || key; result += key + ": " + value + ", "; }) return result } var stringRanking = JSON.stringify(rankingJSON); var result = "<includ" + "eonly>" + stringRanking + "</inclu" + "deonly>\n"; result += "<onlyin" + "clude>\n"; var rankingList = Object.keys(rankingJSON); rankingList.sort(sortCallback); rankingList.forEach(function(key) { var json = rankingJSON[key]; var outputJSON = getOutputJSON(json); result += getOutputString(outputJSON) }); result += "</only" + "include>"; api.changeDocument("백괴슬라이드/랭킹", "백괴슬라이드 점수 갱신", result, true); return result; } function updateUserScore(rankingJSON, thisScore, updateCriteria) { updateCriteria = updateCriteria || function(rankingScore, thisScore){ return rankingScore.score < thisScore.score; } var userName = thisScore.name; var rankingScore = rankingJSON[userName]; if (!rankingScore || updateCriteria(rankingScore, thisScore)) { rankingJSON[userName] = thisScore; } } api = api || MediaWikiAPI(); var userName = mw.config.get("wgUserName"); var rankingDoc = api.getDocument( documentTitle ); var rankingJSON = getRankingJSON(rankingDoc); var actions = { get:function(){ return rankingJSON; }, update:function(updateInfo,updateCriteria,alternateKeys){ rankingJSON = actions.get(); updateUserScore(rankingJSON, updateInfo,updateCriteria); updateDoc(rankingJSON, api, alternateKeys); } } return actions; }} !!!!!!!!!!!!!!!! 플러그인 정보 입력 구간 끝 아래는 만지지 마시오!!!!!!!!!!!!!!!!! {{플러그인/preset/css}} </div>{{#switch: {{{1|화면}}} |dump = |화면 = <p<includeonly></includeonly>re class="script" data-name="{{#var:name}}" data-create="{{#var:creat}}" data-version="{{#var:version}}" data-descript="{{#var:descript}}" data-local="{{#var:local}}" data-excutable="{{#var:excutable}}" data-state="사용자:BANIP/플러그인/랭킹시스템"> {{#var:code}} </pre> |#default = {{#ifeq:{{{2|틀}}}|틀|{{플러그인/알림|{{#var:name}}}}|}} <span class="use-script" data-name="{{#var:name}}" data-creat="{{#var:creat}}" data-version="{{#var:version}}" data-excutable="{{#var:excutable}}" data-descript="{{#var:descript}}" data-local="{{#var:local}}" data-state="사용자:BANIP/플러그인/랭킹시스템" data-link="{{fullurl: {{#rel2abs: {{{1}}} }} }}"></span> }}
이 문서에서 사용한 틀:
틀:플러그인/preset/각주
(
편집
)
사용자:BANIP/플러그인/랭킹시스템
문서로 돌아갑니다.