[PR-알리미] GNU5.4 part.1 사전준비 정보
[PR-알리미] GNU5.4 part.1 사전준비본문
[PR-알리미] GNU5.4 part.1 사전준비
일단 글을 쓰기전에 언급해두자면 이 글을 GNU 5.4버전의 HOOK기능을 알아보기위한
예제의 일환으로서 강좌의 성격을 가지고 있지만 강좌는 아님을 밝혀둡니다.
전 누굴 가르칠만한 능력이 안되는 루저라 해당 내용에 오류가 있을 수 있음을 공지합니다.
자 그럼 기존 그누보드 버전 알리미를 기준으로 제작을 합니다.
해당 소스는 https://sir.kr/g5_plugin/3572 이곳에 있으며, 만든지 오래되고
프로그램의 개념이 부족할때 만든거라 조악하기 그지 없습니다.
자 그럼 일단 개발에 필요한 기능을 정리해보겠습니다.
- 본인의 글에 댓글이 달린경우 알림을 받는다.
- 본인에게 쪽지가 도착했을경우 알림을 받는다.
- 본인의 글이 추천을 받은경우 알림을 받는다.
- 본인의 글이 비추천을 받은경우 알림을 받는다.
이정도 입니다.
자 그럼 해당하는 훅을 찾아봐야 합니다.
/bbs/write_comment_update.php
run_event('comment_update_after', $board, $wr_id, $w, $qstr, $redirect_url);
/bbs/memo.php
run_event('memo_list', $kind, $unkind, $page);
와우.... -_-;;;
추천 / 비추천 기능을 만들려고 보니 해당 HOOK은 존재하지 않습니다.
꼼꼼하게 훅이 달려 있다고 생각했지만 막상 개발해보려고 하면 이러합니다.
자 그럼 추천/비추천은 어떻게 개발할 것인가?
이럴대 써먹으라고 있는HOOK이 있을겁니다.
/common.php
run_event('common_header');
이녀석이죠 common에 위치하기 때문에 어떤 페이지에서도 호출이되고
어떤 기능으로든지 사용이 가능할거 처럼 생겨 먹었습니다.
HOOK은 이정도가 있으면 될듯하고 다음은 개발시에 필요한 extend에 관해 좀 짚어보겠습니다.
이는 이전 GNU에서도 마찮가지지만 플러그인을 개발할때 필수적인 폴더 입니다.
해당 폴더는 /extend 이며, 이녀석의 사용처는 해당 소스를 보면
// common.php 파일을 수정할 필요가 없도록 확장합니다. if(!empty($extend_file) && is_array($extend_file)) { foreach($extend_file as $file) { |
이라고 /common.php 파일에 명시되어 있습니다.
주석에서 알 수 있듯이 common.php를 수정할 필요가 없이 확장을 하는 기능입니다.
네 기존의 버전에서도 HOOK비슷한걸 만들수 있는 녀석입니다.
해당폴더에 있는 .php확장자를 가진녀석을 불러오는거죠
자 그럼 저는 이 폴더에서 사용자파일 user.config.php 가 존재하지만
이녀석을 사용하진 않을거고 pr.extend.php 파일을 생성해서 사용하겠습니다.
[pr - Project Rido] 의 약자로 사용합니다. (뭐 그리 거찬하진 않습니다.)
(다른분들의 플러그인과 충돌을 피하기 위함이죠)
자 그럼 준비는 여기까지 하고
다음부턴 실 개발을 해보도록 하겠습니다.
2
댓글 14개
제대로 된 강좌네요. ~~
뭐라 하시기 없기네요!
아직 2편 못 외웠으나 그냥 막 읽기로 작정했어요!
읽기만 해도 언젠가는 알게 되니까요!!!
감사합니다!
외우는 것을 아직 ㅜㅜ 단어 한 개도 안 놓치고 외워야죠.? ㅋ
6번 더 채우면 'function get_hook_datas'
이 친구 누군지 알 수 있습니다. (1% 자신 없음. ㅋ)
add_event 사용법이 4번 읽으니 보이기 시작하네요? ^^
일단 모를 때는 외우고 보는 거죠! ㅎ
//
외우려고 안 합니다. 계속 읽기만 하죠.
그러다 외워지면 할 수 없이 외웁니다.
제가 만들려고 하는 플러그인의 기초작업겸 만들거라
그래서 기대를 더 하게 됩니당~~~
요즘 대부분의 커뮤니티에 기본인것 같습니다.맨션이랑.. 푸쉬나 알림말이죠~~.
후크에 관해 여전히 1도 모르지만... (이전에 알던 후크는 피터팬에 나오던...)
어케 하라는건지는 아주 쪼금 알겠습니다.
그런데.. 혹시.. part.2 는 어디 있는지 알려주시면... 안될까요?