위키백과:파일 업로드 마법사/doc
Wikipedia:이 페이지는 실험 위키백과에 대한 문서를 제공한다.현재 테스트 단계에 있는 파일 업로드 마법사.
건축
마법사는 현재 위키백과에 있는 하나의 일반적인 위키 페이지로 구성된다.현재 MediaWiki에서 클라이언트 쪽 Javascript 코드 페이지인 파일 업로드 마법사:FileUploadWizard.js 및 해당 .css 페이지(현재 MediaWiki:FileUploadWizard.css.마법사가 사용하는 거의 모든 텍스트 내용(양식, 프롬프트, 경고 등)은 기본 페이지 내 숨겨진 내면에 표준 위키백트로 포함되어 있다.<div>
-중첩 테이블.일반 wiki 텍스트로 만들 수 없는 대화형 요소(<form>
요소, 단추, 입력 텍스트 필드, 드롭다운 상자 등)은 페이지가 로드될 때 Javascript에 의해 생성된다.비어 있음<span id="placeholderXYZ"/>
위키텍스트의 요소들은 그들이 삽입될 위치를 표시한다.Javascript를 활성화하려면, 위키피디아에 다음이 로딩되어야 한다.withJS=
매개 변수
Javascript 코드는 지금까지 Firefox 10.0 브라우저로 테스트되었다.위키백과 스크립트에서 흔히 쓰이는 jQuery 라이브러리를 어느 정도 활용한다.입력 및 업로드 과정에서 사용된 데이터는 Javascript 객체에 저장된다.window.fuw
입력 프로세스 중에 지정된 시간에 존재하는 입력 데이터의 표현은 다음 위치에 캐시된다.window.fuw.opts
, 및 다양한 경고 조건의 현재 상태를 나타내는 데이터(예: 불량 파일 이름, 누락된 대상 문서 등)를 에 저장한다.window.fuw.warn
.
스크립트의 가장 중요한 기능은 다음과 같다.
fuwGlobal()
- 글로벌의 생성자 함수
window.fuw
오브젝트, 페이지가 로드될 때 한 번 실행.대화형 폼 요소(버튼, 텍스트 필드 등)를 생성하고 주 폼 영역의 초기 가시성을 설정한다.
fuwUpdateOptions()
- 그
onChange
대부분의 입력 요소에 의해 공유되는 이벤트 핸들러.현재 활성 상태인 모든 입력 필드에서 입력을 수집하고 의 캐시된 내용을 업데이트함window.fuw.opts
옵션 무선 통신의 현재 상태에 대응하여 설문지의 다양한 하위 섹션에 대한 가시성과 활성화/비활성화 상태를 전환한다.또한 에 저장된 이전의 유효성 검사 루틴의 결과에 대응하여 다양한 경고 메시지를 표시하고 숨긴다.window.fuw.warn
.
fuw.validateInput()
- 각각 마지막에 호출됨
fuwUpdateOptions()
, 이 함수는 입력 데이터의 현재 상태가 완전하고 업로드하기에 충분한지 여부를 결정한다.그fuwUpdateOptions()
이 유효성 검사에 대한 응답으로 제출 버튼을 활성화 또는 비활성화한다.(가능한 대안: 제출 버튼을 항상 활성화 상태로 유지하고 실행validateInput()
클릭했을 때만, 거짓일 경우 경고 메시지를 표시한다.어느 것이 더 사용자 친화적인가?)
fuw.collectInput()
- 이 함수는 에서 입력 데이터를 수집한다.
window.fuw.opts
일단의 것을 반대하여 조립하다.window.fuw.descFields
설명 템플릿의 필드에 기록할 문자열을 나타내는 문자열.
fuw.formatOutput()
- 직후에 호출됨
collectInput()
업로드하기 전에.이 함수는 에서 실제 설명 페이지의 코드를 조립한다.window.fuw.descFields
로컬 업로드 모드 또는 Commons 업로드 모드에서 개체 및 라이센스 태그를 업로드할 수 있도록 준비하십시오.로컬 업로드는 결과 값을 숨김에 기록한다.<input type="hidden"/>
API에 제출된 TargetForm의 요소.Commons 모드에서는 설명 wikitext가 Commons Special:의 URL에 추가될 파라미터 문자열로 조립된다.업로드 페이지, 표준 Commons 업로드 양식에 값을 미리 로드하십시오.
현재의 시험 버전에서는 이 기능을 각 시험의 마지막에 부르기도 한다.fuwUpdateOptions()
테스트 목적을 위해 지속적인 출력 미리 보기를 유지하기 위해 호출한다.최종 버전에서는 제출 버튼의 onClick 이벤트(이후)에서 한 번만 호출하면 충분하다.validateInput()
진실로 돌아왔다.
서버 상호 작용
설문지 페이지에는 현재 3개의 개별 정보가 포함되어 있다.<form>
요소들맨 처음 것, 제1; 전자<form id="fuwTargetForm">
는 업로드에 실제로 사용되는 것이다.그 안에 들어 있는 유일한 명백한 요소는 파일 선택 상자다.다른 모든 업로드 매개 변수는 다음 형식으로 존재함<input type="hidden"/>
에 의해 업로드되기 전에 값이 입력되는 요소fuw.collectInput()
기능을 하다
업로드는 표준을 통해 수행됨form.submit()
양식의 동작이 인터페이스로 설정된 이 대상 양식으로부터.API의 반환 메시지가 숨겨진 상태로 전환됨<iframe>
다음을 가리키는 요소onLoad
그런 다음, 이벤트는 성공 메시지를 표시하고 주 설문지를 숨기는 기능을 트리거한다(즉, 비동기 AJAX 호출을 "조작"함 – 정상적인 AJAX 호출을 통해 파일 업로드 데이터에 액세스할 수 없기 때문에 필요함).
두 번째<form>
요소,<form id="fuwScriptForm">
는 입력 설문지의 다른 눈에 보이는 모든 컨트롤을 포함하고 있다.
테스트 버전에는 세 번째 버전이 있다.<form>
요소,<form id="fuwTestForm">
페이지 하단의 미리 보기 필드를 포함하는 .
기본 업로드 작업과 별도로 스크립트는 다음과 같은 상황에서 추가 서버 요청을 전송한다.이 모든 것은 비동기 AJAX 요청을 통해api.php
인터페이스, 사용jQuery
아약스 포장지$.ajax([...])
.
- 로드할 때 스크립트는 현재 사용자의 편집 횟수와 사용자 대화 페이지의 최근 30개 편집 요약을 검색한다.편집 요약을 스캔하여 ImageTagingBot이 남긴 경고와 같은 이미지 관련 경고의 징후를 확인하십시오.이 정보로부터, 스크립트는 사용자의 경험 수준을 대략적으로 추정하려고 시도한다.이 정보는 현재 실무에서 사용되지 않지만, 향후에 일부 지침의 다른 버전(아래 참조) 중에서 선택할 수 있다.
- 사용자가 의도한 위키백과 파일 이름을 입력하면, 스크립트는 사용자가 의도하지 않게 파일을 덮어쓰는 것을 방지하기 위해 이 이름의 파일이 이미 로컬 또는 커먼스에 존재하는지 여부를 결정하기 위해 이미지 정보를 검색한다.
- 비자유 파일의 경우 사용자가 원하는 문서 이름을 입력할 때 스크립트는 페이지 정보를 검색하여 해당 페이지가 존재하는지, 모호한 페이지인지 또는 리디렉션인지(이 경우 리디렉션 대상으로 자동 수정됨)를 결정한다.이는 WP를 시행하기 위해 수행된다.NFCC#10c 컴플라이언스.
- 업로드에 성공한 후 스크립트는 해당 스크립트에 대한 이미지 정보를 한 번 더 검색한다.이것은 새로운 이미지의 축소판 그림에 대한 URL과 크기 정보를 얻기 위해 필요하며, 이 정보는 성공 메시지에 표시된다.
- 사용자가 기존 파일 덮어쓰기를 선택하고 설명 페이지에 대한 새 데이터도 추가한 경우 표준 업로드 동작으로 페이지의 텍스트 내용이 수정되지 않으므로 페이지 내용이 별도의 API 편집 요청으로 전송된다.
설문지
설문지에는 현재 12개의 다른 형식의 파일을 위해 설계된 12개의 하위 섹션이 있으며, 이 중 5개는 무료, 7개는 무료다.
- 무료 파일 옵션
- 자체 작업: 표준 매개변수(라이선스, 날짜)와 함께 "어떻게 만들었는가?"에 대한 질문(업로더들이 허위 담요를 "자체 작업"이라고 주장하지 않도록 하기 위해 노력함) 및 해당 항목이 이전에 다른 곳에 게시된 경우 출처 이름을 지정하는 옵션이 포함됨
- 제3자: 빈번한 "누군가가 나에게 이것을 주었다" 시나리오를 위해 설계되었다.업로더가 허락을 획득한 경위에 대한 세부사항을 요청하고, 증거 제공의 필요성에 대비한다.
- 무료 웹 사이트: Flickr 및 유사한 외부 소스를 위해 설계됨.파일 자체와 라이센스에 대해 별도의 소싱 요청
- PD-old: 항목의 원래 출판 이력에 대한 자세한 질문(출판 시기와 장소, 크리에이터 수명 등)이 포함되어 있다.세 가지 표준 PD 시나리오에 대한 옵션: 1927년 이전에 출판됨, URAA 날짜 이전에 해외에서 발행됨, 그리고 본국에서 PD가 발행됨(즉, 1996년 이전 일반적으로 70년 오후), 저작권 고지 및/또는 등록 없이 미국에서 발행됨
- 기타 PD: PD-USGov, PD-적격 불가 등에 대한 옵션
- 비사용 파일 옵션
- 해설 대상: {{Non-free 2D art}}용으로 디자인된 역사 사진 및 기타 아이템, 이 경우, 비-free 항목이 명시적 해설의 대상이 된다.업로더에게 전체 기사가 이 특정 작업에 전용되어 있는지 확인하도록 요청하거나, 또는 해당 기사가 논의되는 특정 구절에 이름을 지정하고 설명하도록 요청한다.이러한 조건 하에서, 그것은 "미니멀리티" 주장을 제외한 다른 모든 것을 포함하는 표준 FUR을 생산한다.
- 3D 아트: 앞서 언급한 것과 거의 유사하지만, 사진의 저작권 상태를 설명하는 추가 입력 영역과 함께, 비자유 3D 작품이 묘사된 것과는 대조적이다.2D 묘사는 자유롭게 허가(예: 자가 제작)되거나 기본 3D 작업의 작성자가 제공(예: 예상 건물의 컴퓨터 렌더링)해야 한다고 주장함
- 발췌: TV 및 영화 스크린샷, 오디오 샘플 등을 위해 설계됨."목적"과 "텍스트와의 대체성" PUR 인수에 많은 중점을 둔다.다른 FUR 부품은 표준 값으로 채워진다.
- 커버 아트: 책 커버 등을 위해 설계됨.해당 항목이 표준적인 방식으로 사용될 것인지("전용 기사 상단에 있는 1차 시각적 식별") 확인을 요청한다.이 경우에 대해서만 표준 근거를 제시할 것이다.
- 로고: 앞에서 설명한 것과 유사하게, 표준 사전 작성된 근거를 제시하지만 표준적인 사용 시나리오의 확인을 주장한다.
- 역사적 초상화: 전기 기사에 사용되는 역사적 사진의 빈번한 경우를 위해 설계되었으며, 사망자와 교체할 수 없다는 표준적 FUR 논거가 허용된다.상세한 출처 정보를 요청하며 명시적 대체성 주장(대안이 실제로 고려되었음을 입증해야 함)과 "상업적 기회" 주장을 주장한다.
- 기타: 위에서 취급한 표준 사용 시나리오를 제외하고 어떤 표준 유형의 항목(역사 사진, 미술품 등)을 포함하여 모든 용도로 설계된 일반적인 비무료 사용.각 주요 NFCC에 대해 표준 사전 채워진 값 없이 FUR 입력을 요청한다.
사용자 경험 수준
스크립트는 표준에서 부분적으로 가져온 정보에 기초하여 현재 사용자의 다음과 같은 상태 수준을 인식하려고 시도한다.mw.config
변수, 부분적으로는 API 호출로:
- 로그아웃됨
로그아웃한 사용자는 파일을 업로드할 수 없기 때문에 스크립트가 중지되고 로그아웃된 사용자가 실행할 경우에만 알림 메시지가 표시된다.
- 확인되지 않음
스크립트는 아직 자동 확인되지 않은 사용자가 로컬에서 파일을 업로드할 수 없다는 알림을 표시할 것이다.그러나 나머지 스크립트는 "로컬 업로드" 제출 버튼만 회색으로 표시되고 "공용 업로드" 버튼은 활성화되는 등 정상적으로 실행된다.
다음과 같은 구별도 할 수 있지만, 현재 스크립트의 동작에 실제적인 차이를 가져오지는 않는다.
- "뉴비"
사용자가 편집한 내용이 100개 미만인 경우 설정된 상태.그러한 사용자들은 미래에 다소 더 온화하고 상세한 지침 집합을 제공받을 수 있다.
- "문제 사용자"
사용자가 최근 30개의 토크 페이지 편집 내용 중 3개 이상의 이미지 관련 표준 경고가 있는 경우 설정된 상태.그러한 사용자들은 미래에 다소 더 긴급하게 단어화된 저작권 관련 지침을 제공할 수 있다.
- "일반"/"관리자"
다른 모든 사용자; 이러한 사용자들은 미래에 다소 짧고 말이 적은 일련의 지시사항을 제공할 수 있다.
출력
마법사가 표준 형식에 따라 이미지 설명 페이지를 생성함:
== 요약 == {{...[파라미터가 있는 템플릿]...}}} == 라이선싱 == {{...[tag]...}}
무료 파일의 경우 표준 {{Information} 템플릿을 사용한다.비무료 파일의 경우 새로운 {{Non-free 사용 근거 2.} 템플릿을 사용하며, 보다 일반적인 {{Non-free 사용 근거}}와는 몇 가지 세부사항으로 다르다.그것의 매개변수는 개별 NFCC에 기존 템플릿보다 더 밀접하게 대응하도록 설계되었으며, 또한 가능한 경우 무료 {{Information} 템플릿과 호환되도록 설계되었다.
공정이용합리주의
공정한 사용 논거 템플릿은 다음과 같은 매개변수를 사용한다.
{{비무료 사용 근거 2 설명 = 저자 = 출판물 = (선택사항) 출처 = 기사 = 목적 = 교체 가능성 = 대체 가능성 = (선택사항) 최소성 = 상업성 = 기타 정보 = (선택사항) }}}}
위에서 설명한 다른 하위 옵션은 각각의 하위 옵션이 특정 FUR 필드가 중요하거나 사소한/예측 가능한 일반적인 상황에 해당하는 방식으로 선택된다.마법사는 각 경우에 예측 가능한 파라미터에 대해 사전 입력된 간략한 표준 문항(때로는 "n.a"만큼 짧을 때도 있음)을 자동으로 제공한다.미리 채워진 부품과 사용자가 제공한 부품의 조합은 다음과 같다("미니멀리티"는 항상 수동 입력을 필요로 한다).
- 전용 기사의 "해설의 대상"
목적 = 기사의 대상을 시각적으로 식별하기 위한 것이다.그 글은 전체적으로 이 작품에 대한 토론에 특별히 전념하고 있다.대체성 = n.a.상업 = n.a.
- 전용기사가 아닌 "해설의 대상"
목적 = 이 글에서 이 작품에 대한 백과사전적 토론을 지원하는 것.이 그림은 다음 지점을 지원하기 위해 특별히 필요하다.[사용자 입력] 대체성 = n.a.상업 = n.a.
- "외부"
목적 = [사용자 입력] 대체성 = n.a.Replaceability_text = [사용자 입력] Commercial = n.a.
- "커버 아트"
목적 = 문제의 작품에 전념하는 기사의 상단에 있는 시각적 식별의 주요 수단으로서 기능한다.대체성 = n.a.상업 = n.a.
- "로고"
목적 = 문제의 실체를 전담하는 기사 상단에 시각적 식별의 주요 수단이 된다.대체성 = n.a.상업 = n.a.
- "화상"
목적 = 해당 인물의 시각적 식별을 위한 것으로, 전기 기사 상단에 있는 교체성 = [사용자 입력] 상업성 = [사용자 입력] 기타 정보 = 사진 주체가 사망한 이후: [사용자 입력]
- "기타"
목적 = [사용자 입력] 대체성 = [사용자 입력] 대체성_텍스트 = [사용자 입력] 상업성 = [사용자 입력]