훅 관련 질문드립니다.

훅 관련 질문드립니다.

QA

훅 관련 질문드립니다.

본문

훅 개념이 잘 이해가 안 되서, 공부 겸 이것저것 해보면서 테스트해보고 있는데,

아래 get_custom_board_db 함수가 호출이 안 되는데, 혹시 add_replace 함수를 잘못 사용한걸까요?

 

영카트 5.4.5.4 버전이고, 위치는 extend 폴더 아래에 파일 하나 만들어서 작업하고 있습니다.

 

add_replace('get_board_db', 'get_custom_board_db', 10, 2);
function get_custom_board_db($args=array(), $bo_table) {
  global $g5;

  $key = md5($bo_table);

  $sql = " select * from {$g5['custom_board_table']} where bo_table = '$bo_table' ";
  $board = sql_fetch($sql);
  $board_defaults = array('bo_table'=>'', 'bo_skin'=>'', 'bo_mobile_skin'=>'', 'bo_upload_count' => 0, 'bo_use_dhtml_editor'=>'', 'bo_subject'=>'', 'bo_image_width'=>0);
  $cache[$key] = array_merge($board_defaults, (array) $board);

  return $cache[$key];
}

이 질문에 댓글 쓰기 :

답변 2

/bbs/memo.php를 예를 들면

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

이런 코드가 있습니다.

그러면 extend 등에

add_event('memo_list', 'g54_user_memo_insert', 10, 3);
function g54_user_memo_insert($kind, $unkind, $page=1){
    global $g5, $is_member, $member;
...}

으러 처리합니다.

 

제 사이트를 찾아 봐도, 최신 버전이 아닌지 

get_board_db 이벤트는  run_event()코드가 없네요.

 

코드는 아래 위치에 있습니다.

/common.php
if ($bo_table) {
    $board = get_board_db($bo_table, true);


/lib/get_data.lib.php
function get_board_db($bo_table, $is_cache=false){
...
if( !($cache[$key] = run_replace('get_board_db', array(), $bo_table)) ){
...

자답입니다.

 

코드 호출 타이밍 문제였던 것 같네요.

 

/common.php 에서

772 라인 $extend_file = array(); 부분을,

554 라인 위로 $write = array(); 부분 위로 올리니 함수가 호출되면서 데이터도 정상적으로 받아지긴 했는데, 다른 부분에서 오류가 발생해서 common.php 코드 전체적으로 확인해서 순서들을 조금 조정할 필요가 있을 것 같네요....

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 125,873 | RSS
QA 내용 검색

회원로그인

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