틀:PluginX: 두 판 사이의 차이

리버티게임, 모두가 만들어가는 자유로운 게임
imported>Hsl0
(PluginX 버전업)
1번째 줄: 1번째 줄:
<onlyinclude>
<onlyinclude><includeonly><!--
<div style="display: none">
실제 문서의 제목  -->{{#vardefine:doc|{{#rel2abs: {{{1|{{{문서|{{{script|/plugin}}}}}}}}}|{{FULLPAGENAME}}}}}}<!--  
{{#vardefine:doc|{{#rel2abs: {{{1|{{{문서|{{{script|/plugin}}}}}}}}}|{{FULLPAGENAME}}}}}}<!-- 상대 주소 등을 고려하여 실제 문서의 제목을 저장하는 변수 -->
편집 요약에 들어갈 내용 --> {{#vardefine:summary|새 플러그인 생성}}<!--
{{#vardefine:isUser|{{#ifexpr:{{#ifexpr:{{#len:{{#var:doc}}}}>3|1|0}} and {{#ifeq:{{#sub:{{#var:doc}}|0|4}}|사용자:|1|0}}|1|0}} }}
플러그인 존재여부에 대한 조건분기-->{{#ifexist:{{#var:doc}}<!--
{{#vardefine:summary|새 플러그인 생성}}<!-- 편집 요약에 들어갈 내용 -->
플러그인 문서가 실제로 존재할 경우-->|{{#css:{{틀:PluginX/setup.css}}}}<pr<noinclude></noinclude>e class="pluginx-script-wrapper" data-name="{{{2|{{{name|{{{이름|{{#var:doc}}}}}}}}}}}" data-creator="{{#ifeq:{{NAMESPACE:{{#var:doc}}}}|사용자|{{ROOTPAGENAME:{{#var:doc}}}}|{{{3|{{{creator|{{{제작자|{{REVISIONUSER:{{#var:doc}}}}}}}}}}}}}}}" data-doc="{{#var:doc}}" data-url="{{fullurl:{{#var:doc}}|action=raw&ctype=text/javascript}}" data-rev-id={{REVISIONID:{{#var:doc}}}} data-rev-timestamp={{REVISIONTIMESTAMP:{{#var:doc}}}} data-rev-user={{REVISIONUSER:{{#var:doc}}}}>{{:{{#var:doc}}}}</p<noinclude></noinclude>re><!--  
{{#css:{{PluginX/setup/css}}}}<!-- pluginX 시스템 디자인 -->
플러그인 존재하지 않을 시 문서생성 유도-->|{{알림 상자
</div>{{#ifeq:{{#var:isUser}}|1|
{{#ifexist:{{#var:doc}}<!-- 플러그인 문서가 실제로 존재할 경우-->
|<span class="c_pluginX" data-name="{{{2|{{{name|{{{이름|{{#var:doc}}}}}}}}}}}" data-creator="{{#ifeq:{{NAMESPACE:{{#var:doc}}}}|사용자|{{ROOTPAGENAME:{{#var:doc}}}}|{{{3|{{{creator|{{{제작자|{{REVISIONUSER:{{#var:doc}}}}}}}}}}}}}}}" data-doc="{{#var:doc}}" data-url="{{fullurl:{{#var:doc}}|action=raw&ctype=text/javascript}}" data-revid={{REVISIONID:{{#var:doc}}}}></span><!-- 여기까지만 해놓으면 뒤는 커먼자스가 알아서 해주겠지. -->
|{{알림 상자<!-- 다만 플러그인 문서가 존재하지 않을 때는, 편집을 안내함. -->
|제목=<center><big>플러그인 문서가 존재하지 않습니다.</big></center>
|제목=<center><big>플러그인 문서가 존재하지 않습니다.</big></center>
|본문=<center>새 플러그인 문서를 만드시려면 [{{fullurl:{{urlencode:{{#var:doc}}}}|action=edit&editintro={{urlencode:틀:PluginX/editintro|WIKI}}&summary={{urlencode:{{#var:summary}}}}&model=javascript&format=text/javascript}} 여기]를 클릭하세요.</center>
|본문=<center>새 플러그인 문서를 만드시려면 [{{fullurl:{{urlencode:{{#var:doc}}}}|action=edit&editintro={{urlencode:틀:PluginX/editintro|WIKI}}&summary={{urlencode:{{#var:summary}}}}&model=javascript&format=text/javascript}} 여기]를 클릭하세요.</center>
|색=purple
|색=purple
|왼쪽 그림=VisualEditor - Icon - programming-block.svg}}
|왼쪽 그림=VisualEditor - Icon - programming-block.svg}}
}}<!--이 아래부터는 doc이 사용자 문서가 아닐 때-->
}}</includeonly></onlyinclude>
|{{알림 상자
|제목=<center><big>플러그인 문서가 사용자 문서 또는 그 하위 문서가 아닙니다.</big></center>
|본문=<center>플러그인 문서는 미디어위키 보안 정책에 따라 사용자 문서나 그 하위 문서에 위치하여야 합니다.</center>
|색=purple
|왼쪽 그림=VisualEditor - Icon - programming-block.svg
}}
}}
</onlyinclude><noinclude>
<br>
{{IE불가}}
{{IE불가}}
{{복잡}}
{{복잡}}
{{알림 상자
사용자에게 허가를 받고 스크립트를 실행하게 합니다.
|색 = yellow
|왼쪽 그림 = Warning_icon.svg‎
|왼쪽 그림 크기 = 32px
|제목 = 이 틀은 현재 시험 중입니다.
|본문 = 아직 추가되지 않은 기능들이 많고, 오류가 존재할 수 있습니다.
}}
 
{{틀|플러그인}}의 여러 가지 단점을 보완한 새로운 플러그인 틀입니다.
 
== 기존 플러그인과의 차이점 ==
=== 작동 방식 ===
기존 플러그인은 플러그인 제작자가 만든 플러그인을 사용자의 common.js에 다운로드받는 방식이었으나, pluginX는 다운로드받을 필요 없이 바로 실행할 수 있게 해 줍니다. 덕분에 삭제할 때도 일일이 사용자의 커먼자스 문서를 특정판 삭제하는 수고를 덜 수 있고, 커먼자스가 쓸데없이 길어지는 것도 방지할 수 있습니다. 또한 비 로그인 사용자도 부담 없이 게임을 플레이할 수 있습니다.
 
'''미디어위키 정책으로 인해 플러그인 문서는 사용자 네임스페이스에 위치해야 합니다.''' 이는 해결할 방법이 없습니다. 양해 부탁드립니다.
 
플러그인에 대한 자세한 내용은 [[버:플러그인]]을 참고하세요.


== 사용법 ==
== 사용법 ==
54번째 줄: 25번째 줄:
* '''name''': 스크립트 문서의 경로
* '''name''': 스크립트 문서의 경로


더 자세한 사항은 [[사용자:Bd3076/백괴게임 강좌/HCJ|이곳]]을 참조하세요.
== TODO ==
 
* 신뢰하는 스크립트를 삭제/초기화하는 별도의 페이지가 필요합니다.
* 매개변수를 추가해 실행페이지가 즉시 나타나는 현상을 방지해야합니다.
* 플러그인 설치 팝업의 디자인을 개선해야 합니다.


== 도보시오 ==
* [[리버티게임:플러그인]]
* [[틀:플러그인]] : 플러그인X의 구버전, [[사용자:{{Username}}/common.js]]에 스크립트를 추가하는 방식으로 작동
* [[사용자:Bd3076/백괴게임 강좌/HCJ|이곳]] : 플러그인 강좌


[[분류:기술 스택]]</noinclude>
[[분류:기술 스택]]

2023년 7월 9일 (일) 23:20 판

Applications-system.svg
경고! 이 틀은 구조가 복잡한 틀입니다.
이 틀을 잘못 편집하면 [TEMPLATE ERROR CODE:#A2C4DF 이 틀에 치명적인 오류가 발생하였습니다.]
해당 틀에 쓰이는 특정 문법이나 함수, html 코드를 잘 다루는 분들만 편집하시기 바랍니다. 만약 이 틀을 잘못 건드려서 틀이 제 기능을 하지 못한다면 당장 되돌리기 기능을 이용해 되돌리세요. 면책 조항: 이 틀이 달린 글이라도 사실이 아닐 수 있습니다.

사용자에게 허가를 받고 스크립트를 실행하게 합니다.

사용법

이 틀은 크게 세 가지 방법으로 사용할 수 있습니다.

  1. {{PluginX|script=(스크립트 문서)|name=(플러그인 이름)}} (권장)
  2. {{PluginX|문서=(스크립트 문서)|이름=(플러그인 이름)}} (권장)
  3. {{PluginX|(스크립트 문서)|(플러그인 이름)}} (비권장)

매개변수 기본값

  • script: {{FULLPAGENAME}}/plugin ((게임의 이름)/플러그인으로, 대부분의 경우 작동하지 않습니다.)
  • name: 스크립트 문서의 경로

TODO

  • 신뢰하는 스크립트를 삭제/초기화하는 별도의 페이지가 필요합니다.
  • 매개변수를 추가해 실행페이지가 즉시 나타나는 현상을 방지해야합니다.
  • 플러그인 설치 팝업의 디자인을 개선해야 합니다.

도보시오