틀:폼: 두 판 사이의 차이

리버티게임, 모두가 만들어가는 자유로운 게임
잔글편집 요약 없음
(같은 사용자의 중간 판 44개는 보이지 않습니다)
1번째 줄: 1번째 줄:
<onlyinclude><div class="ci-form-controle" data-destination="{{{1|{{{페이지}}}}}}" style="display:none"></div></onlyinclude>
<onlyinclude><includeonly><div class="ci-form-control" data-destination="{{{1|{{{페이지|{{FULLPAGENAME}}}}}}}}" style="display:none" data-keep-params="{{{보존|}}}"></div></includeonly></onlyinclude>
게임에서 사용하기 위해 사용자의 입력을 받는 양식문을 생성합니다. 입력한 내용은 이동된 페이지의 <nowiki>{{#urlget:변수명}}</nowiki>이나 {{CGI2|변수=변수명}}으로 호출 가능합니다.
{{소도구|templateForm}}
== 상세 ==
{{:{{FULLPAGENAME}}}}
이 틀은 사용자의 입력을 받아 처리하는 기존의 확장기능 파서함수 #CI를 래핑합니다. #CIForm의 기존 기능은 받은 데이터를 이메일로 보내거나 사이트 db로 전송하는 용도로 쓰이는데, 리버티게임에서는 해당 용도로 쓰일 일이 적으니 CGI와 CGI2와 호환되게끔 바꿔주는 틀입니다. 입력된 폼의 내용은 현재 SearchParams에 추가되거나 변경되어 다음 페이지로 전송합니다.  
{{#CI form: title = 하고싶은말을 적어주세요.
    | {{:{{FULLPAGENAME}}/라벨|message|메세지}} [text] *
}}
* 메세지 : {{#urldecode:{{#urlget:message}}}}
 
사용자의 입력을 받을 수 있는 양식문을 생성합니다.  
 
== 사용법 ==
== 사용법 ==
{{:{{FULLPAGENAME}}}}{{#CI form: title = Contact form
문법이 복잡하기에 설명을 이해하기 보다는 아래 예시문단의 내용을 [[괴:낙서장|낙서장]]에 붙여넣어 실제 결과를 확인하고 용도에 맞게 수정하는것을 권장드립니다.
| {{:{{FULLPAGENAME}}/라벨|name|게임에서 불릴 이름}} [] *
=== <nowiki>{{</nowiki>{{FULLPAGENAME}}<nowiki>}}</nowiki> ===
| {{:{{FULLPAGENAME}}/라벨|amount|초기 금액}} [number] *
<nowiki>{{:</nowiki>{{FULLPAGENAME}}<nowiki>|이동할 위치(기본값 현재)|보존=보존여부(기본값 false)}}</nowiki>
CI Form을 사용하기 전에 이 틀을 선언하고 이동할 위치를 지정합니다. 특정 위치가 지정되지 않으면 현재 문서로 이동하게 됩니다.
 
=== <nowiki>{{</nowiki>{{FULLPAGENAME}}<nowiki>/라벨}}</nowiki> ===
<nowiki>{{{{FULLPAGENAME}}/라벨|파라미터 키|파라미터 표시될 값}}</nowiki>
CI Form 파서함수에서 표시되는 텍스트 값과 키 값을 분리할 수 있습니다.
 
이렇게 입력된 변수는 이동된 페이지의 <nowiki>{{#urlget:변수명}}</nowiki>이나 {{CGI2|변수=변수명}}으로 호출 가능합니다.
 
== 예시 ==
=== 초기 {{[[틀:CGI|CGI]]}} 값을 위한 사용자 입력 받기 ===
CGI 틀도 URL 매개 변수를 사용하기 때문에 'offset'이라는 키 값으로 CGI 틀의 출력 값을 변경할 수 있습니다. 아래 예시는 CGI 게임에서 사용되는 변수 값을 변경하는 방법을 보여줍니다.
{{예시|
<nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|백괴복권/길}}
{{#CI form:|title= 백괴복권 치트</nowiki>
<nowiki>|{{</nowiki>{{PAGENAME}}<nowiki>/라벨|offset|초기 금액}} [number]*</nowiki>
<nowiki>|submit_text=시작!</nowiki>
<nowiki>}}</nowiki>
|
  {{:{{FULLPAGENAME}}|백괴복권/길}}
  {{#CI form:|title= 백괴복권 치트
    |{{:{{FULLPAGENAME}}/라벨|offset|초기 금액}} [number]*
    |submit_text=시작!
  }}
}}
 
=== 텍스트를 입력받아 퀴즈문제 내기 ===
사용자에게 텍스트로 입력을 받고 도착지 페이지에 #ifeq로 사용자가 입력한 값과 예상한 값을 비교하여 다른 결과를 도출 할 수 있습니다.
{{예시|
<nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|{{</nowiki>{{FULLPAGENAME}}<nowiki>/예시1}}}}
  {{#CI form:
      |title=아침에 네발 점심에 두발 저녁에 세발이며 세상에서 가장 멍청한 것은?
      |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|answer|정답}} [text] *
      |submit_text=정답 제출
  }}</nowiki>
|
  {{:{{FULLPAGENAME}}|{{FULLPAGENAME}}/예시1}}
  {{#CI form:
    |title=아침에 네발 점심에 두발 저녁에 세발이며 세상에서 가장 멍청한 것은?
    |{{:{{FULLPAGENAME}}/라벨|answer|정답}} [text] *
    |submit_text=정답 제출
 
  }}
}}
 
=== 선택지에서 사용자에게 입력받기 ===
셀렉트박스나 라디오박스로 선택지를 고르게 할 수 있습니다.
 
아래는 문서의 편집과 역사확인등의 동작이 action 파라미터로 이루어짐을 응용한 라디오박스로 입력값을 받는 예시입니다.
{{예시
|<nowiki>  {{</nowiki>{{PAGENAME}}<nowiki>}}</nowiki>
<nowiki>  {{#CI form: </nowiki>
<nowiki>    |title={{</nowiki>{{PAGENAME}}<nowiki>/라벨|action|무엇을 할까?}}</nowiki>
<nowiki>    |type=multiple choice</nowiki>
<nowiki>    |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|edit|수정}}</nowiki>
<nowiki>    |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|history|역사}}</nowiki>
<nowiki>    |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|delete|삭제}}</nowiki>
<nowiki>    |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|protect|보호}}</nowiki>
            |submit_text=확인
<nowiki>  }}</nowiki>
|
|
{{#CI form section: type = inputs
  {{:{{FULLPAGENAME}}}}
| title = {{:{{FULLPAGENAME}}/라벨|job|선택할 직업}}  
  {{#CI form:  
| type = multiple choice
    |title={{:{{FULLPAGENAME}}/라벨|action|무엇을 할까?}}
| 전사 | 마법사 | 버스기사 | 기타 []
    |type=multiple choice
    |{{:{{FULLPAGENAME}}/라벨|edit|수정}}
    |{{:{{FULLPAGENAME}}/라벨|history|역사}}
    |{{:{{FULLPAGENAME}}/라벨|delete|삭제}}
    |{{:{{FULLPAGENAME}}/라벨|protect|보호}}
    |submit_text=확인
  }}
}}
}}
마찬가지로 사용자에게 선택지를 제시하는 한가지 방법인 셀렉트박스로 입력값을 받는 예시입니다. 라디오박스로 입력받기엔 리스트의 내용이 클 때 사용됩니다. 아래는 한가지 예시입니다.
{{예시
|
|
{{#CI form section: type = multiple choice
<nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|</nowiki>{{PAGENAME}}<nowiki>/예시2}}</nowiki>
| title = {{:{{FULLPAGENAME}}/라벨|pearks|선택할 특성}} (3개 선택 가능)
<nowiki>  {{#CI form: title= {{</nowiki>{{PAGENAME}}<nowiki>/라벨|gender|당신의 성별을 선택 해 주세요.}}</nowiki>
| type = multiple choice
<nowiki>    |type= inputs</nowiki>
| max answers=3
<nowiki>    |[골라=select=시스 남성, 시스 여성, 논 바이너리, 트랜스 남성, 트랜스 여성, 트랜스페미닌, 트랜스메스큘린, 에이젠더, 젠더리스, 그레이젠더, 데미젠더, 안드로진, 뉴트로이스, 바이젠더, 트라이젠더, 젠더플루이드, 젠더플럭스, 옴니젠더, 폴리젠더, 젠더퀴어, 젠더 논컨포밍, 젠더 베리언트, 젠더 뉴트럴]*</nowiki>
| 회복| 헤이스트| 경험치상승| 회복| 회복
            |submit_text=시작
<nowiki>  }}</nowiki>
|{{:{{FULLPAGENAME}}|{{FULLPAGENAME}}/예시2}}
  {{#CI form: title = {{:{{FULLPAGENAME}}/라벨|gender|당신의 성별을 선택 해 주세요.}}
    |type = inputs
    |[골라=select=시스 남성, 시스 여성, 논 바이너리, 트랜스 남성, 트랜스 여성, 트랜스페미닌, 트랜스메스큘린, 에이젠더, 젠더리스, 그레이젠더, 데미젠더, 안드로진, 뉴트로이스, 바이젠더, 트라이젠더, 젠더플루이드, 젠더플럭스, 옴니젠더, 폴리젠더, 젠더퀴어, 젠더 논컨포밍, 젠더 베리언트, 젠더 뉴트럴]*
    |submit_text=시작
  }}
}}
}}
셀렉트박스의 내용물에 규칙성이 있으면 다른 틀과 응용해 리스트의 생성을 간편화 할 수 있습니다. 아래는 리스트를 작성하는 예시입니다. 
{{예시
|<nowiki>{{</nowiki>{{PAGENAME}}<nowiki>|</nowiki>{{PAGENAME}}<nowiki>/예시3}}</nowiki>
<nowiki>{{#CI form: title = {{</nowiki>{{PAGENAME}}<nowiki>/라벨|answer|자료형 int의 최대값은?}}</nowiki>
<nowiki>  |type= inputs</nowiki>
<nowiki>  |[골라=select={{loop|<now</nowiki><nowiki>iki>{{#expr: 2^{{{index}}} - 1 }} ,</now</nowiki><nowiki>iki>|40|1|10}}]*</nowiki>
<nowiki>  |submit_text=제출</nowiki>
<nowiki>  }}</nowiki>
<nowiki>}}</nowiki>
|{{:{{FULLPAGENAME}}|{{FULLPAGENAME}}/예시3}}
  {{#CI form: title= {{폼/라벨|answer|자료형 int의 최대값은?}}
    |type= inputs
    |[골라=select={{loop|<nowiki>{{#expr: 2^{{{index}}} - 1 }} ,</nowiki>|40|1|10}}]*
    |submit_text=제출
  }}
}}
=== 체크박스로 입력받기 ===
다중선택 가능한 여러개의 선택지를 제시해 쉼표로 구분된 문자열로 입력 받을 수 있습니다.
{{예시|
<nowiki>{{:{{FULLPAGENAME}}|{{FULLPAGENAME}}/예시4}}</nowiki>
<nowiki>  {{#CI form: type= multiple choice</nowiki>
<nowiki>  | title = {{</nowiki>{{PAGENAME}}<nowiki>/라벨|answer|만두를 만들기 위해 적절한 재료 8개를 골라주세요.}}</nowiki>
<nowiki>  | type = multiple choice</nowiki>
<nowiki>  | max answers=8</nowiki>
<nowiki>  |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|돼지고기}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|두부}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|양파}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|양배추}}</nowiki>
<nowiki>  |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|계란}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|참기름}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|에이스}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|매운고추}}</nowiki>
<nowiki>  |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|마늘}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|치즈}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|대파}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|고추장}}</nowiki>
<nowiki>  |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|마요네즈}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|옹스짱}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|쌀가루}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|밀가루}}</nowiki>
<nowiki>  |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|콩가루}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|물}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|쥬스}} |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|와인}}</nowiki>
<nowiki>  }}</nowiki>
|
|
{{#CI form section: type = inputs
{{:{{FULLPAGENAME}}|{{FULLPAGENAME}}/예시4}}
|title = 띄워줄 상태 메세지 (최대 1000자)
{{#CI form: type= multiple choice
| [textarea=1000] *
|title = {{:{{FULLPAGENAME}}/라벨|answer|만두를 만들기 위해 적절한 재료 8개를 골라주세요.}}
|type = multiple choice
|max answers=8
|{{:{{FULLPAGENAME}}/라벨|돼지고기}} |{{:{{FULLPAGENAME}}/라벨|두부}} |{{:{{FULLPAGENAME}}/라벨|양파}} |{{:{{FULLPAGENAME}}/라벨|양배추}}
|{{:{{FULLPAGENAME}}/라벨|계란}} |{{:{{FULLPAGENAME}}/라벨|참기름}} |{{:{{FULLPAGENAME}}/라벨|에이스}} |{{:{{FULLPAGENAME}}/라벨|매운고추}}
|{{:{{FULLPAGENAME}}/라벨|마늘}} |{{:{{FULLPAGENAME}}/라벨|치즈}} |{{:{{FULLPAGENAME}}/라벨|대파}} |{{:{{FULLPAGENAME}}/라벨|고추장}}
|{{:{{FULLPAGENAME}}/라벨|마요네즈}} |{{:{{FULLPAGENAME}}/라벨|옹스짱}} |{{:{{FULLPAGENAME}}/라벨|쌀가루}} |{{:{{FULLPAGENAME}}/라벨|밀가루}}
|{{:{{FULLPAGENAME}}/라벨|콩가루}} |{{:{{FULLPAGENAME}}/라벨|물}} |{{:{{FULLPAGENAME}}/라벨|쥬스}} |{{:{{FULLPAGENAME}}/라벨|와인}}
}}
}}
 
 
=== 기타 예시 ===
섹션타입의 ci폼 함수를 사용 해 한번에 여러값을 입력 받을 수 있습니다. 아래는 그에 대한 예시입니다.
{{예시
|<nowiki>{{:</nowiki>{{FULLPAGENAME}}<nowiki>|</nowiki>{{FULLPAGENAME}}<nowiki>/예시5}}</nowiki>
<nowiki>{{#CI form: title= 캐릭터 정보를 입력 해 주세요.</nowiki>
<nowiki>  |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|name|캐릭터 명}} [] *</nowiki>
<nowiki>  |{{#CI form section: type= inputs</nowiki>
<nowiki>    |title= {{</nowiki>{{PAGENAME}}<nowiki>/라벨|gender|캐릭터 성별}} *</nowiki>
<nowiki>    |type= multiple choice</nowiki>
<nowiki>    |{{</nowiki>{{PAGENAME}}<nowiki>/라벨|m|남성}} | {{</nowiki>{{PAGENAME}}<nowiki>/라벨|f|여성}}</nowiki>
<nowiki>    }}</nowiki>
<nowiki>}}</nowiki>
|{{:{{FULLPAGENAME}}|{{FULLPAGENAME}}/예시5}}
{{#CI form: title= 캐릭터 정보를 입력 해 주세요.
  |{{:{{FULLPAGENAME}}/라벨|name|캐릭터 명}} [] *
  |{{#CI form section: type= inputs
    |title= {{:{{FULLPAGENAME}}/라벨|gender|캐릭터 성별}} *
    |type= multiple choice
    |{{:{{FULLPAGENAME}}/라벨|m|남성}} |{{:{{FULLPAGENAME}}/라벨|f|여성}}
    }}
}}
}}
}}


아래는 좀 더 다양한 정보를 입력받는 예시입니다. 더 다양한 응용방법은 도보시오의 링크를 참조바랍니다.
{{예시
|<nowiki>{{:</nowiki>{{PAGENAME}}<nowiki>|</nowiki>{{FULLPAGENAME}}<nowiki>/예시6}}</nowiki>
<nowiki>{{#CI form: title = 캐릭터 정보를 입력 해 주세요.</nowiki>
<nowiki>| {{</nowiki>{{PAGENAME}}<nowiki>/라벨|name|게임에서 불릴 이름}} [] *</nowiki>
<nowiki>| {{</nowiki>{{PAGENAME}}<nowiki>/라벨|amount|초기 금액}} [number] *</nowiki>
<nowiki>|</nowiki>
<nowiki>    {{#CI form section: type = inputs</nowiki>
<nowiki>    | title = {{</nowiki>{{PAGENAME}}<nowiki>/라벨|job|선택할 직업}} *</nowiki>
<nowiki>    | type = multiple choice</nowiki>
<nowiki>    | {{</nowiki>{{PAGENAME}}<nowiki>/라벨|warrior|전사}} | {{</nowiki>{{PAGENAME}}<nowiki>/라벨|magic|마법사}}| {{</nowiki>{{PAGENAME}}<nowiki>/라벨|bus|버스기사}}</nowiki>
<nowiki>    }}</nowiki>
<nowiki>|</nowiki>
<nowiki>    {{#CI form section: type = multiple choice</nowiki>
<nowiki>    | title = {{</nowiki>{{PAGENAME}}<nowiki>/라벨|pearks|선택할 특성}}  (2개 선택 가능)</nowiki>
<nowiki>    | type = multiple choice</nowiki>
<nowiki>    | max answers=2</nowiki>
<nowiki>    | {{</nowiki>{{PAGENAME}}<nowiki>/라벨|heal|회복}}| {{</nowiki>{{PAGENAME}}<nowiki>/라벨|haste|헤이스트}}| {{</nowiki>{{PAGENAME}}<nowiki>/라벨|exp|경험치상승}}| {{</nowiki>{{PAGENAME}}<nowiki>/라벨|attack|공격력증가}}| {{</nowiki>{{PAGENAME}}<nowiki>/라벨|sight|공격력증가}}</nowiki>
<nowiki>    }}</nowiki>
<nowiki>|</nowiki>
<nowiki>    {{#CI form section: type = inputs</nowiki>
<nowiki>    | title = {{</nowiki>{{PAGENAME}}<nowiki>/라벨|state|상태 메세지(최대 1000자)}}</nowiki>
<nowiki>    | [textarea=1000]</nowiki>
<nowiki>    }}</nowiki>
<nowiki>|</nowiki>
<nowiki>    {{#CI form section: 다음 행동</nowiki>
<nowiki>    | type = inputs</nowiki>
<nowiki>    | [골라=select=가만히 있기, 숨쉬기, 코파기]*</nowiki>
<nowiki>    }}</nowiki>
<nowiki>}}</nowiki>
|{{:{{FULLPAGENAME}}|{{FULLPAGENAME}}/예시6}}
{{#CI form: title = 캐릭터 정보를 입력 해 주세요.
| {{:{{FULLPAGENAME}}/라벨|name|게임에서 불릴 이름}} [] *
| {{:{{FULLPAGENAME}}/라벨|amount|초기 금액}} [number] *
|
    {{#CI form section: type = inputs
    | title = {{:{{FULLPAGENAME}}/라벨|job|선택할 직업}} *
    | type = multiple choice
    | {{:{{FULLPAGENAME}}/라벨|warrior|전사}} | {{:{{FULLPAGENAME}}/라벨|magic|마법사}}| {{:{{FULLPAGENAME}}/라벨|bus|버스기사}}
    }}
|
    {{#CI form section: type = multiple choice
    | title = {{:{{FULLPAGENAME}}/라벨|pearks|선택할 특성}}  (2개 선택 가능)
    | type = multiple choice
    | max answers=2
    | {{:{{FULLPAGENAME}}/라벨|heal|회복}}| {{:{{FULLPAGENAME}}/라벨|haste|헤이스트}}| {{:{{FULLPAGENAME}}/라벨|exp|경험치상승}}| {{:{{FULLPAGENAME}}/라벨|attack|공격력증가}}| {{:{{FULLPAGENAME}}/라벨|sight|공격력증가}}
    }}
|
    {{#CI form section: type = inputs
    | title = {{:{{FULLPAGENAME}}/라벨|state|상태 메세지(최대 1000자)}}
    | [textarea=1000]
    }}
|
    {{#CI form section: 다음 행동
    | type = inputs
    | [골라=select=가만히 있기, 숨쉬기, 코파기]*
    }}
}}
}}
}}
== TODO ==
== 상세 ==
* 스크립트 만들기
이 틀은 사용자의 입력을 받아 처리하는 기존의 확장기능 파서함수 #CI를 자바스크립트로 래핑해주는 역할을 맡습니다. #CIForm의 기존 기능은 받은 데이터를 이메일로 보내거나 사이트 db로 전송하는 용도로 쓰이는데, 리버티게임에서는 해당 용도로 쓰일 일이 적으니 CGI와 CGI2와 호환되게끔 바꿔주는 틀입니다. 입력된 폼의 내용은 현재 SearchParams에 추가되거나 변경되어 다음 페이지로 전송합니다.
* action 파라미터 손댈 시 경고창 표시
== 도보시오 ==
== 도보시오 ==
[[https://www.mediawiki.org/wiki/Extension:CIForms]]
* [https://www.mediawiki.org/wiki/Extension:CIForms Extension:CIForms]

2023년 7월 22일 (토) 22:43 판


Robot pancake art.jpg
스크립트가 없으면 이 틀은 껍데기일 뿐입니다. 마치 당신처럼...
하고싶은말을 적어주세요.
  • 메세지 :

사용자의 입력을 받을 수 있는 양식문을 생성합니다.

사용법

문법이 복잡하기에 설명을 이해하기 보다는 아래 예시문단의 내용을 낙서장에 붙여넣어 실제 결과를 확인하고 용도에 맞게 수정하는것을 권장드립니다.

{{틀:폼}}

{{:틀:폼|이동할 위치(기본값 현재)|보존=보존여부(기본값 false)}}

CI Form을 사용하기 전에 이 틀을 선언하고 이동할 위치를 지정합니다. 특정 위치가 지정되지 않으면 현재 문서로 이동하게 됩니다.

{{틀:폼/라벨}}

{{{{FULLPAGENAME}}/라벨|파라미터 키|파라미터 표시될 값}}

CI Form 파서함수에서 표시되는 텍스트 값과 키 값을 분리할 수 있습니다.

이렇게 입력된 변수는 이동된 페이지의 {{#urlget:변수명}}이나 0으로 호출 가능합니다.

예시

초기 {{CGI}} 값을 위한 사용자 입력 받기

CGI 틀도 URL 매개 변수를 사용하기 때문에 'offset'이라는 키 값으로 CGI 틀의 출력 값을 변경할 수 있습니다. 아래 예시는 CGI 게임에서 사용되는 변수 값을 변경하는 방법을 보여줍니다.

code_blocks 코드

{{폼|백괴복권/길}} {{#CI form:|title= 백괴복권 치트 |{{폼/라벨|offset|초기 금액}} [number]* |submit_text=시작! }}

code
낙서장에서 확인
description 결과
백괴복권 치트

텍스트를 입력받아 퀴즈문제 내기

사용자에게 텍스트로 입력을 받고 도착지 페이지에 #ifeq로 사용자가 입력한 값과 예상한 값을 비교하여 다른 결과를 도출 할 수 있습니다.

code_blocks 코드

{{폼|{{틀:폼/예시1}}}} {{#CI form: |title=아침에 네발 점심에 두발 저녁에 세발이며 세상에서 가장 멍청한 것은? |{{폼/라벨|answer|정답}} [text] * |submit_text=정답 제출 }}

code
낙서장에서 확인
description 결과
아침에 네발 점심에 두발 저녁에 세발이며 세상에서 가장 멍청한 것은?

선택지에서 사용자에게 입력받기

셀렉트박스나 라디오박스로 선택지를 고르게 할 수 있습니다.

아래는 문서의 편집과 역사확인등의 동작이 action 파라미터로 이루어짐을 응용한 라디오박스로 입력값을 받는 예시입니다.

code_blocks 코드
{{폼}}

{{#CI form: |title={{폼/라벨|action|무엇을 할까?}} |type=multiple choice |{{폼/라벨|edit|수정}} |{{폼/라벨|history|역사}} |{{폼/라벨|delete|삭제}} |{{폼/라벨|protect|보호}}

code
낙서장에서 확인
description 결과
무엇을 할까?
  • 수정
  • 역사
  • 삭제
  • 보호

마찬가지로 사용자에게 선택지를 제시하는 한가지 방법인 셀렉트박스로 입력값을 받는 예시입니다. 라디오박스로 입력받기엔 리스트의 내용이 클 때 사용됩니다. 아래는 한가지 예시입니다.

code_blocks 코드

{{폼|폼/예시2}} {{#CI form: title= {{폼/라벨|gender|당신의 성별을 선택 해 주세요.}} |type= inputs |[골라=select=시스 남성, 시스 여성, 논 바이너리, 트랜스 남성, 트랜스 여성, 트랜스페미닌, 트랜스메스큘린, 에이젠더, 젠더리스, 그레이젠더, 데미젠더, 안드로진, 뉴트로이스, 바이젠더, 트라이젠더, 젠더플루이드, 젠더플럭스, 옴니젠더, 폴리젠더, 젠더퀴어, 젠더 논컨포밍, 젠더 베리언트, 젠더 뉴트럴]*

code
낙서장에서 확인
description 결과
당신의 성별을 선택 해 주세요.


셀렉트박스의 내용물에 규칙성이 있으면 다른 틀과 응용해 리스트의 생성을 간편화 할 수 있습니다. 아래는 리스트를 작성하는 예시입니다.

code_blocks 코드
{{폼|폼/예시3}}

{{#CI form: title = {{폼/라벨|answer|자료형 int의 최대값은?}} |type= inputs |[골라=select={{loop|<nowiki>{{#expr: 2^{{{index}}} - 1 }} ,</nowiki>|40|1|10}}]* |submit_text=제출 }} }}

code
낙서장에서 확인
description 결과
자료형 int의 최대값은?

체크박스로 입력받기

다중선택 가능한 여러개의 선택지를 제시해 쉼표로 구분된 문자열로 입력 받을 수 있습니다.

code_blocks 코드

{{:{{FULLPAGENAME}}|{{FULLPAGENAME}}/예시4}} {{#CI form: type= multiple choice | title = {{폼/라벨|answer|만두를 만들기 위해 적절한 재료 8개를 골라주세요.}} | type = multiple choice | max answers=8 |{{폼/라벨|돼지고기}} |{{폼/라벨|두부}} |{{폼/라벨|양파}} |{{폼/라벨|양배추}} |{{폼/라벨|계란}} |{{폼/라벨|참기름}} |{{폼/라벨|에이스}} |{{폼/라벨|매운고추}} |{{폼/라벨|마늘}} |{{폼/라벨|치즈}} |{{폼/라벨|대파}} |{{폼/라벨|고추장}} |{{폼/라벨|마요네즈}} |{{폼/라벨|옹스짱}} |{{폼/라벨|쌀가루}} |{{폼/라벨|밀가루}} |{{폼/라벨|콩가루}} |{{폼/라벨|물}} |{{폼/라벨|쥬스}} |{{폼/라벨|와인}} }}

code
낙서장에서 확인
description 결과
만두를 만들기 위해 적절한 재료 8개를 골라주세요.
  • 돼지고기
  • 두부
  • 양파
  • 양배추
  • 계란
  • 참기름
  • 에이스
  • 매운고추
  • 마늘
  • 치즈
  • 대파
  • 고추장
  • 마요네즈
  • 옹스짱
  • 쌀가루
  • 밀가루
  • 콩가루
  • 쥬스
  • 와인


기타 예시

섹션타입의 ci폼 함수를 사용 해 한번에 여러값을 입력 받을 수 있습니다. 아래는 그에 대한 예시입니다.

code_blocks 코드
{{:틀:폼|틀:폼/예시5}}

{{#CI form: title= 캐릭터 정보를 입력 해 주세요. |{{폼/라벨|name|캐릭터 명}} [] * |{{#CI form section: type= inputs |title= {{폼/라벨|gender|캐릭터 성별}} * |type= multiple choice |{{폼/라벨|m|남성}} | {{폼/라벨|f|여성}} }} }}

code
낙서장에서 확인
description 결과
캐릭터 정보를 입력 해 주세요.
캐릭터 성별 *
  • 남성
  • 여성

아래는 좀 더 다양한 정보를 입력받는 예시입니다. 더 다양한 응용방법은 도보시오의 링크를 참조바랍니다.

code_blocks 코드
{{:폼|틀:폼/예시6}}

{{#CI form: title = 캐릭터 정보를 입력 해 주세요. | {{폼/라벨|name|게임에서 불릴 이름}} [] * | {{폼/라벨|amount|초기 금액}} [number] * | {{#CI form section: type = inputs | title = {{폼/라벨|job|선택할 직업}} * | type = multiple choice | {{폼/라벨|warrior|전사}} | {{폼/라벨|magic|마법사}}| {{폼/라벨|bus|버스기사}} }} | {{#CI form section: type = multiple choice | title = {{폼/라벨|pearks|선택할 특성}} (2개 선택 가능) | type = multiple choice | max answers=2 | {{폼/라벨|heal|회복}}| {{폼/라벨|haste|헤이스트}}| {{폼/라벨|exp|경험치상승}}| {{폼/라벨|attack|공격력증가}}| {{폼/라벨|sight|공격력증가}} }} | {{#CI form section: type = inputs | title = {{폼/라벨|state|상태 메세지(최대 1000자)}} | [textarea=1000] }} | {{#CI form section: 다음 행동 | type = inputs | [골라=select=가만히 있기, 숨쉬기, 코파기]* }} }}

code
낙서장에서 확인
description 결과
캐릭터 정보를 입력 해 주세요.
선택할 직업 *
  • 전사
  • 마법사
  • 버스기사
선택할 특성 (2개 선택 가능)
  • 회복
  • 헤이스트
  • 경험치상승
  • 공격력증가
  • 공격력증가
상태 메세지(최대 1000자)
0/1000 characters
다음 행동

상세

이 틀은 사용자의 입력을 받아 처리하는 기존의 확장기능 파서함수 #CI를 자바스크립트로 래핑해주는 역할을 맡습니다. #CIForm의 기존 기능은 받은 데이터를 이메일로 보내거나 사이트 db로 전송하는 용도로 쓰이는데, 리버티게임에서는 해당 용도로 쓰일 일이 적으니 CGI와 CGI2와 호환되게끔 바꿔주는 틀입니다. 입력된 폼의 내용은 현재 SearchParams에 추가되거나 변경되어 다음 페이지로 전송합니다.

도보시오