메뉴(부탁드립니다) 길지만 간단한 문제일지도ㅠ 정보
메뉴(부탁드립니다) 길지만 간단한 문제일지도ㅠ본문
첫번째 (sitemap.php)코드와 두번째 (fixing.lib.php )코드는 상단메뉴 파일로 한셋트입니다.
좌측 메뉴로 사용하는 세번째 파일을 보시면 게시판설정에서 bo_10에 입력된 주소가 링크 됩니다.
첫번째와 두번째를 수정하여 세번째처럼 bo_10에 입력된 주소가 링크되도록 수정하고 싶습니다.
두번째에서 sql에 bo_10 추가하고 첫번째에서 $bLink 달아 주면 될것 같은데 안되네요 ㅠㅠ
첫번째 (sitemap.php)//////////////////////////////////
<?
for($i=0; $i<$menu['count']; $i++){
?>
<div id='menu_<?=$g4_group[$i][gr_id]?>' class='sub_menu'>
<?
for($j=0; $j<$sub['count'][$i]; $j++){
if($j != $sub['count'][$i]-1){
$class = "sub_subject";
}else{
$class = "sub_last_subject";
}
if($sub['table'][$i][$j] == $bo_table){
$icon = "<img src='$sitemap_skin_path/img/icl1.gif' wspace=2 align=absmiddle>";
}else{
$icon = "<img src='$sitemap_skin_path/img/icl.gif' wspace=2 align=absmiddle>";
}
?>
<a href="<?=$g4[bbs_path]?>/board.php?bo_table=<?=$sub['table'][$i][$j]?>"><?=$icon?><?=$sub['subject'][$i][$j]?></a>
<?
if($gr_id == $menu['id'][$i]){
echo "<script type=\"text/javascript\">";
echo "layer_view('menu_{$menu['id'][$i]}', 'view', -20, -20);";
echo "</script>";
}
} ?>
</div>
<? } ?>
두번째 (fixing.lib.php )//////////////////////////////////////////////////
<?
// 보드 배열 생성
$g4_board = array();
//게시판의 설정값을 가져와 미리 저장한다.(이때 게시판리스트를 볼수있는 레벨이 회원레벨보다 높은다면 불러오지 않는다.)
$g4_board_select = "*";
if($member[mb_level] < 10)
$g4_board_where = "where bo_list_level <= '$member[mb_level]'";
$g4_board_sql = " select $g4_board_select from $g4[board_table] $g4_board_where order by bo_order_search, gr_id, bo_table ";
$g4_board_result = mysql_query($g4_board_sql);
for($i=0; $g4_board_row = mysql_fetch_array($g4_board_result); $i++){
$g4_board[$i] = $g4_board_row;
// 구룹목록을 불러 올때 필요한부분만 불러들이기 위함
$g4_bo_gr_id[$i] = $g4_board_row[gr_id];
// 최신들을 불러 올떄 필요한부분만 불러들이기 위함
$g4_board_table[$i] = $g4_board_row[bo_table];
}
// 구룹정보를 불러와 저장한다.
//중복배열 제거
$g4_gr_id = array_unique($g4_bo_gr_id);
$in=0;
for($i=0; $i<count($g4_bo_gr_id); $i++){
if($g4_gr_id[$i]){
if($in == 0) {
$g4_group_in = "'$g4_gr_id[$i]'";
$in++;
}else{
$g4_group_in = "$g4_group_in, '$g4_gr_id[$i]'";
}
}
}
// 보드구룹 배열 생성
$g4_group = array();
$g4_group_select = "gr_id, gr_subject, gr_admin, gr_use_access, gr_1, gr_2";
$g4_group_sql = " select $g4_group_select from $g4[group_table] where gr_id in ($g4_group_in) order by gr_1 asc ";
$g4_group_result = mysql_query($g4_group_sql);
for($i=0; $g4_group_row = mysql_fetch_array($g4_group_result); $i++){
$g4_group[$i] = $g4_group_row;
$g4_group_id[$i] = $g4_group_row[gr_id];
}
// 최신글정보를 불러와 저장한다.
//중복배열 제거
$g4_bo_table = array_unique($g4_board_table);
$in=0;
for($i=0; $i<count($g4_board_table); $i++){
if($g4_bo_table[$i]){
if($in == 0) {
$g4_table_in = "'$g4_bo_table[$i]'";
$in++;
}else{
$g4_table_in = "$g4_table_in, '$g4_bo_table[$i]'";
}
}
}
// 최근날자 구하기
$new_time = date("Y-m-d H:i:s", $g4['server_time'] - ($config[cf_new_del] * 86400));
// 최신글 목록 배열생성
$g4_new = array();//최신글저장소
$g4_new_select = '*';
$g4_new_query = sql_query(" select $g4_new_select from $g4[board_new_table] where bn_datetime >= '$new_time' and bo_table in ($g4_table_in) ");
for($i=0; $g4_new_row = sql_fetch_array($g4_new_query); $i++){
$g4_new[$i] = $g4_new_row;
$g4_new_bo_table[$i] = $g4_new_row[bo_table];
}
//최신글 목록 수
$g4_new[rows] = $i;
?>
세번째파일/////////////////////////////////////////////////
<?
$cells = 0;
//접근가능그룹 여분필드 1 순서로 추출
$sql = " SELECT a.gr_id, a.gr_subject, a.gr_use_access, b.mb_id FROM $g4[group_table] AS a LEFT JOIN $g4[group_member_table] AS b ON a.gr_id = b.gr_id WHERE (b.mb_id = '$member[mb_id]' AND a.gr_use_access = '1' ) OR a.gr_use_access = '0' ORDER BY a.gr_1";
// 제외그룹설정 root님
// html , banner , guest 라는 그룹은 제외시킴
$sql = " select * from $g4[group_table] where gr_id not in ('html', 'banner', 'guest') order by gr_1";
//$sql = " select gr_id, gr_subject from $g4[group_table] where gr_id not in ($except) order by gr_subject desc ";
$rst1 = sql_query($sql);
while ($row=sql_fetch_array($rst1)) {
$gLink = (!empty($row['gr_10']))?$row['gr_10']:$g4['bbs_path'].'/'.'group.php?gr_id=' .$row['gr_id'];//그룹링크 - 별도링크 필요하면 gr_10 필드에 전체 url 입력
if($cells%100==0)
echo "</tr><tr>";
//echo "<td width='17%' valign='top' align='center'>";
echo "<td valign='top' align='center'>";
echo "<table cellpadding='0' cellspacing='0' border='0'>";
echo "<tr><td height='25'>";
echo "<strong><a href='" . $gLink . "' target='$row[gr_9]'>" . $row[gr_subject] . "</a></strong></td></tr>"; // 그룹명 출력
//게시판 권한 설정 적용, 전체 검색사용에 체크된 게시판만 검색순서에 따라 추출
$sql2 = " select bo_subject, bo_table, bo_10 from $g4[board_table] where (bo_list_level <= $member[mb_level]) and (gr_id = '$row[gr_id]') and bo_use_search = '1' order by bo_order_search";
$resultb = sql_query($sql2);
for ($j=0; $rowb=sql_fetch_array($resultb); $j++) {
$bSubject = ($rowb['bo_table'] == $bo_table)?"<span style='font-weight:bold;color:#222222;'>".cut_str(get_text($rowb['bo_subject']),20,"")."</span>":"<span style='color:#222222;'>".cut_str(get_text($rowb['bo_subject']), 20,"")."</span>";//게시판제목 - 해당게시판은 #222222 나머지는 #222222
$bLink = (!empty($rowb['bo_10']))?$rowb['bo_10']:$g4['bbs_path'].'/'.'board.php?bo_table=' .$rowb['bo_table'];//게시판링크 - 별도링크 필요하면 bo_10 필드에 전체 url 입력
$cells++;
echo "<tr><td height='20'><a href='" . $bLink . "'>" . $bSubject . "</a><br/></td>";
//echo "<tr><td height='1' bgcolor='#E9E9E9'></td></tr>";
}
echo "<tr><td height='5'></td></tr></table>";
echo "</td>";
}
?>
댓글 전체

에서 $sub가 어떻게 만들어 지는지 알아야 되겠네요.
<a href="<?=$g4[bbs_path]?>/board.php?bo_table=<?=$sub['table'][$i][$j]?>"><?=$icon?><?=$sub['subject'][$i][$j]?></a>
==>
<a href="<?
echo (!empty($rowb['bo_10']))?$rowb['bo_10']:$g4['bbs_path'].'/'.'board.php?bo_table=' .$rowb['bo_table'];//게시판링크 - 별도링크 필요하면 bo_10 필드에 전체 url 입력
여기서 $rowb대신 $sub를 쓰고 배열 인덱스를 수정하면 될 겁니다.
?>/board.php?bo_table=<?=$sub['table'][$i][$j]?>"><?=$icon?><?=$sub['subject'][$i][$j]?></a>
엑스엠엘님 답변 감사합니다.
그런데 위를 아래처럼 바꾸고 또 뭘 해야할지 모르겠습니다. 일단 bo_10이 안먹히고 게시판 주소로 되네요.
배열 인덱스를 수정하는건 어떻게 하죠? ㅎㅎ;;
<a href="<? echo (!empty($sub['bo_10']))?$sub['bo_10']:$g4['bbs_path'].'/'.'board.php?bo_table=' .$sub['table'][$i][$j];//게시판링크 - 별도링크 필요하면 bo_10 필드에 전체 url 입력?>"><?=$icon?><?=$sub['subject'][$i][$j]?></a>
//서브메뉴 불러오기 <<<<<<<<< 여기에
$sub['bo_10'] ~~~~ 이런식으로 적어야 할려나요? ㅠㅠ
<?
if (!defined('_GNUBOARD_')) exit;
// 사이트맵
function sitemap($skin_dir="")
{
global $g4, $g4_board, $g4_group, $bo_table, $g4_group_id, $gr_id, $g4_board_table, $g4_new, $g4_new_bo_table;
if ($skin_dir)
$sitemap_skin_path = "$g4[path]/skin/sitemap/$skin_dir";
else
$sitemap_skin_path = "$g4[path]/skin/sitemap/basic";
//구룹메뉴에 대한 링크 생성
for ($i=0; $i<count($g4_group); $i++){
// 구룹메뉴제목
$menu['subject'][$i] = $g4_group[$i][gr_subject];
// 구룹메뉴 아이디
$menu['id'][$i] = $g4_group[$i][gr_id];
//구룹별 서브메뉴 카운트 생성
$sub['count'][$i] = 0;
}
//메뉴 카운트
$menu['count'] = $i;
// 새글 카운트
if($g4_new_bo_table)
$g4_new_table = array_count_values ($g4_new_bo_table);
//서브메뉴 불러오기
for ($i=0; $i<count($g4_board); $i++) {
// 테이블마다 구룹의 키값을 지정하기 위해 키값을 빼온다
$group_id_key = array_search($g4_board[$i][gr_id], $g4_group_id);
$gr_num = $sub['count'][$group_id_key];
// 서브메뉴 링크
$sub['href'][$group_id_key][$gr_num] = "$g4[bbs_path]/board.php?bo_table={$g4_board[$i][bo_table]}";
// 서브메뉴 제목
$sub['subject'][$group_id_key][$gr_num] = $g4_board[$i][bo_subject];
// 테이블이름
$sub['table'][$group_id_key][$gr_num] = $g4_board[$i][bo_table];
// 테이블별 총개시물수
$sub['total'][$group_id_key][$gr_num] = $g4_board[$i][bo_count_write];
//테이블별 세글카운트
$sub['new'][$group_id_key][$gr_num] = $g4_new_table[$g4_board[$i][bo_table]];
//구룹별 서브메뉴 수
$sub['count'][$group_id_key]++;
}
//테이블값으로 구룹아이디구하기
if($bo_table)
$gr_id = $g4_board[array_search($bo_table, $g4_board_table)][gr_id];
if(count($g4_board)){
// 스킨 불러오기
include "$sitemap_skin_path/sitemap.php";
}else{
echo "게시판을 생성해주세요.";
}
}
?>

단순히 메뉴만 이용할 거라면...
세번째 파일처럼 bo_10 링크를 이용하는 상단 메뉴가 있는데요.
올리신 세번째 파일 소스와 같은 소스를 사용하는 셑트 메뉴입니다만...
현재의 상단 메뉴에서 특별한 기능을 이용하시려는 거면 죄송...
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=76226