[HOOK] add_replace 중 array 값은 어떻게 받아오나요?

[HOOK] add_replace 중 array 값은 어떻게 받아오나요?

QA

[HOOK] add_replace 중 array 값은 어떻게 받아오나요?

답변 2

본문

게시물 보기에서 썸네일의 샤픈 값을 hook을 이용해 일괄로 변경하려고 합니다.

 

thumbnail.lib.php 58라인의


    if( $thumbnail_info = run_replace('get_list_thumbnail_info', array(), array('bo_table'=>$bo_table, 'wr_id'=>$wr_id, 'data_path'=>$data_path, 'edt'=>$edt, 'filename'=>$filename, 'filepath'=>$filepath, 'thumb_width'=>$thumb_width, 'thumb_height'=>$thumb_height, 'is_create'=>$is_create, 'is_crop'=>$is_crop, 'crop_mode'=>$crop_mode, 'is_sharpen'=>$is_sharpen, 'um_value'=>$um_value)) ){
        return $thumbnail_info;
    }

를 run_replace로 변경하기 위해

 

우선 extend 폴더에 파일을 만들어


add_replace('get_list_thumbnail_info', 'sharpen_replace', 10);

를 넣어두고 그 위에

 


function sharpen_replace( array(), array('bo_table'=>$bo_table, 'wr_id'=>$wr_id, 'data_path'=>$data_path, 'edt'=>$edt, 'filename'=>$filename, 'filepath'=>$filepath, 'thumb_width'=>$thumb_width, 'thumb_height'=>$thumb_height, 'is_create'=>$is_create, 'is_crop'=>$is_crop, 'crop_mode'=>$crop_mode, 'is_sharpen'=>$is_sharpen, 'um_value'=>$um_value) )
{
}

이렇게 넣었더니

Parse error: syntax error, unexpected token "(", expecting variable in

에러가 나오네요.

해당 라인은 array가 삽입된 줄입니다.

아직 어떻게 $is_sharpen 값과 $um_value 을 변경해야 하는지도 모르고 있는데

첫줄부터 막히네요 ㅎㅎ

 

괄호가 안닫힌 문제는 아닌 것 같은데 문법적으로 어떻게 잘못되었는지 이해가 되지 않네요.

 

고수님들의 도움 부탁드립니다.

 

이 질문에 댓글 쓰기 :

답변 2

assign는 array를 선언을 할수 있지만.. assign array안쪽에 변수선언은 assign에서 사용하실수 없네요..

따라서 아래와 같이 2가 array를 하셔서

 

보낼때

 

$test2 같은경우 array 에 값을 할당하셔서 보내주시면될꺼 같네요.

 

 

 

 


function sharpen_replace( $test1=array(), $test2=array() )
{
   if($test2) {
       $bo_table ="test";
       $wr_1 ="test";     // 값이 없이 넘어왔을경우 이런 if조건을 태워서..값은 셋해보시면될꺼 같아요.

       $test2=array('bo_table'=>$bo_table, 'wr_id'=>$wr_id, 'data_path'=>$data_path, 'edt'=>$edt, 'filename'=>$filename, 'filepath'=>$filepath, 'thumb_width'=>$thumb_width, 'thumb_height'=>$thumb_height, 'is_create'=>$is_create, 'is_crop'=>$is_crop, 'crop_mode'=>$crop_mode, 'is_sharpen'=>$is_sharpen, 'um_value'=>$um_value);
   }
}
 

소중한 코드 감사합니다.
말씀하신 대로 배열로 넘어왔으니 일단 배열로 선언하고 그 다음에 할당을 해야하는군요.
일단 오류 없이 여기까지 진행이 잘 됩니다.
다음은 is_sharpen 값과 um_value 값만 고정적으로 변경되도록 지정해서 return으로 날려주는 일만 남았네요.
큰 산 하나 넘었으니 작은 산은 또 어떻게 넘어가봐야겠습니다.
귀중한 시간 내주셔서 감사합니다~

assign을 하는 부분이 array를 선언하셨는데요..

이렇게 하시면 에러 나구요.~

 

 

$test1= array(), 

$test2= array('bo_table'=>$bo_table, 'wr_id'=>$wr_id, 'data_path'=>$data_path, 'edt'=>$edt, 'filename'=>$filename, 'filepath'=>$filepath, 'thumb_width'=>$thumb_width, 'thumb_height'=>$thumb_height, 'is_create'=>$is_create, 'is_crop'=>$is_crop, 'crop_mode'=>$crop_mode, 'is_sharpen'=>$is_sharpen, 'um_value'=>$um_value

 

이런식으로 해보시면 어떨까요?

변수값에 초기값을 넣어주면  assign을 하시면될꺼 같은데요.

값을 assign하는부분은 그냥 array만 넣게 되니 시스템은 어떤값을 처리해햐할지 모르기 때문에 에러를 내는거죠.

 

답변 감사합니다.
우선 제가 hook에 대한 지식이 짧아 떠먹여줘도 이해 못하는 점 죄송합니다. ^^
말씀하신 내용이


function sharpen_replace( $test1, $test2 )
{
	$test1= array();
	$test2= array('bo_table'=>$bo_table, 'wr_id'=>$wr_id, 'data_path'=>$data_path, 'edt'=>$edt, 'filename'=>$filename, 'filepath'=>$filepath, 'thumb_width'=>$thumb_width, 'thumb_height'=>$thumb_height, 'is_create'=>$is_create, 'is_crop'=>$is_crop, 'crop_mode'=>$crop_mode, 'is_sharpen'=>$is_sharpen, 'um_value'=>$um_value);
}

를 말씀하시는 건가요?

이렇게 하면
Fatal error: Uncaught ArgumentCountError: Too few arguments to function sharpen_replace()
에러가 나오네요.
제가 이해를 잘 못했나봅니다.

thumbnail.lib.php 에서 run_replace('get_list_thumbnail_info'
부분이 array가 두개 들어있던데 이 두개가 모두 전해주는 인수는 아니고 여러개의 값을 array로 묶어 인수를 만드는게 아니었나봅니다.

감히 죄송하지만 function sharpen_replace() {} 를 어떻게 완성해야 하는지 예제를 보여주실 수 있을까요?

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #hook ×
전체 32
© SIRSOFT
현재 페이지 제일 처음으로