그누보드5 매뉴얼

그누보드5 매뉴얼

그누보드5

매뉴얼 검색

매뉴얼 검색
HOOK

그누보드 5.4 버전부터 HOOK 이란 기능이 추가되었습니다.

 

HOOK을 사용하면 원본 소스코드 수정없이, 코드를 추가함으로써 사용자가 원하는 결과물을 구현할수 있습니다.

 

HOOK 에 대한 함수는 /lib/hook.lib.php 파일에서 확인할수 있습니다.

 

HOOK 에 코드 작성은 extend 폴더에서 파일을 사용자 입맛대로 유니크하게 생성후에 작성해 주시면 됩니다.

 

그누보드 5.4 버전에 추가된 HOOK 코드는 아래 주소의 오픈소스코드가 사용 되었습니다.

 

https://github.com/Josantonius/PHP-Hook

 

위의 코드의 클래스파일을 확장하여 그누보드5.4 버전에 도입했습니다.

 

위의 그누보드5.4 버전에 적용된 HOOK 은 세계에서 가장 많이 사용되는 CMS 워드프레스에서 사용하는 HOOKS 와 정말 매우 유사합니다.

 

따라서 워드프레스에서 hooks 를 사용하고 계셨던 분들은 그누보드 5.4 버전부터 도입된 hook 에 대해서 낯설지 않고 많이 익숙하실겁니다.

 

 

HOOK 이란 무엇인가? ( HOOK 의 개념 )

 

후킹( hooking )이라고 불릴수 있습니다.

https://ko.wikipedia.org/wiki/%ED%9B%84%ED%82%B9

 

또는 인터셉터 라고도 할수 있습니다.

( 구글에서 인터셉터를 검색해 보세요. )

 

 

 

그누보드 5.4 버전부터 도입된 HOOK 은 아래와 같은 함수명을 사용합니다.

 

add_event ( 이벤트 추가 )

run_event ( 이벤트 실행 )

add_replace ( 내용 변경 )

run_replace ( 내용 변경 적용 )

delete_event ( 이벤트 추가된 것을 취소함 )

delete_replace ( 내용 변경된 것을 취소함 )

 

 

function run_event($tag, $arg = '')

 

이벤트 라는 것은 글을 쓰는 것, 코멘트를 작성하는 것, 회원가입을 하는 것, 회원 정보를 수정하는 것, 쪽지를 보내는 것, 투표를 하는것, 기타 등등 어떤 행위를 나타냅니다.

 

( 생일을 맞이하거나, 회사의 출근과 퇴근, 아침식사, 점식식사, 저녁식사, 시험의 합격과 불합격, 게임에서 미션 성공과 실패, 여자친구와 기념일이 몇일이 되었거나 또는 키보드에서 특정 키를 눌었거나 하는 등 일상생활에서 일어날수 있는 행동의 전부가 이벤트의 일종입니다. 프로그램에서 이러한 이벤트를 탐지 할수 있다면 이벤트가 발생했을시 HOOK 을 통하여 해당 이벤트에서 실행될 내용을 더 하거나 또는 뺄수가 있습니다. ( 추가 또는 삭제 ) )

 

run_event 함수는 이벤트 시작 시 사용하는 함수입니다.

 

함수 인수중 $tag 는 어떤 행위를 짧게 영문자, 숫자,_ 문자열 형식으로 표기한 것을 나타냅니다. ( 아래 표기 참고 ) 

 

(

글을 쓰는 것 =  write_update_after ,

코멘트를 작성하는 것 = comment_update_after,

회원가입을 하는 것 = register_form_update_after,

쪽지를 보내는 것 = memo_form_update_after

)

 

함수 인수중 $arg 는 add_event 함수 사용시 전해줄 인수를 나타냅니다.

 

 

 

 

function add_event($tag, $func, $priority=G5_HOOK_DEFAULT_PRIORITY, $args=0)

 

add_event 함수는 이벤트 시작 전에 실행될 이벤트 내용을 입력하는 함수입니다.

 

예를 들어 글을 쓰는 것 이벤트가 일어났을때, 관리자에게 문자를 보내고 싶다면 아래와 같이 코드를 작성합니다.

 

add_event('write_update_after', '실행될 문자 보내는 함수명', 10,  5);

 

function 실행될 문자 보내는 함수명($board, $wr_id, $w, $qstr, $redirect_url){

        관리자에게 문자를 보냄...

}

 

run_event 함수 실행전에 add_event 함수로 입력된 내용들은 run_event 함수가 실행시 전부 실행되며,

run_event 함수 실행 이후에 add_event로 입력된 이벤트 내용은 실행되지 않습니다. 

 

 

 

function run_replace($tag, $arg = '')

 

run_replace 함수는 어떤 특정 값이 수정 될수 있거나 변경 될수 있는 값을 가르킬 때 사용하는 함수입니다.

 

함수 인수 중 $tag 변수는 어떤 특정 값을 영문자, 숫자,_ 문자열 형식으로 표기한 것을 나타냅니다.

 

함수 인수중 $arg 는 add_replace 함수 사용시 전해줄 인수를 나타냅니다.

 

 

 

 

function add_replace($tag, $func, $priority=G5_HOOK_DEFAULT_PRIORITY, $args=0)

 

add_replace 함수는 run_replace 함수가 적용된 특정값을 수정 또는 변경시 사용되는 함수입니다.

 

run_replace 함수 실행전에 add_replace 함수로 입력된 내용들은 run_replace 함수가 실행시 전부 적용 되며,

run_replace 함수 실행 이후에 add_replace로 입력된 내용은 적용 되지 않습니다. 

 

 

 

function delete_event($tag, $func, $priority=G5_HOOK_DEFAULT_PRIORITY)

 

run_event 함수가 실행전에 add_event 함수로 입력된 이벤트 내용을 지우고 싶을때 사용하는 함수입니다.

 

 

function delete_replace($tag, $func, $priority=G5_HOOK_DEFAULT_PRIORITY)

 

run_replace 함수가 실행전에 add_replace 함수로 적용될 내용을 지우고 싶을때 사용하는 함수입니다.

 

 

 

그누보드5.4 버전에서 HOOK 을 사용한 프로그램 예제는 아래와 같습니다.

 

CSS JS PACKER

https://sir.kr/g5_plugin/6157

 

5.4 버전 meta tag 추가 및 open graph 추가하기

https://sir.kr/g5_plugin/6159

 

게시판에 파일 업로드시 이미지 파일 용량 줄이기

https://sir.kr/g5_plugin/6165

 

로그인시 구글 OTP 추가인증 사용하기

https://sir.kr/g5_plugin/6189

 

aws s3 스토리지를 그누보드5와 영카트5에 사용하기

https://sir.kr/g5_plugin/6220

 

그누보드 5.4 버전용 알림플러그인

https://sir.kr/g5_plugin/6259

회원로그인

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