메뉴(부탁드립니다) 길지만 간단한 문제일지도ㅠ > 그누4 질문답변

그누4 질문답변

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

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

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

본문

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

?>

댓글 전체

sitemap.php
에서 $sub가 어떻게 만들어 지는지 알아야 되겠네요.

  <a href="<?=$g4[bbs_path]?>/board.php?bo_table=<?=$sub['table'][$i][$j]?>"><?=$icon?><?=$sub['subject'][$i][$j]?></a>&nbsp;&nbsp;

==>
  <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>&nbsp;&nbsp;
<a href="<?=$g4[bbs_path]?>/board.php?bo_table=<?=$sub['table'][$i][$j]?>"><?=$icon?><?=$sub['subject'][$i][$j]?></a>&nbsp;&nbsp;

엑스엠엘님 답변 감사합니다.

그런데 위를 아래처럼 바꾸고 또 뭘 해야할지 모르겠습니다. 일단 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>&nbsp;&nbsp;
아~ 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
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT