이제 EntryPosting 이벤트를 생성해 봅시다. 새로운 글을 처리하는 소스 파일은 blog/owner/entry/add/index.php입니다. 소스를 보면 적당한 위치가 제일 마지막 줄(957)입니다. 이 줄을 다음과 같이 수정합니다.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을 그대로 리턴해야 합니다.
respondResultPage(addEntry($owner,$entry)!==false);?>이제 EntryPosting 이벤트를 받아 처리하는 플러그인을 하나 만드셔서, 새로운 글이 추가되기 직전에 글의 내용을 보완하거나 싸이월드 등에 동기화시킬 수도 있겠습니다.
-->
respondResultPage(addEntry($owner,fireEvent('EntryPosting', $entry))!==false);?>
Tag : event, plugin, tattertools
Tag : plugin, tattertools