본문 바로가기
Program/GNUBOARD

[홈페이지만들기/쇼핑몰만들기] 그누보드5(gnuboard5) - 메뉴설정시 게시판 정렬 동기화 시키기

by 너부리공작소 2017. 1. 20.
반응형

[홈페이지만들기/쇼핑몰만들기] 그누보드5(gnuboard5) - 메뉴설정시 게시판 정렬 동기화 시키기

[홈페이지만들기/쇼핑몰만들기] 그누보드5(gnuboard5) - 메뉴설정시 게시판 정렬 동기화 시키기

* [홈페이지만들기/쇼핑몰만들기] 그누보드(gnuboard) - 메뉴설정시 게시판 정렬 동기화 시키기 *

 

[홈페이지만들기/쇼핑몰만들기] 그누보드5의 경우 메뉴관리를 개별로 설정할수가 있다. 

자동으로 생성되는 시스템이 아니다보니 마음대로 설정이 가능한 장점이 있지만,

게시판쪽에서 변경을 하게 될경우 메뉴쪽에는 적용이 안되는 상황이 발생하기도 한다.

이런 불편한점을 해소하고자 약간의 프로그램작업을 진행했다.

아래 소스를 수정해서 관리자폴더내의 menu_list_update.php 제일하단, goto_url 위에 적어주면 된다.

설명은 주석글을 참조하면 된다.

 

//=> 전체게시판 리스트를 불러온다.

$que = "select * from {$g5['board_table']} order by gr_id"; 

$data = sql_query($que);

for ($i=0; $row=sql_fetch_array($data); $i++) {

 

//=> 불러온 게시판리스트를 기반으로 메뉴테이블에서 일치하는 정보를 찾는다.

$search_str = "/bbs/board.php?bo_table=".$row['bo_table'];

 //=> 검색할 키워드, 게시판을 메뉴로 한 경우에 일치하는 정보를 가져온다.

$get_que = "select * from {$g5['menu_table']} where INSTR(me_link, '$search_str') and LENGTH(me_code) = '4'";

//=> me_link 항목에서 검색키워드를 찾는다. 그룹메뉴를 사용했고, 하위게시판 정렬을 바꾸기 위해 me_code 가 4자리인 항목만 추출한다.

$grow = sql_fetch($get_que);

$bo_order = ($grow['me_order']+1).$grow['me_id']; //=> 불러온 순위를 토대로 정렬하기 위해 임의의 순위를 만들어준다. me_order와 me_id 를 합쳐준다.

$gr_id = $row['gr_id'];

 

$arid = $bo_order."^^".$row[bo_table]; //=> 변수를 배열로 만들기 위해 임의의 변수로 선언. 순위값과 테이블명을 조합함

 

$nb_bbsarray[$gr_id][] = $arid; //=> 배열로 선언

 

$nb_grid[] = $row[gr_id]; //=> 여기있는 배열은 테이블그룹을 반복해서 순위를 적용하기 위해 선언하는 배열. 그룹아이디를 배열로 묶어준다.

 

}

 

$nb_grid2 = array_unique($nb_grid); //=> 위에서 선언해준 그룹아이디 배열을 unique 함수를 이용해 정렬해준다.

 

//=> 중복된 배열에서 중복값 제거하기

for($ab = 0;$ab<sizeof($nb_grid);$ab++){

if ($nb_grid2[$ab] !=''){$ngrid[] = "$nb_grid2[$ab]";}

}

 

 

//=> 중복이 제거된 그룹아이디를 바탕으로 반복문 실행

for($ii=0; $ii<count($ngrid); $ii++) {

$grid2 = $ngrid[$ii];  //=> 멀티배열을 활용하기 위해 임의의 변수를 선언했다.

$bbssort = $nb_bbsarray[$grid2]; 

 

 

sort($bbssort); //=> 배열을 정렬시킴. 낮은수가 먼저 나온다.

foreach($bbssort as $key=>$val) {

 

$br_exp = explode("^^",$val); //=> 배열을 반복시켜 나온 val 값을 순위값과 테이블명으로 분리

if($br_exp[1] !='') { //=> 테이블명이 있는 경우 아래 쿼리문 실행. 

$upque = "update {$g5['board_table']} set bo_order = '$key' where bo_table = '$br_exp[1]' ";

sql_query($upque);

}

 

 

}

 

}

 

 

반응형

댓글