그래야 제가 다음 배포판부터 문제 없이 지원되도록 이벤트 생성 등을 도와드리죠.
부탁 드립니다. 함께 만들어 나가 보아요~ :)
새로운 플러그인이나 이벤트에 대한 자랑은 이 글에 트랙백과 댓글로 몰아 주세용!
이올린에 북마크하기(0) 이올린에 추천하기(0)

Tag : plugin, tattertools

테터툴즈 플러그인의 기본 형태

Posted 2006/02/02 22:28 by PAPACHA
태터툴즈의 플러그인은 plugins 아래에 디렉토리별로 존재하게 됩니다.
NationalityOfCommenter처럼 별도의 디렉토리여야 하며, 이 디렉토리 이름이 플러그인 이름입니다.
현재 플러그인 이름, 즉 디렉토리 명은 영문자,숫자,언더바(_)의 조합으로 제한되어 있습니다.

모든 플러그인은 그 디렉토리에 index.xmlindex.php가 존재해야 합니다. index.xml은 플러그인에 대한 정보와 event listening을 설정하고, index.php는 event가 발생하여 callback이 이루어질 때 실행되는 PHP 소스 파일입니다. 여기서 index.php에 함수를 정의할 때 이름을 최대한 유니크하게 만드셔야 플러그인간의 충돌을 피할 수 있습니다. 되도록 함수 이름을 플러그인 이름으로부터 파생시키십시오. 예를 들어, function NationalityOfCommenter_addFlag(...)처럼요. event listeningindex.php가 아닌 index.xml에 있는 것은 이러한 충돌을 최대한 줄이고 성능을 향상시키기 위해서 입니다.
이올린에 북마크하기(0) 이올린에 추천하기(0)

Tag : plugin, tattertools

새로운 태터툴즈 이벤트 만들기

Posted 2006/02/02 15:01 by PAPACHA
태터툴즈에 현재 지원되는 이벤트가 많지 않습니다. 이제 시작이지요. 1.0 RC3에서 정의된 이벤트는 다음과 같습니다.
  • CommenterPrinting
  • CommentPrinting
  • GuestCommenterPrinting
  • GuestCommentPrinting
  • /plugin/*
정말 없네요 --;
계속 이벤트를 정의해 나가겠습니다만, 임시로 이벤트를 정의하는 방법을 알려드리겠습니다.
특별히 이벤트를 정의할 필요없이 이벤트를 생성(fire)해 주면 됩니다. 생성하는 함수는 fireEvent로 그것의 interface는 다음과 같습니다.

function fireEvent($event, $target = null, $mother = null, $condition = true)

  • $event
    string값으로 이벤트 식별자입니다. 위의 'CommenterPrintring', '/plugin/MetaWebLogAPI/' 처럼 임의로 지정해 주시면 되겠습니다. 새로운 글이 포스팅됐을 때를 처리하기 위해 'EntryPosting'을 사용해 봅시다.
  • $target
    특별히 type이 정해지지 않았으며, 이벤트의 종류에 따라 implicitly 결정됩니다. 'EntryPosting'을 위해 한 entry 정보를 담고 있는 array로 사용해 봅시다.
  • $mother
    $target과 관련하여 추가로 제공하는 정보이며, 역시 이벤트의 종속적으로 type이 결정됩니다.
  • $condition
    boolean으로 이벤트를 생성(fire)할 지 여부를 programmable하게 결정합니다.
  • RETURN
    이벤트 처리자(listener)가 $target을 기반으로 리턴한 값을 되돌려 줍니다. 이벤트 처리자는 아무런 처리도 하지 않았다면 반드시 $target을 그대로 리턴해야 합니다.
이제 EntryPosting 이벤트를 생성해 봅시다. 새로운 글을 처리하는 소스 파일은 blog/owner/entry/add/index.php입니다. 소스를 보면 적당한 위치가 제일 마지막 줄(957)입니다. 이 줄을 다음과 같이 수정합니다.
respondResultPage(addEntry($owner,$entry)!==false);?>
-->
respondResultPage(addEntry($owner,fireEvent('EntryPosting', $entry))!==false);?>
이제 EntryPosting 이벤트를 받아 처리하는 플러그인을 하나 만드셔서, 새로운 글이 추가되기 직전에 글의 내용을 보완하거나 싸이월드 등에 동기화시킬 수도 있겠습니다.

@ 이벤트 열심히 정의해 나가겠습니다. 당분간 불편하시더라도 직접 만들어서 사용해 보시고 저에게 알려주시어 배포판에 빨리 적용될 수 있도록 도와주시는 센스~
이올린에 북마크하기(0) 이올린에 추천하기(0)

Tag : event, plugin, tattertools

« PREV : 1 : 2 : 3 : NEXT »