db연동 최신글 추출 질문드립니다.
본문
그누보드 5.2.9.8.4버전과 아미나빌더1.7.26 버전 사용중입니다.
현재 서버에 A사이트와 B사이트를 운영중입니다.
A사이트의 게시판과 회원정보를 B사이트에서 data/dbconfig.php 을 수정하여 A사이트 db와 연동시켜서 B사이트에서 사용중입니다.
data/dbconfig.php db연동은 아래처럼 하였습니다.
$g5['write_prefix'] = G5_TABLE_PREFIX.'write_';
if($bo_table == 'notice') // notice 게시판에 대해 g5사용
$g5['write_prefix'] = 'TEST_DB.g5_write_';
.
.
.
B사이트에서 A사이트의 게시판과 회원정보는 다 정상적으로 연동이 되는데
B사이트의 메인화면에서 최신글이 나오질않습니다.
B사이트에는 - g6 접두사로 설치하였습니다.
B사이트
/lib/apms.lib.php 에서
apms_board_rows 를 복사하여 apms_board_rows2 하단에 추가하여 테이블 처리 관련 부분
$sql_common = "from TEST_DB.g5_board_new where $sql_mode2 $sql_mode3 $sql_find $sql_term $sql_main $sql_image $sql_mb $sql_vid $sql_where";
$tmp_write_table = TEST_DB.g5_write_ . $row['bo_table'];
으로 수정 하였습니다.
최신글 위젯의 widget.rows.php 상단에서
// $list = apms_board_rows($wset);
$list = apms_board_rows2($wset);
이렇게 바꿔놨습니다만 최신글 적용이 되질않내요.
어디를 놓친걸까요?
혹시나 작업해주실분 계시면 따로 쪽지주시면 사례비 드리겠습니다.
답변 2
A와 B 사이트의 DB 가 다를 텐데요.
dbconf.php 파일을 A 사이트의 내용으로 B 사이트를 전부 바꿨다면 최신글도 전부 같이 나올 것으로 생각됩니다.
또한 최신글 가져오는 곳( 주로 index.php)의 query문을 확인해볼 필요가 있습니다.
index.php에 있는 쿼리에는
B site의 latest(스킨, 게시판아이디, 출력라인, 글자수); 로 되어있는 것의 게시판아이디는 A site의 것을 해야합니다. 그리고 그위에 있는 쿼리 에서 from 에 관련된 것이
from `{$g5['board_table']}` 또는 from `{$g6['board_table']}`
으로 되어있는데 여기의 정보는 B site의 것을 의미합니다.
따라서 site A 의 것을 가져오기 위해서는 A site의 DB명 . A site의 테이블명 으로 작성 하시면 될 것 같습니다.
즉 기존에 $g5['board_table'] 으로 표현되는 것을 AsiteDB명.g5_board 로 바꿔서 해보시기 바랍니다. 각 board의 환경에 대한 것은 g5_board에 있습니다.
제 생각에는 latest 부분에서 B site에 있는 board 를 참조하기 때문에 못가져오는 것 같습니다.
그리고 추가로 lib에 있는 latest.lib.php에도 board_table에서 읽어오는 쿼리가 있습니다.
그리고 테스트 하시기전에 캐쉬부분을 삭제하시기 바랍니다
참고로 대부분 latest관련 내용은 theme설정의 되어있는경우
~/theme/basic/index.php 또는 ~/index.php 에 있습니다.