그누보드 훅 사용 방법에 대해서 간단하게 올립니다.
(우선 설명이 길어서 평어체 위주로 글을 남깁니다.)
너무 어렵게 생각 할필요 없다.
예를들어서 전체적으로 제어를 해야한다면 common.php 를 생각 할것이다.
여기 접근하면 제일 마지막 줄에 이 함수를 찾으면 된다.
run_event('common_header');
이걸 활용해서 쓰면된다.
나같은 경우 extend 폴더를 확장해서 자주 사용한다.
경로는 이렇게 하면된다.
extends/beaver.extend.php 를 만든다.
add_event('common_header', function () {
global $g5;
// 소스코드 를 넣어주세요
});
이렇게 run_event 훅을 보면 인자가 없을때는 그냥 add_event로 클로저 방식으로 만들면된다.
(훅 사용할때 클로저 방식을 의도하여 만들었다.)
다른 훅을 예시로 한다면
add_replace 함수가 있다.
이거는 리턴 받을 일이 있을때 필요하다
add_replace('board_list', function ($list,$bo_table,$wr_id,$board,$sca) {
이건 내가 만든건데 목록에보면 $list 배열을 재활용하고 싶어서 만들어봤다.
list.php 접근해서 $list 배열을 찾아서 반복문 맨 아래에 넣어주면 된다.
$list = run_replace('board_list', $list,$bo_table,$wr_id,$board,$sca);
이걸 설명한다면 함수명을 board_list로 하고 넘겨야 할 값을 인자에다가 넣어주면된다.
$list,$bo_table 등 넣고 싶은 것들을 넣어주고 아래 처럼 하면된다. (예시처럼 활용하면된다.)
add_replace('board_list', function ($list,$bo_table,$wr_id,$board,$sca) {
global $cate;
/// 소스코드 ....
return $newList;
}, G5_HOOK_DEFAULT_PRIORITY, 5);
여기서 다시 설명하자면 리턴은 꼭 줘야지 재 배열로 값을 넘겨줄수있다.
그리고 클로저 $priority 인자는 그냥 그대로 적용하고 제일 마지막 어귤먼트만 갯수를 변경해야한다. 클로저 인자가 5개가 있어서 숫자를 5로 넣고 끝내면 된다. (설명 부족으로 아래 훅 사용법 참고 자료를 보고 공부하면된다. ㅋㅋㅋㅋ)
어쨌든 훅을 이런식으로 사용하면 되는데 다국어를 만들려고 훅 위주로 쓰다가 안먹히는 버그가 있어서.. 그건 억지로 해결 했는데..
밑에 그누보드 가이드를 참고하면 tail_sub 이 있는데 여기서 버그가 좀 있다.. 설명하기 길어서 차라리 다국어를 다른 방식으로 제작 해야된다.
여기까지... 끝!
참고 자료 :
https://www.realcoding.blog/725fdaab-325b-40ad-9eb9-a3704fc41b3d
https://gnustudy.com/bbs/board.php?bo_table=gnu_tip&wr_id=341#google_vignette
'it 언어 노트 > 그누보드&영카트' 카테고리의 다른 글
그누보드5 rest api (0) | 2024.09.15 |
---|---|
그누보드 이미지 썸네일 생성 후에 느려지는 현상 (0) | 2024.08.22 |
해외 주소 검색 플러그인 (0) | 2024.08.01 |
영카트 사용 중단 훅 (0) | 2024.07.28 |