[불여우 문제점 보완]같은 그룹내의 게시판을 메뉴화하고 서브카테고리를 서브메뉴처럼 뿌리기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

[불여우 문제점 보완]같은 그룹내의 게시판을 메뉴화하고 서브카테고리를 서브메뉴처럼 뿌리기 정보

[불여우 문제점 보완]같은 그룹내의 게시판을 메뉴화하고 서브카테고리를 서브메뉴처럼 뿌리기

본문

제목대로 입니다^^
아래를 복사해서 저장후 적당한 곳에 include "파일명"; 해서 사용하시면 됩니다.

<?
$s_gr_id = "표시할 그룹명"; //그룹명을 적으세요

    $sql = " select * from $g4[board_table]
              where gr_id = '$s_gr_id'
                and bo_list_level <= '$member[mb_level]'
              order by bo_table ";
    $result = sql_query($sql);
$smcnt = mysql_num_rows($result);
?>

<script language="javascript">
<!--       
    function clickshow(num) {
        for (i=0;i < <?=$smcnt?>;i++) {
            menu=eval("document.all.block"+i+".style");
                if (num==i)    {
                    if (menu.display=="block") {
                        menu.display="none";
                    } else {
                        menu.display="block";
                    }
                } else {
                    menu.display="none";
                }
            }
    }
//-->
</script>
    <table width="90%" border="0" cellspacing="0" cellpadding="2">
    <?
for ($i=0; $row=sql_fetch_array($result); $i++) {
$bb = "";
$bbb = "";
if($row[bo_table] == $bo_table){
$bb="<strong>";
$bbb="</strong>";
}
?>
    <tr>
    <td width="15%" align="right" height=25><img src="<?=$g4[path]?>/images/leftmenu_icon.gif" width="9" height="9"></td>
    <td width="85%" align="left"><a href="<?=$g4[path]?>/bbs/board.php?bo_table=<?=$row[bo_table]?>"><?=$bb?><?=$row[bo_subject]?><?=$bbb?></a>
<? if($row[bo_use_category] == "1"){?><a href="javascript:clickshow(<?=$i?>);">+</a><?}?></td>
    </tr>
    <tr align="center">
<td colspan=2 height=1 bgcolor=#e7e7e7></td>
    </tr>
<tr id=block<?=$i?> style="DISPLAY: <?=$bo_table == $row[bo_table]? 'block':'none'; ?>;">
<td colspan=2>
<? if($row[bo_use_category] == "1"){?>
<table width="140" align="center" border="0" cellspacing="0" cellpadding="0" bgcolor="#ffffff">
<?
$caname = explode("|",$row[bo_category_list]);
for($j=0; $j < count($caname); $j++){
$cc = "";
$ccc = "";
if($caname[$j] == $sca){
$cc="<strong>";
$ccc="</strong>";
}
if($caname[$j]){
echo "<tr><td width=20 height=20 align=center><img src='".$g4[path]."/encla/images/red_icon.gif' width='8' height='8'></td><td>";
echo "<a href='".$g4[path]."/bbs/board.php?bo_table=".$row[bo_table]."&sca=".$caname[$j]."'>".$cc."".$caname[$j]."".$ccc."</a>";
echo "</td></tr>";
}
}
?>
</table>
</td>
</tr>
<?}?>
    <?}?>
    </table>

이 소스코드중 불여우에서는 서브메뉴 "+"를 클릭시 테이블이 계속 늘어나는(?)[나스카님의 표현으로 튕기는 현상] 문제가 있어서 검토해 본바... 테그를 조정해야하는 문제가 있습니다.
정확한 방법인지는 모르겠으나 편법으로 수정해봤는데....익스와 불여우에서 이상없이 작동하는 군요
문제점 지적해 주신 나스카님께 감사드리고 제한없이 아무나 수정하셔서 사용하셔도 됩니다.
좋은 하루되시고 위의 원본과 아래 수정소스를 같이 올려드립니다.
비교해 보시면 아시리라 봅니다. 좋은 하루되세요^^

수정 후 소스

<?
//  최신글
    $sql = " select * from $g4[board_table]
              where gr_id = '$s_gr_id'
                and bo_list_level <= '$member[mb_level]'
              order by bo_table ";
    $result = sql_query($sql);
$smcnt = mysql_num_rows($result);
?>

<script language="javascript">
<!--       
    function clickshow(num) {
        for (i=0;i < <?=$smcnt?>;i++) {
            menu=eval("document.getElementById('block"+i+"').style");
                if (num==i)    {
                    if (menu.display=="block") {
                        menu.display="none";
                    } else {
                        menu.display="block";
                    }
                } else {
                    menu.display="none";
                }
            }
    }
//-->
</script>
    <table width="90%" border="0" cellspacing="0" cellpadding="2">
    <?
for ($i=0; $row=sql_fetch_array($result); $i++) {
$bb = "";
$bbb = "";
if($row[bo_table] == $bo_table){
$bb="<strong>";
$bbb="</strong>";
}
?>
    <tr>
    <td height="25"><img src="<?=$g4[path]?>/images/leftmenu_icon.gif" width="9" height="9" align="absmiddle">
    <a href="<?=$g4[path]?>/bbs/board.php?bo_table=<?=$row[bo_table]?>"><?=$bb?><?=$row[bo_subject]?><?=$bbb?></a>
<? if($row[bo_use_category] == "1"){?><a href="javascript:clickshow(<?=$i?>);">+</a><?}?></td>
</tr>
    <tr align="center">
<td height="1" bgcolor="#e7e7e7"></td>
    </tr>
<tr><td colspan="2" height="0">
<p id="block<?=$i?>" style="display:<?=$bo_table == $row[bo_table]? 'block':'none'; ?>;">
<? if($row[bo_use_category] == "1"){?>
<table width="140" align="center" border="0" cellspacing="0" cellpadding="0" bgcolor="#ffffff">
<?
$caname = explode("|",$row[bo_category_list]);
for($j=0; $j < count($caname); $j++){
$cc = "";
$ccc = "";
if($caname[$j] == $sca){
$cc="<strong>";
$ccc="</strong>";
}
if($caname[$j]){
echo "<tr><td width='20' height='20' align='center'><img src='".$g4[path]."/encla/images/red_icon.gif' width='8' height='8'></td><td>";
echo "<a href='".$g4[path]."/bbs/board.php?bo_table=".$row[bo_table]."&sca=".$caname[$j]."'>".$cc."".$caname[$j]."".$ccc."</a>";
echo "</td></tr>";
}
}
?>
</table>
</p>
</td>
    </tr>
<?}?>
    <?}?>
    </table> 

추신 : pearly 님이 지적하신

$s_gr_id = "표시할 그룹명"; //그룹명을 적으세요
그냥 $gr_id를 그대로.. 넣어도 좋을듯 한데... 굳이 수작업으로 넣도록 하신건 어떤의미신지?

이부분은 입맛에 맛게 수정해서 사용하세요...전 이유가 있어서 그렇게 사용하는 겁니다.^^
추천
3
  • 복사

댓글 17개

훌륭하십니다.
여기에..
$s_gr_id = "표시할 그룹명"; //그룹명을 적으세요

그냥 $gr_id를 그대로.. 넣어도 좋을듯 한데... 굳이 수작업으로 넣도록 하신건 어떤의미신지?
아래는 $gr_id를 그대로 대입한것입니다
http://tjdgud.co.kr/gn/bbs/board.php?bo_table=gnboard

여하튼 감사합니다. 디자인을 좀 흉내를 내서.. 그룹에 게시판형태로 사용해도 될런지요..
^^;;
멋진팁입니다.
속도나 기능적인 측면에서 뛰어난 기능을 보임에도 불구하고,
브라우저의 특성을 심하게 타는 단점이 보입니다.

FF ; 하위메뉴 -게시판 및 카테고리-가 사정없이 튀어버리는 점,
상위 및 하위 메뉴 위치가 꼬이는 점이 있습니다.
아무데서나 마음대로 사용하셔도 되구여...
버그는 저는 없어서 확인을 못했는데...
있다면 환경을 알려주시면....수정해서 올려드리죠^^
좋은 하루들 되세요...
상단 코멘트에서 기존에 기재했던 바,
웹브라우저의 특성을 탑니다.
=======================================
FireFox ; 하위메뉴 -게시판 및 카테고리-가 사정없이 튀어버리는 점,
상위 및 하위 메뉴 위치가 흐트러 지는 점이 있습니다.
=======================================
고생하셨습니다.
FF 테스트에 관한 건은,
M$를 비롯해 멍멍이와 여시가
서로 치고 받는 상황이라서,
잠시 뒤로 미루겠습니다.
© SIRSOFT
현재 페이지 제일 처음으로