hook 을 이용해서 특정게시판에서만 글 작성 후 목록으로 이동
본문
제목 그대로 특정 게시판에서 글 작성 시 view 페이지가 아닌 list 페이지로 이동하게 할 수 있나요...??
/bbs/write_update.php
/bbs/write_update.php
$redirect_url = run_replace('write_update_move_url', short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.$qstr), $board, $wr_id, $w, $qstr, $file_upload_msg);
run_event('write_update_after', $board, $wr_id, $w, $qstr, $redirect_url);
하단 내용중 redirect_url 과 write_update_after 가 있길래, 혹시나 add_event 를 이용해서 해보려고 합니다...
다른 글들을 참고해서 스킨에 write_update.skin.tail.php 에
<?php
if( !defined('_GNUBOARD_') ) exit;
$redirect_url = run_replace('write_update_move_url', short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table'.$bo_table.$qstr), $board, $wr_id, $w, $qstr, $file_upload_msg);
이렇게 추가를 해봤는데 이동이 안됩니다... write_update.tail.skin.php 에서는 goto_url 로만 넘길 수 있는 것 같아요;;
hook 으로 처리를 해보려고해서 위 파일 내용은 주석처리한 후에
extend에 파일하나 생성해서
add_event('write_update_after', 'charter_write_after', 10, 5);
function charter_write_after($board, $wr_id, $w, $qstr, $redirect_url) {
if( $board['gr_id'] != 'charter' ) exit;
$redirect_url = run_replace('write_update_move_url', short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.$qstr), $board, $wr_id, $w, $qstr, $file_upload_msg);
return $redirect_url;
}
이렇게 해봤는데 계속 view 페이지로 갑니다....;;
훅으로 글 작성 후 리스트로 가게할 수 있나요??
!-->!-->!-->답변 5
아 저 시간이 없어서 일단 그룹 까진 테스트 못했습니다.
아래 코드 쓰시면 네이버로 이동 되는 훅 사용 할 수 있습니다만, 그건 테스트이고
원하는 주소로 변경하세요
add_replace('write_update_move_url', 'charter_write_after', 10, 5);
function charter_write_after($board, $wr_id, $w, $qstr, $redirect_url) {
$redirect_url = 'https://www.naver.com';
return $redirect_url;
}
replace 이벤트이니 add_replace 이벤트 훅을 사용해야 합니다.
참고로 $board 하시면 원본 주소가 나올꺼에요
!-->맨 마지막 코드에서
return $redirect_url; 을 하지마시고
Header('Location:'.$redirect_url);
이런식으로 해보세요`~
if( $board['gr_id'] != 'charter' ) 를
if( $board['gr_id'] == 'charter' ) 로 바꾸고 리턴 안하고 goto_url 함수를 이용해서 페이지 이동을 하시면 되시지 않나요?
어떤 부분이 안되시는걸까요? 해당 함수롤 사용 안하시는 이유가 있으신가요?
아래 코드로 변경 하시면 정상 동작 되실꺼에요
<?php
if( !defined('_GNUBOARD_') ) exit;
add_event('write_update_after', 'charter_write_after', 10, 5);
function charter_write_after($board, $wr_id, $w, $qstr, $redirect_url) {
global $config;
$gr_id = $board['gr_id'];
$bo_table = $board['bo_table'];
if($gr_id !== 'charter') {
$redirect_url = G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table;
}
goto_url($redirect_url);
}
!-->
답변을 작성하시기 전에 로그인 해주세요.