[GNU 5.4] Hook에 관해 알아보자 2 > 그누5.4포럼

그누5.4포럼

그누보드 5.4 버전 사용자 포럼 소모임 게시판 입니다.

[GNU 5.4] Hook에 관해 알아보자 2 정보

[GNU 5.4] Hook에 관해 알아보자 2

본문

[GNU 5.4] Hook에 관해 알아보자 2

 

네.. 두번째 게시물입니다.

왜 한개의 게시물로 안만드냐구요? -_- 제맘입니다.

 

자 이번엔 GNU 5.4d에서 훅을 어떻게 사용하고 있나를 보겟습니다.

editplus에서 훅관련 펑션을 검색합니다.

디렉토리 찾기에서 run_event를 검색해 줍니다.

좌락락 검색이 될겁니다.

 

/common.php

run_event('common_header');

뭐 예상대로 페이지 이전에서 하나 호출을 해줍니다.

맘대로 고쳐서 사용해 보라는 것일 테지요 .....

** 앞으로 제가 만들 gnu child(가칭) 에서 사용할 녀석입니다.

 

/tail.sub.php

run_event('tail_sub');

페이지 마지막에 뭘 추가해줄 수 있는 녀석입니다.

 

/adm/board_form_update.php

run_event('admin_board_form_update', $bo_table, $w);

생각지도 못한데 하나가 들어가 있네요 관리자에서 게시판관련 설정수정시에

활용할 수 있겠네요

 

/adm/config_form_update.php

run_event('admin_config_form_update');

마찮가지 관리자의 설정을 변경할때 활용가능 해 보입니다.

 

/adm/member_form_update.php

run_event('admin_member_form_update', $w, $mb_id);

관리자에서 멤버설정 관련 업데이트시에 활용하겠죠? 같은말 계속하려니 힘드네요

 

/adm/member_list_form_update.php

run_event('admin_member_list_update', $_POST['act_button'], $mb_datas);

앞으로 제목에서 알 수 있을만한건 그냥 리스트만 .... 쓰겠습니다 ㅠㅠ

 

/bbs/delete.php

run_event('bbs_delete', $write, $board);

 

/bbs/delete_all.php

run_event('bbs_delete_all', $tmp_array, $board);

 

/bbs/delete_comment.php

run_event('bbs_delete_comment', $comment_id, $board);

 

/bbs/login.php

run_event('member_login_tail', $login_url, $login_action_url, $member_skin_path, $url);

 

/bbs/login_check.php

run_event('password_is_wrong', 'login', $mb);

run_event('member_login_check', $mb, $link);

이녀석에서 로그인 체크시 회원 권한이라던가 추가로 세션을 구워서 활용한다던가 

쿠키를 구워서 활용하는 Hook을 만들어줄 수 있을거 같습니다.

 

/bbs/logout.php

run_event('member_logout', $link);

마찮가지로 로그아웃시 쿠키를 지워준다거나 .... 

 

/bbs/memo.php

run_event('memo_list', $kind, $unkind, $page);

 

/bbs/memo_delete.php

run_event('memo_delete', $me_id, $row);

 

/bbs/memo_form_update.php

run_event('memo_form_update_before', $recv_list);

run_event('memo_form_update_after', $member_list, $str_nick_list, $redirect_url);

run_event('memo_form_update_failed', $member_list, $redirect_url);

요런 훅을 활용하면 실제로 제가 만든 알림기능 같은걸 훅으로 대체해서 개발이 가능해질거 같습니다.

 

/bbs/move.php

run_event('move_html_footer');

 

/bbs/move_update.php
run_event('bbs_move_update', $bo_table, $chk_bo_table, $wr_id_list, $opener_href);

 

/bbs/new_delete.php
run_event('bbs_new_delete', $chk_bn_id, $save_bo_table);

 

/bbs/password_check.php
run_event('password_is_wrong', 'bbs', $wr, $qstr);

 

/bbs/password_update.php
run_event('qawrite_update', $qa_id, $write, $w, $qaconfig);

 

/bbs/register_form_update.php
run_event('register_form_update_before', $mb_id, $w);

run_event('register_form_update_valid', $w, $mb_id, $mb_nick, $mb_email);

run_event('register_form_update_send_mb_mail', $config['cf_admin_email_name'], $config['cf_admin_email'], $mb_email, $subject, $content);

run_event('register_form_update_send_admin_mail', $mb_nick, $mb_email, $config['cf_admin_email'], $subject, $content);

run_event('register_form_update_send_certify_mail', $config['cf_admin_email_name'], $config['cf_admin_email'], $mb_email, $subject, $content);

run_event('register_form_update_after', $mb_id, $w);

회원가입쪽에 많은양의 Hook이 존재하네요

 

/bbs/write.php
run_event('bbs_write', $board, $wr_id, $w);

 

/bbs/write_comment_update.php
run_event('comment_update_after', $board, $wr_id, $w, $qstr, $redirect_url);

요것도 알림기능을 Hook으로 제작가능하겠네요

 

/bbs/write_update.php
run_event('write_update_before', $board, $wr_id, $w, $qstr);

run_event('write_update_file_insert', $bo_table, $wr_id, $upload[$i], $w);

run_event('write_update_after', $board, $wr_id, $w, $qstr, $redirect_url);

 

/lib/cache.lib.php
run_event('adm_cache_delete', $board_tables);

cahe삭제시에도 넣어줬네요 냑 개발자분들의 꼼꼼함이 보입니다.

 

/lib/cache.lib.php
run_event('adm_cache_delete', $board_tables);

 

/lib/common.lib.php
run_event('alert', $msg, $url, $error, $post);

// 경고메세지를 경고창으로

alert함수안에서 구동되네요 이건 좀 대박이네요 역시나 다국어 같은것들 제작시에

경고문구들을 수정시에 코어를 건들여야 했지만 Hook으로 해결가능 해 보입니다.

run_event('alert_close', $msg, $error);

 

/theme/basic/index.php
run_event('pr_hooks');

 

/theme/basic/tail.sub.php
run_event('tail_sub'); 

 

 

자 여기가지가 현재 5.4에서 확인가능한 Hook들 입니다.

정리하면서 보니 생각보다 더 꼼꼼하게 처리해 주셨네요 감사합니다.

 

그럼 다음엔 간단한 사용방법에 대해서 알아보겟습니다.

 

추천
5

댓글 9개

어쩐지 아무리 찾아도 안 보였습니다.

** 앞으로 제가 만들 gnu child(가칭) 에서 사용할 녀석입니다.

아직 안 만드셨는데 있는 줄 알고 뒤졌네요.

HOOK 기능은 꼭 알아야 할 기능이라서
꼭 배워야 합니다. 탁월하신 선택 고맙습니다!
기존건 5.3에 대응한 버전이라 hook이 존재하지 않습니다.
게다가 최초 개발할때 Hook이 없어서 엄청 고생했습니다 -_-;;;

기존 child플러그인을 테스트 해보시려면 제 깃헙에 있긴 합니다.
최근에 마구 쑤시고 다니면서 보다가 봤거든요.
그런데 왜 없지? 이러면서요. 저는 얌전히 있다가
HOOK 기능 탑재 버전이 나오면 배우겠습니다.
실력은 없어 판매는 못 하지만
내 홈페이지 정도는 제 손으로 가꾸고 싶거든요.
베풀어 주시면 그때 배울래요!
감사합니다.

고수라뇨! 아닙니다ㅋㅋㅋ
게다가 요즘은 프로그래밍이나 과학도 교양 과목처럼 되어가는 시대이고ㅋㅋ
과거 처럼 '나만아는 기술' 같은 개념이 사라지고 있으니
오히려 스터디그룹처럼 공유하는 사람이 더욱 멋져보이고 그렇습니다!

리도님 최고!
전체 28 |RSS
그누5.4포럼 내용 검색

회원로그인

진행중 포인트경매

  1. 참여71 회 시작24.04.19 15:40 종료24.04.26 15:40
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT