p

메뉴(부탁드립니다) 길지만 간단한 문제일지도ㅠ

첫번째 (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>"; 
}

?>

|

댓글 5개

sitemap.php
에서 $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>  
<a href="<?=$g4[bbs_path]?>/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>  
아래 sitemap.lib.php 중
//서브메뉴 불러오기 <<<<<<<<< 여기에
$sub['bo_10'] ~~~~ 이런식으로 적어야 할려나요? ㅠㅠ
아~ sitemap.lib.php 파일 하나가 더 있네요.

<?
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
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
16년 전 조회 5,596
16년 전 조회 1,055
16년 전 조회 954
16년 전 조회 3,089
16년 전 조회 833
16년 전 조회 1,005
16년 전 조회 984
16년 전 조회 814
16년 전 조회 779
16년 전 조회 1,582
16년 전 조회 981
16년 전 조회 807
16년 전 조회 1,202
16년 전 조회 2,167
16년 전 조회 870
16년 전 조회 1,540
16년 전 조회 851
16년 전 조회 986
16년 전 조회 983
16년 전 조회 988