Skip to content
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