모듈:보호된 편집 요청/활성

Module

요구하다('''비공식''')  현지의 예 아니오, 메시지 상자 만들기 모듈에서 전달됨:보호된 편집 요청 현지의 도구 모음 만들기 = 요구하다('모듈:도구 모음')._본 현지의 페이지 유형 가져오기 = 요구하다('모듈:페이지 유형')._본 현지의 유효 보호 수준 = 요구하다('모듈:효과적인 보호 수준')._본  ---------------------------------------------------------------------- 도우미 기능 ----------------------------------------------------------------------  현지의 기능. Wikilink(페이지입니다., 과시하는)  한다면 과시하는 그리고나서   돌아가다 mw.ustring.서식을('[%s %s]', 페이지입니다., 과시하는)  또 다른   돌아가다 mw.ustring.서식을('[%s]', 페이지입니다.)  끝. 끝.  ---------------------------------------------------------------------- 타이틀 클래스 ----------------------------------------------------------------------  이것은 기본적으로 추가 사항이 포함된 mw.title 클래스입니다.  현지의 제목 = {} 제목.__index = 제목  기능. 제목.보호 가져오기수준 텍스트(보호 수준)  앵커 및 urn 링크에 사용할 텍스트를 가져옵니다.  현지의 수준 = {무방비의 = '보호되지 않은 상태로 편집, 자동 확인된 = '반보호 편집', 확증된 = '확장 보호됨 편집', 템플릿 편집기 = '템플릿 보호 편집', 시솝 = '보호된 편집', 인터페이스 관리자 = '인터페이스 보호 편집'}  돌아가다 수준[보호 수준] 끝.  기능. 제목.신규(...)  현지의 성공., obj = pcall(mw.제목.신규, ...)  한다면 것은 아니다. (성공. 그리고. obj) 그리고나서 돌아가다 끝.  제목.안에(obj)  돌아가다 obj 끝.  기능. 제목.안에(obj)  보호 추가수평 특성.  obj.보호 수준 = 유효 보호 수준(obj.존재한다 그리고. '편집' 또는 '만들기', obj)  한다면 obj.보호 수준 == '*' 그리고나서   보호되지 않는 페이지를 "보호되지 않음"으로 반환합니다.   obj.보호 수준 = '보호되지 않음'  그렇지 않으면 obj.보호 수준 == '사용자' 그리고나서   만약 우리가 등록만 하면 된다면, 우리가 가진 것 중 가장 가까운 것이기 때문에 자동 확인이 필요한 것으로 간주하십시오.   obj.보호 수준 = '자동 확인됨'  끝.   페이지 유형 속성을 추가합니다.  obj.페이지 유형 = 페이지 유형 가져오기{페이지입니다. = obj.접두사 텍스트, defaultns = '모두'}    링크 작성 방법을 추가합니다.  기능. obj:makeUrlLink(문의, 과시하는)   돌아가다 mw.ustring.서식을('[%s %s]', 자신:전체 URL(문의), 과시하는)  끝.   기능. obj:makeViewLink(과시하는)   돌아가다 자신:makeUrlLink({리다이렉트 = '아니오'}, 과시하는)  끝.   기능. obj:makeEditLink(과시하는)   돌아가다 자신:makeUrlLink({액션. = '편집'}, 과시하는)  끝.   기능. obj:make HistoryLink(과시하는)   돌아가다 자신:makeUrlLink({액션. = '역사'}, 과시하는)  끝.   기능. obj:마지막 편집 링크 만들기(과시하는)   돌아가다 자신:makeUrlLink({차이가 있는 = '커', 늙은이 = '''비공식'''}, 과시하는)  끝.   기능. obj:여기에 연결 항목링크 만들기(과시하는)   돌아가다 Wikilink('특수:링크 내용/' .. 자신.접두사 텍스트, 과시하는)  끝.   기능. obj:비교 링크 만들기(기타 제목, 과시하는)   과시하는 = 과시하는 또는 'diff'   현지의 페이지 비교제목 = 제목.신규('특수:페이지 비교')   돌아가다 페이지 비교제목:makeUrlLink({1 페이지 = 자신.접두사 텍스트, 2 페이지 = 기타 제목.접두사 텍스트}, 과시하는)  끝.   기능. obj:makeLogLink(logType, 과시하는)   현지의 logTitle = 제목.신규('특수:로그')   돌아가다 logTitle:makeUrlLink({유형 = logType, 페이지입니다. = 자신.접두사 텍스트}, 과시하는)  끝.   기능. obj:urlEncode()   돌아가다 mw.uri.부호화(자신.접두사 텍스트, 'WIKI')  끝.   기능. obj:makeUrnLink(상자 보호 수준)   항아리 링크를 출력합니다.보호 수준은 페이지 자체에서 탐지되는 것이 아니라 템플릿에서 가져옵니다.   2013년 11월 기준으로 캐스케이드로 보호되는 페이지와 제목 블랙리스트에 있는 페이지의 경우 탐지가 부정확할 수 있습니다.   현지의 protectionLinkText = 제목.보호 가져오기수준 텍스트(상자 보호 수준)   돌아가다 mw.ustring.서식을('[urn:x-wp-%s:%s <span></span>', protectionLinkText, 자신:urlEncode())  끝.   하위 페이지 제목 개체를 가져오지만 보호되지 않는 mw.title:subPageTitle을 사용하는 대신 pcall을 수행합니다.  기능. obj:하위 페이지 가져오기제목(하위 페이지)   돌아가다 제목.신규(자신.접두사 텍스트 .. '/' .. 하위 페이지)  끝.   기능. obj:샌드박스 제목 가져오기()   한다면 자신.isSubpage 그리고. 자신.내용 모델 == '비활성화된' 그리고나서    현지의 성공2, obj2 = pcall(mw.제목.makeTitle, 자신.네임스페이스, 자신.기본 텍스트 .. '/https/' .. 자신.하위 페이지텍스트)    한다면 성공2 그리고. obj2 그리고나서     제목.안에(obj2)     돌아가다 obj2    끝.   끝.   돌아가다 자신:하위 페이지 가져오기제목('''비공식''')  끝. 끝.  ---------------------------------------------------------------------- 제목 테이블 클래스 ----------------------------------------------------------------------  현지의 표제 = {} 표제.__index = 표제  기능. 표제.신규(논병아리)  숫자 인수를 가져오고 각 인수에 대한 제목 개체를 만듭니다.  현지의 숫자들 = {}  위해서 k, v 에 쌍들(논병아리) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   한다면 유형(k) == '숫자' 그리고나서    표.삽입(숫자들, k)   끝.  끝.  테이블. 테이블.(숫자들)  현지의 직함들 = {}  위해서 _, 번호 에 짝을 짓다(숫자들) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   현지의 제목 = 제목.신규(논병아리[번호])   표.삽입(직함들, 제목)  끝.  현재 제목을 가져오고 제목이 지정되지 않은 경우 제목을 가져옵니다.  직함들.현재 제목 = mw.제목.현재 제목 가져오기()  한다면 #직함들 < 1 그리고나서   현지의 제목 Ns. = 직함들.현재 제목.subjectNsText   한다면 제목 Ns. ~= '' 그리고나서    제목 Ns. = 제목 Ns. .. ':'   끝.   표.삽입(직함들, 제목.신규(제목 Ns. .. 직함들.현재 제목.본문))  끝.  메타테이블을 설정합니다.  상을 차리다(직함들, 표제)  돌아가다 직함들 끝.  기능. 표제:메모를 하다(memoField, 펑크, ...)  한다면 자신[memoField] ~= 영의 그리고나서   돌아가다 자신[memoField]  또 다른   자신[memoField] = 펑크(...)   돌아가다 자신[memoField]  끝. 끝.  기능. 표제:제목 반복기()  현지의 i = 0  현지의 n = #자신  돌아가다 기능.()   i = i + 1   한다면 i <= n 그리고나서    돌아가다 자신[i]   끝.  끝. 끝.  기능. 표제:동일한 속성 있음(memoField, 속성 함수 가져오기)  제목 테이블에 제목이 둘 이상 있는 경우, 동일한 속성이 있는지 확인합니다.  getPropertyFunc 함수를 사용하여 속성을 찾습니다. getPropertyFunc 함수는 제목 개체를 단일 인수로 사용합니다.    현지의 기능. 동일한 속성 있음(속성 함수 가져오기)   현지의 소유물   위해서 i, obj 에 짝을 짓다(자신) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다    한다면 i == 1 그리고나서     소유물 = 속성 함수 가져오기(obj)    그렇지 않으면 속성 함수 가져오기(obj) ~= 소유물 그리고나서     돌아가다 거짓의    끝.   끝.   돌아가다 진실의  끝.   돌아가다 자신:메모를 하다(memoField, 동일한 속성 있음, 속성 함수 가져오기) 끝.   기능. 표제:동일한 존재 상태 있음()  모든 제목이 있거나 모두 없는 경우 true를 반환합니다.존재 상태가 혼합된 경우 false를 반환합니다.  돌아가다 자신:동일한 속성 있음('동일 존재 상태', 기능. (제목) 돌아가다 제목.존재한다 끝.) 끝.  기능. 표제:보호 상태가 동일함()  모든 제목의 보호 상태가 동일한지 확인합니다(작성 보호 또는 편집 보호). 둘은 혼합되지 않습니다.  현지의 동일한 존재 상태 = 자신:동일한 존재 상태 있음()  한다면 동일한 존재 상태 그리고나서   돌아가다 자신:동일한 속성 있음('동일한 보호 상태', 기능. (제목) 돌아가다 제목.보호 수준 끝.)  또 다른   돌아가다 동일한 존재 상태  끝. 끝.  기능. 표제:페이지 유형이 동일합니다.()  모든 제목의 페이지 유형이 동일한지 확인합니다.  돌아가다 자신:동일한 속성 있음('동일 페이지 유형', 기능. (제목) 돌아가다 제목.페이지 유형 끝.) 끝.  기능. 표제:속성 있음(memoField, 속성 함수 가져오기)  특정 속성을 가진 제목이 있는지 확인합니다.  속성은 제목 개체를 단일 인수로 사용하는 getPropertyFunc 함수를 사용하여 찾습니다.  부울 값을 반환해야 합니다.  현지의 기능. 속성 있음(속성 함수 가져오기)   위해서 제목 Obj 에 자신:제목 반복기() 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다    한다면 속성 함수 가져오기(제목 Obj) 그리고나서     돌아가다 진실의    끝.   끝.   돌아가다 거짓의  끝.  돌아가다 자신:메모를 하다(memoField, 속성 있음, 속성 함수 가져오기) 끝.  기능. 표제:인터페이스 페이지 없음()  돌아가다 자신:속성 있음('비인터페이스 페이지', 기능. (제목 Obj) 돌아가다 제목 Obj.네임스페이스 ~= 8 끝.) 끝.  기능. 표제:hasTemplateOrModule()  돌아가다 자신:속성 있음('템플릿 또는 모듈', 기능. (제목 Obj) 돌아가다 제목 Obj.네임스페이스 == 10 또는 제목 Obj.네임스페이스 == 828 끝.) 끝.  기능. 표제:템플릿 또는 모듈 없음()  돌아가다 자신:속성 있음('비템플릿 또는 모듈', 기능. (titleobj) 돌아가다 titleobj.네임스페이스 ~= 10 그리고. titleobj.네임스페이스 ~= 828 끝.) 끝.  기능. 표제:다른 보호 수준 있음(수평의)  위해서 제목 Obj 에 자신:제목 반복기() 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   한다면 제목 Obj.보호 수준 ~= 수평의 그리고나서    돌아가다 진실의   끝.  끝.  돌아가다 거짓의 끝.  기능. 표제:보호 가져오기레벨()  현지의 기능. 보호 가져오기레벨()   현지의 수준 = {}   위해서 제목 Obj 에 자신:제목 반복기() 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다    현지의 수평의 = 제목 Obj.보호 수준    수준[수평의] = 진실의   끝.   돌아가다 수준  끝.  돌아가다 자신:메모를 하다('보호'레벨', 보호 가져오기레벨) 끝.  ---------------------------------------------------------------------- Blurb 클래스 정의 ----------------------------------------------------------------------  현지의 흐느적거리다 = {} 흐느적거리다.__index = 흐느적거리다  기능. 흐느적거리다.신규(표제, 상자 보호 수준)  현지의 obj = {}  obj.직함들 = 표제  obj.상자 보호 수준 = 상자 보호 수준  obj.링크 개수 = 0 개체의 링크 목록에 있는 총 항목 수를 나타내는 카운터입니다.  상을 차리다(obj, 흐느적거리다)  돌아가다 obj 끝.  정적 메서드 --  기능. 흐느적거리다.구문 분석 텍스트 만들기(이름., 발)  현지의 피리를 = mw.본문.노비키(' ')  현지의 동등한 = mw.본문.노비키('=')  발 = 발 그리고. ("''" .. 발 .. "''") 또는 ''  돌아가다 mw.ustring.서식을('<code style="white-space: nowrap;">%s%s%s</code>', 피리를, 이름., 동등한, 발) 끝.  기능. 흐느적거리다.makeTemplateLink(s)  돌아가다 mw.ustring.서식을('%s[[템플릿:%s %s]%s', mw.본문.노비키('{{'), s, s, mw.본문.노비키('}}')) 끝.  기능. 흐느적거리다:보호 텍스트 만들기()  현지의 상자 보호 수준 = 자신.상자 보호 수준  현지의 수준 = {['*'] = '보호되지 않음', 자동 확인된 = '안전하게 보호됨', 확증된 = '하이브리드 보호', 템플릿 편집기 = '안전하게 보호됨', 시솝 = '완전한 보호', 인터페이스 관리자 = '인터페이스로 보호됨'}  위해서 수평의, 보호 텍스트 에 쌍들(수준) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   한다면 수평의 == 상자 보호 수준 그리고나서    돌아가다 mw.ustring.서식을('[도움말:보호 %s]]', 보호 텍스트)   끝.  끝.  오류('알 수 없는 보호 수준' .. 상자 보호 수준) 끝.  기능. 흐느적거리다.페이지 유형 복수 가져오기(제목)  현지의 페이지 유형 = 제목.페이지 유형  한다면 페이지 유형 == '''비공식''' 그리고나서   돌아가다 '카테고리'  또 다른   돌아가다 페이지 유형 .. 's'  끝. 끝.  일반적인 방법 --  기능. 흐느적거리다:링크 목록 만들기(제목)  현지의 티바그 = {} 모듈에 전달할 인수 목록:도구 모음  티바그.스타일. = '크기: 더 작음;'  티바그.구분자 = '점  페이지 링크.  표.삽입(티바그, 제목:makeEditLink('편집'))  표.삽입(티바그, 제목:make HistoryLink('역사'))  표.삽입(티바그, 제목:마지막 편집 링크 만들기('마지막'))  표.삽입(티바그, 제목:여기에 연결 항목링크 만들기('''비공식'''))  샌드박스 링크.  현지의 샌드박스 제목 = 제목:샌드박스 제목 가져오기()  한다면 샌드박스 제목 그리고. 샌드박스 제목.존재한다 그리고나서   표.삽입(티바그, 샌드박스 제목:makeViewLink('''비공식'''))   표.삽입(티바그, 샌드박스 제목:makeEditLink('샌드박스 편집'))   표.삽입(티바그, 샌드박스 제목:make HistoryLink('기록 삭제'))   표.삽입(티바그, 샌드박스 제목:마지막 편집 링크 만들기('마지막 편집 시작'))   표.삽입(티바그, 제목:비교 링크 만들기(샌드박스 제목, 'diff diff'))  끝.  테스트 사례 링크.  현지의 테스트 케이스제목 = 제목:하위 페이지 가져오기제목('테스트 케이스')  한다면 테스트 케이스제목 그리고. 테스트 케이스제목.존재한다 그리고나서   표.삽입(티바그, 테스트 케이스제목:makeViewLink('테스트 사례'))  끝.  차단 횟수 링크.  한다면 제목.네임스페이스 == 10 또는 제목.네임스페이스 == 828 그리고나서 템플릿 및 모듈에 대한 차단 개수 링크만 추가합니다.   현지의 똑딱똑딱 = mw.uri.신규{    주인 = 'templatecount.toolforge.org ',    경로. = '/index.dll',    문의 = {     랑그 = en,     이름. = 제목.본문,     네임스페이스 = 제목.네임스페이스,    },    단편적인 = '하단'   }   똑딱똑딱 = string.형식('[%s 차단 횟수]', 끈으로 묶는(똑딱똑딱))   표.삽입(티바그, 똑딱똑딱)  끝.  보호 로그 링크.  한다면 제목.네임스페이스 ~= 8 그리고나서 미디어위키 페이지에 보호 로그 항목이 없습니다.   표.삽입(티바그, 제목:makeLogLink('보호', '보호 로그'))  끝.  자신.링크 개수 = 자신.링크 개수 + #티바그 개체에 의해 생성된 총 링크 수를 추적합니다.  돌아가다 도구 모음 만들기(티바그) 끝.  기능. 흐느적거리다:링크 목록 만들기()  현지의 직함들 = 자신.직함들  한다면 #직함들 == 1 그리고나서   돌아가다 자신:링크 목록 만들기(직함들[1])  또 다른   현지의 리트 = {}   표.삽입(리트, '<ul>')   위해서 i, 제목 Obj 에 짝을 짓다(직함들) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다    표.삽입(리트, mw.ustring.서식을('<li>%s %s </li>', 제목 Obj:makeViewLink(제목 Obj.접두사 텍스트), 자신:링크 목록 만들기(제목 Obj)))   끝.   표.삽입(리트, '/ul')   돌아가다 테이블.콘캣(리트)  끝. 끝.  기능. 흐느적거리다:소개합니다.()  현지의 직함들 = 자신.직함들  현지의 요청된 = '위키피디아입니다.요청 편집 요청]입니다.  현지의 보호 텍스트  한다면 직함들:인터페이스 페이지 없음() 그리고나서   보호 텍스트 = ' ' .. 자신:보호 텍스트 만들기()  또 다른   보호 텍스트 = '' 인터페이스 페이지는 보호 해제할 수 없으므로 보호된다고 명시적으로 말할 필요가 없습니다.  끝.  우리가 여러 개의 타이틀을 부여받은 경우를 처리합니다.  한다면 #직함들 > 1 그리고나서   현지의 페이지 유형   한다면 직함들:페이지 유형이 동일합니다.() 그리고나서    페이지 유형 = 흐느적거리다.페이지 유형 복수 가져오기(직함들[1])   또 다른    페이지 유형 = '페이지'   끝.   돌아가다 mw.ustring.서식을("'%s 편집이 다음 %s %s'에 수행됩니다.", 요청된, 보호 텍스트, 페이지 유형)  끝.  우리가 단 하나의 타이틀만 통과되는 경우를 처리합니다.  현지의 제목 = 직함들[1]  현지의 형식으로 문자열  한다면 제목.존재한다 그리고나서   형식으로 문자열 = '%s에서 %s %s을(를) 편집합니다.'  또 다른   형식으로 문자열 = '%s %s %s이(가) %s에 생성됩니다.'  끝.  형식으로 문자열 = "'''" .. 형식으로 문자열 .. "'''"  돌아가다 mw.ustring.서식을(형식으로 문자열, 요청된, 보호 텍스트, 제목.페이지 유형, 제목:makeViewLink(제목.접두사 텍스트)) 끝.  기능. 흐느적거리다:몸 만들기()  현지의 직함들 = 자신.직함들  현지의 보호.레벨 = 직함들:보호 가져오기레벨()  현지의 상자 보호 수준 = 자신.상자 보호 수준  현지의 인터페이스 페이지 없음 = 직함들:인터페이스 페이지 없음()  현지의 복수형 = 거짓의  한다면 #직함들 > 1 그리고나서   복수형 = 진실의  끝.   현지의 설명텍스트 = "이 템플릿 뒤에는 요청에 대한 '완전하고 구체적인 설명'이 와야 합니다."  한다면 상자 보호 수준 == '스톱' 또는 상자 보호 수준 == '편집자 권한 없음' 그리고나서   현지의 텍스트 편집 = '편집'   한다면 복수형 그리고나서    텍스트 편집 = 텍스트 편집 .. 's'   끝.   현지의 설명전체 텍스트 = mw.ustring.서식을('주제에 익숙하지 않은 편집자가 요청한 %s을 즉시 완료할 수 있도록', 텍스트 편집)   설명텍스트 = 설명텍스트 .. 설명전체 텍스트  또 다른   설명텍스트 = 설명텍스트 .. '즉, 삭제할 텍스트와 이를 대체할 텍스트의 동사본을 지정합니다.'    .. ["X"를 변경하십시오."는 "수용할 수 없습니다."이므로 거부됩니다. 요청 ""must"는 "X"를 "Y"로 변경하십시오." ]  끝.   현지의 작은 텍스트 = ''  한다면 상자 보호 수준 == '스톱' 또는 상자 보호 수준 == '편집자 권한 없음' 그리고나서   현지의 템플릿전체 텍스트   한다면 상자 보호 수준 == '스톱' 그리고나서    템플릿전체 텍스트 = '완전한 보호'   그렇지 않으면 상자 보호 수준 == '편집자 권한 없음' 그리고나서    템플릿전체 텍스트 = '안전하게 보호됨'   끝.   작은 텍스트 = '요청 편집 대상' .. 템플릿전체 텍스트 .. 페이지는 '논쟁의 여지가 없는' 편집이나 위키백과에서 지원하는 편집에만 사용해야 합니다.공감대 형성]"    .. 제안된 편집이 논란이 될 수 있는 경우, 이 템플릿을 사용하여 보호 페이지의 '이전' 대화 페이지에서 토론하십시오."  또 다른   현지의 사용자 텍스트   현지의 응답 템플릿   한다면 상자 보호 수준 == '확인되지 않음' 그리고나서    사용자 텍스트 = '[[위키백과:사용자 액세스 수준#확장된 확인된 사용자 확장된 확인]] 사용자'    응답 템플릿 = 흐느적거리다.makeTemplateLink('EEP')   그렇지 않으면 상자 보호 수준 == '자동 확인됨' 그리고나서    사용자 텍스트 = '[[위키백과:사용자 액세스 수준#자동 확인 자동 확인]] 사용자'    응답 템플릿 = 흐느적거리다.makeTemplateLink('ESP')   그렇지 않으면 상자 보호 수준 == '인터페이스 관리자' 그리고나서    사용자 텍스트 = '[[위키백과:사용자 액세스 수준#인터페이스 관리자 인터페이스 관리자]]'    응답 템플릿 = 흐느적거리다.makeTemplateLink('EEP')   또 다른    사용자 텍스트 = '사용자'    응답 템플릿 = 흐느적거리다.makeTemplateLink('ESP')   끝.   현지의 파라가 대답했습니다. = 흐느적거리다.구문 분석 텍스트 만들기('응답됨', '아니오')   현지의 형식으로 문자열 = '%s에 의해 편집될 수 있습니다.'    .. [요청이 수락, 거부 또는 사용자 입력 대기 중인 보류 중인 경우 %s 매개 변수를 "'예'"로 변경해야 합니다.]    .. "비활성 또는 완료된 요청이 편집 요청 범주를 불필요하게 채우지 않도록 하기 위한 것입니다."    .. '응답에 %s 템플릿을 사용할 수도 있습니다.'   작은 텍스트 = mw.ustring.서식을(형식으로 문자열, 사용자 텍스트, 파라가 대답했습니다., 응답 템플릿)  끝.   한다면 것은 아니다. 복수형 그리고나서   현지의 제목 = 직함들[1]   한다면 제목.네임스페이스 == 10 또는 제목.네임스페이스 == 828 그리고나서    현지의 샌드박스 제목 = 제목:하위 페이지 가져오기제목('''비공식''')    한다면 샌드박스 제목 그리고. 샌드박스 제목.존재한다 그리고나서     작은 텍스트 = 작은 텍스트 .. 먼저 '을(를) 변경하는 것을 고려합니다.      .. 샌드박스 제목:makeViewLink(제목.페이지 유형 .. "의 샌드박스")     현지의 테스트 케이스제목 = 제목:하위 페이지 가져오기제목('테스트 케이스')     한다면 테스트 케이스제목 그리고. 테스트 케이스제목.존재한다 그리고나서      작은 텍스트 = 작은 텍스트 .. 및 ' .. 테스트 케이스제목:makeViewLink('여기서 그들을 철저히 테스트합니다.)     끝.     작은 텍스트 = 작은 텍스트 .. 편집 요청을 제출하기 전에.'    끝.   끝.  끝.  한다면 인터페이스 페이지 없음 그리고나서   작은 텍스트 = 작은 텍스트 .. 페이지 보호 또는 보호 해제를 요청하려면 [Wikipedia:페이지 보호 요청]]'.'  끝.  한다면 상자 보호 수준 == '스톱' 또는 상자 보호 수준 == '편집자 권한 없음' 또는 상자 보호 수준 == '인터페이스 관리자' 그리고나서   작은 텍스트 = 작은 텍스트 .. 요청이 완료되거나 거부되면 '을(를) 추가하십시오. .. 흐느적거리다.구문 분석 텍스트 만들기('응답됨', '예') .. 템플릿을 비활성화하는 매개 변수입니다.'  끝.  돌아가다 mw.ustring.서식을('%s\n<p style="filename-size:filename; 줄 높이:1.3em;">\n%s\n'/p', 설명텍스트, 작은 텍스트) 끝.  기능. 흐느적거리다:수출의()  현지의 도입부 = 자신:소개합니다.()  현지의 linkLists = 자신:링크 목록 만들기()  현지의 몸 = 자신:몸 만들기()  긴 링크 목록을 새 줄에서 시작합니다.  현지의 linkListSep = ' '  한다면 자신.링크 개수 > 5 그리고나서   linkListSep = '<br />'  끝.  돌아가다 mw.ustring.서식을('%s%s%s\n\n%s', 도입부, linkListSep, linkLists, 몸) 끝.  ---------------------------------------------------------------------- 모듈의 하위 클래스:활성 상자에 대한 보호된 편집 요청의 상자 클래스 ----------------------------------------------------------------------  현지의 박스 = {} 박스.__index = 박스  기능. 박스.신규(보호.유형, 논병아리)  여기서 사용되는 상속 시스템에서 개체의 메타테이블은 클래스이고 클래스의 메타테이블은 슈퍼클래스입니다.  현지의 obj = 배불리 먹다(박스).신규(보호.유형, 논병아리)  상을 차리다(obj, 박스)  현지의 상자 보호레벨 = {반의 = '자동 확인됨', 확장된 = '확인되지 않음', 템플릿 = '편집자 권한 없음', 만차 = '스톱', 인터페이스 = '인터페이스 관리자'}  obj.상자 보호 수준 = 상자 보호레벨[보호.유형]  obj.데모 = 예 아니오(논병아리.데모)  종속 개체를 설정합니다.  obj.직함들 = 표제.신규(논병아리)  한다면 것은 아니다. 예 아니오(논병아리.힘.) 그리고. obj.직함들:동일한 속성 있음('동일한 보호 상태', 기능. (제목) 돌아가다 제목.보호 수준 끝.) 그리고. obj.직함들[1].보호 수준 ~= '보호되지 않음' 그리고나서   obj.상자 보호 수준 = obj.직함들[1].보호 수준  끝.  obj.흐느적거리다 = 흐느적거리다.신규(obj.직함들, obj.상자 보호 수준)  돌아가다 obj 끝.  기능. 박스:세트 이미지()  현지의 직함들 = 자신.직함들  현지의 상자 보호 수준 = 자신.상자 보호 수준  현지의 자물쇠  한다면 상자 보호 수준 == '스톱' 그리고나서   자물쇠 = '완전 보호-섀클.svg'  그렇지 않으면 상자 보호 수준 == '인터페이스 관리자' 그리고나서   자물쇠 = 'Interface-protection-shackle.svg'  그렇지 않으면 상자 보호 수준 == '편집자 권한 없음' 그리고나서   자물쇠 = 'Template-protection-shackle.svg'  그렇지 않으면 상자 보호 수준 == '자동 확인됨' 그리고나서   자물쇠 = 'Semi-protection-shackle.svg'  그렇지 않으면 상자 보호 수준 == '확인되지 않음' 그리고나서   자물쇠 = 'extended-protection-shackle.svg'  또 다른   자물쇠 = 'Padlock-bronze-open.svg'  끝.  현지의 형식으로 문자열 = '[파일:%s %dpx alt= link=]'  현지의 작은 자물쇠 = mw.ustring.서식을(형식으로 문자열, 자물쇠, 25)  현지의 대형 자물쇠 = mw.ustring.서식을(형식으로 문자열, 자물쇠, 60)  자신:집합 Arg('작은 이미지', 작은 자물쇠)  자신:집합 Arg('이미지', 대형 자물쇠) 끝.  기능. 박스:UrnLinks 구축()  현지의 리트 = {}  현지의 상자 보호 수준 = 자신.상자 보호 수준  위해서 제목 Obj 에 자신.직함들:제목 반복기() 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   표.삽입(리트, 제목 Obj:makeUrnLink(상자 보호 수준))  끝.  돌아가다 mw.ustring.서식을('<span class="displaylinks" style="display:display">%s</span>', 테이블.콘캣(리트)) 끝.  기능. 박스:setBurb 텍스트()  자신:집합 Arg('텍스트', 자신.흐느적거리다:수출의() .. 자신:UrnLinks 구축()) 끝.  기능. 박스:내보내기RequestTmbox()  자신:세트 이미지()  자신:setBurb 텍스트()  자신:집합 Arg('''클래스'', '편집 요청')  자신:집합 Arg('id', 제목.보호 가져오기수준 텍스트(자신.상자 보호 수준)) 닻을 내리고예, 이것은 동일한 ID를 가진 여러 요소로 이어집니다. 우리는 아마도 어느 시점에서 이것을 고쳐야 할 것입니다.  돌아가다 메시지 상자 만들기('tmbox', 자신.tmboxArgs) 끝.  기능. 박스:내보내기 요청 카테고리()  현지의 고양이들 = {}  현지의 상자 보호 수준 = 자신.상자 보호 수준  현지의 기능. 고양이 추가(고양이)   표.삽입(고양이들, mw.ustring.서식을('[범주:%s]', 고양이))  끝.  현지의 보호Cats = {   자동 확인된 = '위키피디아 반보호 편집 요청',   확증된 = 'Wikipedia 확장된 확인된 보호된 편집 요청',   템플릿 편집기 = 'Wikipedia 템플릿으로 보호된 편집 요청',   시솝 = 'Wikipedia에서 완전히 보호된 편집 요청',   인터페이스 관리자 = 'Wikipedia 인터페이스로 보호된 편집 요청  }  고양이 추가(보호Cats[상자 보호 수준])  한다면 자신.직함들:다른 보호 수준 있음(상자 보호 수준) 그리고나서   고양이 추가('Wikipedia 편집 요청이 잘못된 템플릿을 사용하고 있을 수 있습니다.')  끝.  돌아가다 테이블.콘캣(고양이들) 끝.  기능. 박스:수출의()  현지의 제목 = 자신.직함들.현재 제목  한다면 것은 아니다. 제목.isTalk페이지 그리고. 것은 아니다. 자신.데모 그리고. 것은 아니다. 예 아니오(자신.논병아리.말을 생략함) 그리고나서   돌아가다 '<span class="error"> 오류: 보호된 편집 요청은 대화 페이지에서만 할 수 있습니다.</span>[범주:편집 요청 템플릿이 있는 대화하지 않는 페이지]]'  끝.  현지의 리트 = {}  표.삽입(리트, 자신:내보내기RequestTmbox())  한다면 것은 아니다. 자신.데모 그리고나서   표.삽입(리트, 자신:내보내기 요청 카테고리())  끝.  돌아가다 테이블.콘캣(리트) 끝.  ---------------------------------------------------------------------- 모듈로 내보낸 함수:보호된 편집 요청 ----------------------------------------------------------------------  돌아가다 기능.(초급의, yn의, mb)  예 아니오 = yn의  메시지 상자 만들기 = mb  돌아가다 상을 차리다(박스, 초급의) 끝.