Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
Jeongkyu Shin edited this page Sep 24, 2012 · 1 revision

플러그인 제작자용 API 문서 (DRAFT)

플러그인 관리자에 설정 버튼 추가

설정 항목이 있는 플러그인의 경우 목록에 설정 버튼이 나타납니다.br 설정버튼이 눌러지면 해당 플러그인의 설정 값을 받을 수 있는 팝업 창이 뜹니다.br

manifast 파일 항목 변경

binding 항목 아래 config 항목 추가 br config의 속성으로 displayHandler와 dataHandler 를 받습니다. displayHandler:: 플러그인 관리자화면에서 설정팝업창이 뜰때 보여질 화면을 처리하는 함수를 인자로 받습니다. dataHandler:: 사용자가 설정값을 submit 할 때 이 값을 처리할 함수를 인자로 받습니다.

plugin/index.php 에서 접근 할 수 있는 전역변수 추가

$configVal:: 플러그인 제작자가 임의의 형식으로 저장한 config 값입니다. 와 의 핸들러 함수에서만 접근 가능합니다. $configPost:: 설정 팝업창에서 submit 할 주소입니다. displayHandler 에서만 접근이 가능합니다.

displayHandler

  • 형식

    fullHTMLCODE displayHandler( $setVal/현재 설정값/, $postCheck/사용자가 이미 submit을 했는가?/)

  • submit 주소는 $configPost를 사용하여야 합니다.

  • 현재 지원되는 경우는 $_POST입니다. 이외의 값들은 초기화 되니 주의하시기 바랍니다. (차후 $_FILES 도 지원할 예정)

  • $postCheck 는 3가지 경우의 값을 가집니다.

    • null : 아직 dataHandler 가 호출되지 않음
    • false : dataHandler 에서 실패함
    • true : dataHandler 에서 성공함

dataHandler

  • 형식

    userFormatedString dataHandler( $post/* 사용자가 서브밋한 데이터중 $post 항목*/)

  • 이 함수에서 리턴한 문자열 그대로 저장 되면 이 후 실제 이벤트 핸들링 시 $configVal에 그대로 전달됩니다.

  • 이 함수에서 사용자 입력값을 검증 할 수 있습니다. 만약 사용자 입력값 검증에 실패 하면 false를 리턴하면 되고 이후 displayHandler의 $postCheck에 false값이 전달 됩니다.

예제 TattertoolsBirthday

    • Manifast * TattertoolsBirthday/index.xml

      ... <config displayHandler "TaatertoolsBirthdayDataSet" /> ...

br br

    • displayHandler * TattertoolsBirthdaySetting

      function TattertoolsBirthdaySetting($setVal, $postCheck){ /month:day/ global $configPost; $month = 3; $day = 1; if( !empty( $setVal ) ){ $list = explode(":" , $setVal); if( 2 == count($list) ){ if( is_numeric( $list[0] ) ) $month = $list[0]; if( is_numeric( $list[1] ) ) $day = $list[1]; } } ob_start(); ?>

      <title>생일을 설정해주세요</title> if( is_null($postCheck) ){/*처음 불려오는 상태이므로 아무짓도 않함*/}?> else if( false === $postCheck ){/*검증이 실패함*/}?> <script type="text/javascript"> alert("날짜가 잘못되었습니다.."); </script> }else{ /*성공*/?> <script type="text/javascript"> alert("변경되었습니다."); </script> }?> 내 생일은 월 일 입니다.
      $return = ob_get_contents(); ob_end_clean(); return $return; }
    • dataHandler * TaatertoolsBirthdayDataSet

      function TaatertoolsBirthdayDataSet($post){ if( empty( $post['month'] ) || empty( $post['day'] ) ) return false; return $post['month'].':'. $post['day'] ; /원하는 포맷으로 조립하여 리턴하면 이값이 유지됨/ }

  • 이벤트 핸들러에서 설정 값 사용

    function TattertoolsBirthday_TattertoolsBirthday($target) { global $configVal;/상단에서 조립한 값이 저장됨 없으면 nul/ $month = 3; $day = 1; if( !is_null( $configVal ) ){ $list = explode(":" , $configVal); if( 2 == count($list) ){ if( is_numeric( $list[0] ) ) $month = $list[0]; if( is_numeric( $list[1] ) ) $day = $list[1]; } } ....생략...

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /