그누보드5 측면 그룹메뉴(g5 메뉴기능 사용) > 그누보드5 스킨

그누보드5 스킨

좋은 댓글과 좋아요는 제작자에게 큰힘이 됩니다.

그누보드5 측면 그룹메뉴(g5 메뉴기능 사용) 정보

레이아웃 그누보드5 측면 그룹메뉴(g5 메뉴기능 사용)

첨부파일

측면 그룹메뉴 v2.1.zip (7.1K) 1178회 다운로드 2014-07-04 09:04:28

본문

[ 추가 업데이트 사항 2014.07.02 - 소리틀님 요청사항 ]

- 메뉴 link 주소에 파라미터가 없는 경우 메뉴이동시 오류 발생처리
  -> 일단 파라미터가 있는 경우 메뉴코드 작성시 "&"
      없는 경우 메뉴코드 작성시 "?"
  -> 기존에 me_code 파리미터를 바로 사용하던 부분을 qstr2 변수를 이용하였습니다.
      적용방법에 head파일 수정사항 참조하세요
※ 기존에 다운 받으신분들은 다시 받아서 적용해주시면 됩니다.
    단, 기존 운영중인 사이트는 head.php 파일의 경우 아래 소스를 보시고 수정해주세요~




예전에 측면그룹메뉴 스킨을 제작해서 올린적이 있는데
그누보드5가 나날이 발전해가면서 메뉴설정 기능이 추가되었더라구요.ㅠㅠ
(난 왜 몰랐지..ㅠㅠ)

당시 스킨은 게시판으로만 구성된 메뉴를 이용할 경우 사용이 가능한 스킨이라..
아무래도 자체 메뉴설정 기능을 이용한 스킨이 필요할 듯하여
그누보드5에 맞는 측면 메뉴 스킨을 제작해서 다시 올려드립니다.

단, 그누보드5 메뉴기능에 현재 메뉴ID를 가져오는 부분이 없어
head.php 파일의 메뉴 조회부분을 좀 수정해야 합니다.
사정상 head.php 파일 수정이 어려우시거나 힘드신분은 적용하시지 않는 편이 좋습니다.
head.php파일을 수정하지 않는 분은 적용하셔도 서브화면에서 표시되지 않습니다.
사용여부는 회원 여러분 마음이오니 참고하십시요~

참고로 스킨UI 부분은 문태부님이 작업하신 sir스킨을 참고하였습니다.
문태부님 감사~^^*

[스킨설명]

측면 그룹메뉴 스킨입니다.
그누보드5 자체 메뉴설정기능에서 메뉴를 추가할 경우 작동합니다.

[파일구성]

/extend/menu.extend.php 
/skin/groupmenu/sir/groupmenu.skin.php
/skin/groupmenu/sir/style.css
/head.php -> 해당파일은 참고용입니다.

※ 기존에 lib로 추가하던 파일을 extend로 옮겼습니다.
    이유는 현재 선택된 메뉴에 대한 코드를 설정하기 위함.

[적용방법]

첨부파일을 다운받아 압축을 풀고 그누보드에 업로드하세요~
※ 처음 그누보드를 설치하신 분은 head.php파일도 업로드 하시고
    사용 중인 홈페이지인 경우 head.php 수정을 권해드립니다.

<< head.php파일 수정사항 >>

1. 메뉴 링크에 메뉴코드 파라미터 추가
  - 추가부분 하단 소스 참조

    <nav id="gnb">
        <h2>메인메뉴</h2>
        <ul id="gnb_1dul">
            <?php
            $sql = " select *
                        from {$g5['menu_table']}
                        where me_use = '1'
                          and length(me_code) = '2'
                        order by me_order, me_id ";
            $result = sql_query($sql, false);
            $gnb_zindex = 999; // gnb_1dli z-index 값 설정용

            for ($i=0; $row=sql_fetch_array($result); $i++) {
				// link주소에 파라미터가 있는 경우
				if(strstr($row['me_link'], ".php?")) 		
					$qstr2 = "&me_code=".$row['me_code'];
				// link주소에 파라미터가 없는 경우
				else
					$qstr2 = "?me_code=".$row['me_code'];
            ?>
            <li class="gnb_1dli" style="z-index:<?php echo $gnb_zindex--; ?>">
                <a href="<?php echo $row['me_link']; ?><?php echo $qstr2; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_1da"><?php echo $row['me_name'] ?></a>
                <?php
                $sql2 = " select *
                            from {$g5['menu_table']}
                            where me_use = '1'
                              and length(me_code) = '4'
                              and substring(me_code, 1, 2) = '{$row['me_code']}'
                            order by me_order, me_id ";
                $result2 = sql_query($sql2);

                for ($k=0; $row2=sql_fetch_array($result2); $k++) {
					// link주소에 파라미터가 있는 경우
					if(strstr($row2['me_link'], ".php?")) 		
						$qstr2 = "&me_code=".$row2['me_code'];
					// link주소에 파라미터가 없는 경우
					else
						$qstr2 = "?me_code=".$row2['me_code'];

                    if($k == 0)
                        echo '<ul class="gnb_2dul">'.PHP_EOL;
                ?>
                    <li class="gnb_2dli"><a href="<?php echo $row2['me_link']; ?><?php echo $qstr2; ?>" target="_<?php echo $row2['me_target']; ?>" class="gnb_2da"><?php echo $row2['me_name'] ?></a></li>
                <?php
                }

                if($k > 0)
                    echo '</ul>'.PHP_EOL;
                ?>
            </li>
            <?php
            }

            if ($i == 0) {  ?>
                <li id="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <br><a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 &gt; 환경설정 &gt; 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>
            <?php } ?>
        </ul>
    </nav>



2. 스킨 적용 함수 호출

<div id="aside">
        <?php echo outlogin('basic'); // 외부 로그인  ?>
        <?php echo groupmenu('sir'); ?>
        <?php echo poll('basic'); // 설문조사  ?>
    </div>


[함수설명]
function groumenu($skin, $new_time)
함수명 : groupmenu
인자1 ($skin) : 스킨명 (default : basic)
인자2 ($new_time) : 최근 게시된 글 시간 (시간단위) (default : 24 시간)
                            24시간 이전부터 등록된 갯수를 불러오고 싶으신 경우 : 24


사용중 오류나 문의사항은 질문주세요~^^
추천
10

댓글 전체

감사합니다~적용해봤더니 좋네요~^^ 그런데 제가 적용한 곳에는 메뉴가 많다보니 인덱스 페이지가 너무 길어져버리는데 여기에는 측면메뉴가 나타나지 않게 할 수 잇나요??
Index페이지에서는 측면메뉴를 사용하지 않고자 하는 경우에 groupmunu 함수를 수정해야합니다.
[수정해야할 부분]
/extend/menu.extend.php 파일 32줄 ~ 35줄
Index페이지일 경우 me_code값이 초기화 되기 때문에
IF문을 $me_code 값이 없을 경우 return 처리해주시고
하단에 sql문을 작성해주세요.

// 기존
if(!$me_code)
     $sql = " select * from {$g5['menu_table']} where me_use = '1' and length(me_code) = '2' order by me_order, me_id ";
else 
     $sql = " select * from {$g5['menu_table']} where me_use = '1' and length(me_code) = '2' and me_code = substring('$me_code', 1, 2) order by me_order, me_id ";	

// 변경 - me_code 값이 존재할 경우에만 sql문 작성
if(!$me_code) 
     return;

$sql = " select * from {$g5['menu_table']} where me_use = '1' and length(me_code) = '2' and me_code = substring('$me_code', 1, 2) order by me_order, me_id ";	


더 쉬운방법은 해당 소스를 추가해주세요

if(G5_IS_MOBILE)
        return;

// INDEX페이지 일경우 바로 return;
if(defined('_INDEX_')) 
       return ;
	
$groupmenu_skin_path = G5_SKIN_PATH.'/groupmenu/'.$skin_dir;
$groupmenu_skin_url  = G5_SKIN_URL.'/groupmenu/'.$skin_dir;


추후에 더 많은 요청이 있으시면 함수자체에 인자를 추가해서 유동적으로 변경이 가능하도록 업그레이드 하겠습니다^^
감사합니다.
메뉴추가해서 직접입력으로 주소를 http://~~/index.php 넣으니 않되는 군요. &me_code 코드로 인해 인덱스로 가지 못합니다. 어떻게 해야하나요?
깔끔하게 적용했습니다. 고맙습니다!
소리틀님도 고맙구요.

폭을 아웃로그인과 동일하게 수정해주니 더 이쁘네요.

http://internationale.kr

약간의 딜레이가 발생하는 듯도 하고... 아닌 듯도 하고... 판단이 좀 안됩니다만...
상단 메뉴에서 게시판을 선택했을 경우... 측면 메뉴에 해당 색이 적용되지 않네요.

일단 들어간 후에 측면 게시판 이름을 눌렀을 때는 적용됩니다.
업그레이드 하면서 head.php 파일 적용방법에 오타가 좀 있었네요.ㅠ
서브메뉴에 대한 메뉴코드 작성시 row2를 사용해야하는데 row를 사용했습니다.ㅠ
코드에서 이부분 참고하세요

// link주소에 파라미터가 있는 경우
if(strstr($row2['me_link'], ".php?"))
      $qstr2 = "&me_code=".$row2['me_code'];
// link주소에 파라미터가 없는 경우
else
      $qstr2 = "?me_code=".$row2['me_code'];


                <?php
                $sql2 = " select *
                            from {$g5['menu_table']}
                            where me_use = '1'
                              and length(me_code) = '4'
                              and substring(me_code, 1, 2) = '{$row['me_code']}'
                            order by me_order, me_id ";
                $result2 = sql_query($sql2);

                for ($k=0; $row2=sql_fetch_array($result2); $k++) {
					// link주소에 파라미터가 있는 경우
					if(strstr($row2['me_link'], ".php?")) 		
						$qstr2 = "&me_code=".$row2['me_code'];
					// link주소에 파라미터가 없는 경우
					else
						$qstr2 = "?me_code=".$row2['me_code'];

                    if($k == 0)
                        echo '<ul class="gnb_2dul">'.PHP_EOL;
                ?>
                    <li class="gnb_2dli"><a href="<?php echo $row2['me_link']; ?><?php echo $qstr2; ?>" target="_<?php echo $row2['me_target']; ?>" class="gnb_2da"><?php echo $row2['me_name'] ?></a></li>
                <?php
                }
다른 일반 페이지에서 메뉴를 출력되지 않게 하실려면
방법은 여러가지 있는데 쉬운 방법은...
일단 일반페이지(예로 접속자현황 - current_connect.php) 상단에
define('_CONNECT_', true); 라고 선언해주시고
/extend/menu.extend.php 파일 열어서 아래처럼 수정해주세요~
일반페이지가 여러개일 경우 각 페이지별 define 변수 선언해주시고
IF문에 추가해주시면 됩니다~^^


//  해당부분을 요런식으로 조절해주세요. ELSE IF문을 하나 더 써주셔도 됩니다.
if(defined('_INDEX_') || defined('_CONNECT_') ) {         
	set_session("me_code", "");
	$me_code = "";
}
else if (isset($_REQUEST['me_code']))  {
	$me_code = trim($_REQUEST['me_code']);
	set_session("me_code", $me_code);
	if ($me_code)
        $qstr .= '&amp;me_code=' . urlencode($me_code);
} else {
	if(get_session("me_code")) {
		$me_code = get_session("me_code");
		$qstr .= '&amp;me_code=' . urlencode($me_code);
	}
}
fm25 님과 비슷한 질문이긴 한데요.
혹시 메인 최신글 타이틀이나 최신글 자체를 클릭했을 경우 이동하면서 전체메뉴가 뜨는데 이것도 해결이 가능할까요?
이럴경우엔 전체메뉴가 안 보여야 되는게 아니라 어찌보면 해당 메뉴별 서브메뉴만 보여야 싶은데요.
안그래도 이부분에 대한 질문이 있을거라 예상은 했습니다.
이부분에 대한 해결책은 latest 함수를 수정해야 합니다. (사실 수정하셔도 되고 추가하셔도 됩니다.)
기본적으로 그누보드에서 제공하는 latest 함수를 기준으로 추가하는 방법에 대해 알려드릴께요
일단 latest.lib.php 파일을 열어서 기존에 작성되어 있는 latest 함수를 복사해서
하단에 추가(붙혀넣기)해주세요.
그리고 함수명은 latest_m (개발자 마음대로..)으로 수정해주세요
그리고 인자를 me_code 하나 더 추가해주시고 해당 조건절만 추가해주시면 됩니다.
※ 기존 함수를 수정하고자 하는 경우에는 기존 함수에 me_code 인자를 추가하시고 해당 조건절만 추가하시면 됩니다.

        for ($i=0; $row = sql_fetch_array($result); $i++) {
            $list[$i] = get_list($row, $board, $latest_skin_url, $subject_len);
            if($me_code) 
                  $list[$i]['href'] = $list[$i]['href']."&me_code=".$me_code;
        }


하단은 전체 샘플소스입니다.

function latest_m($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=1, $options='', $me_code='')
{
    global $g5;
    //static $css = array();

    if (!$skin_dir) $skin_dir = 'basic';

    if(G5_IS_MOBILE) {
        $latest_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
        $latest_skin_url  = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;
    } else {
        $latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;
        $latest_skin_url  = G5_SKIN_URL.'/latest/'.$skin_dir;
    }

    $cache_fwrite = false;
    if(G5_USE_CACHE) {
        $cache_file = G5_DATA_PATH."/cache/latest-{$bo_table}-{$skin_dir}-{$rows}-{$subject_len}.php";

        if(!file_exists($cache_file)) {
            $cache_fwrite = true;
        } else {
            if($cache_time > 0) {
                $filetime = filemtime($cache_file);
                if($filetime && $filetime < (G5_SERVER_TIME - 3600 * $cache_time)) {
                    @unlink($cache_file);
                    $cache_fwrite = true;
                }
            }

            if(!$cache_fwrite)
                include($cache_file);
        }
    }

    if(!G5_USE_CACHE || $cache_fwrite) {
        $list = array();

        $sql = " select * from {$g5['board_table']} where bo_table = '{$bo_table}' ";
        $board = sql_fetch($sql);
        $bo_subject = get_text($board['bo_subject']);

        $tmp_write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
        $sql = " select * from {$tmp_write_table} where wr_is_comment = 0 order by wr_num limit 0, {$rows} ";
        $result = sql_query($sql);
        for ($i=0; $row = sql_fetch_array($result); $i++) {
            $list[$i] = get_list($row, $board, $latest_skin_url, $subject_len);
            if($me_code) 
                  $list[$i]['href'] = $list[$i]['href']."&me_code=".$me_code;
        }

        if($cache_fwrite) {
            $handle = fopen($cache_file, 'w');
            $cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$bo_subject=\"".$bo_subject."\";\n\$list=".var_export($list, true)."?>";
            fwrite($handle, $cache_content);
            fclose($handle);
        }
    }

    /*
    // 같은 스킨은 .css 를 한번만 호출한다.
    if (!in_array($skin_dir, $css) && is_file($latest_skin_path.'/style.css')) {
        echo '<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">';
        $css[] = $skin_dir;
    }
    */

    ob_start();
    include $latest_skin_path.'/latest.skin.php';
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}


추신. 함수를 수정하시고 적용하실때 필히 캐쉬 삭제하시는건 알고계시죠??
그러니까 lib안에 있는  latest.lib.php 에 아래 소스만 추개해 넣으면 된다는 건가요?
잘 안돼네요.
아님 최신글 스킨도 바꾸어야 한다는 말인가요?
초보라..자세히 설명 부탁드립니다. 감사합니다.
강한남v 님의 자세한 설명으로 처리했습니다.
설명해주신 내용 추가로 적자면 메인 페이지에 latest("basic", $row['bo_table'], 5, 25, "", "", 메뉴코드);  이 부분에서 메뉴코드(me_code)를 각 게시판별로 확인해서 적어주시면 처리 됩니다.
감사합니다.
아 그리고 꼭 적용전에  관리자페이지에서 캐쉬일괄삭제 하고 적용하세요.
메인에 뽑을 때 저 처리를 해야 한다는건가요? 최신글 소스 각각에 저렇게 메뉴 코트 부분을 넣어주나요? latest("basic", $row['bo_table'], 5, 25, "", "", 메뉴코드); 그럼 여기서 "", "",는 뭔가요? 그리고 이건 어디 에서 정의하는거죠? 메뉴코드 부분은...잘 안되네요...
말씀하신건 그대로 복사하셔서 처리하면 됩니다.
예를 들면 echo latest("basic", "notice", 5, 25,"", "", 1010); 이런식이죠.
여기서 1010이 메뉴코드인데 메뉴코드는 저같은 경우엔 DB에서 직접 확인했는데 따로 확인하는 방법이 있는지는 모르겠네요.
그렇게 해도 안되어서요.
http://k-models.com/ 에서

맨 하단

이미지 세 개중 세번쨰 

아래의 글에 그렇게 해도 안되더라고요..1010 이렇게 넣은걸 소스에서 읽어드리는 부분이 어디이있나요?
일단 위에 순서는 다 따라 하신 건가요?
그럼에도 안된다면  제일 위에 있듯이 관리자페이지에서 캐시파일일괄삭제를 하시고 다시 한 번 해보셨는지 모르겠네요.
캐시파일을 삭제한 후 다시 올려보시고 처리해 보세요.
그리고 최신글 관련 수정은 일단 리스트쪽은 latest.lib.php 함수파일에서 수정하셔야 되구요.
타이틀이나 더보기 링크 관련해서는 아래쪽에 강한남v님이 쓰셨듯이 latest.skin.php  을 수정하시면 됩니다.
질문 하나 더 할께요.
위에 말씀하신대로 했더니 최신글 글을 클릭했을때는 제대로 뜨는데 최신글 게시판 제목을 클릭했을때는 여전히 전체 메뉴가 다 나오네요. 혹시 제가 뭘 설정을 잘못한건지 궁금해서 문의 드립니다.
앗~ 제목부분을 깜빡했네요~
latest.skin.php 파일을 수정해주셔야 합니다.
현재 사용하고 계신 latest 스킨폴더에 보시면 latest.skin.php 파일이 있을꺼에요~
아래 소스 부분 참고하셔서 수정하시면 됩니다~^^
me_code 추가작성된 부분 참고하세요~

<!-- <?php echo $bo_subject; ?> 최신글 시작 { -->
<div class="lt">
    <strong class="lt_title"><a href="<?php echo G5_BBS_URL ?>/board.php?bo_table=<?php echo $bo_table ?>&me_code=<?php echo $me_code?>"><?php echo $bo_subject; ?></a></strong>
    <ul>


※ 위 소스는 그누보드에서 기본으로 제공하는 basic 스킨을 수정한 내용입니다.
흠... 그룹명에 링크를 넣고 싶으시다는 말씀이시죠?
그룹명은 button 태크로 되어 있어서 좀 까다롭긴 한데...
제가 css쪽은 좀 하수라 기냥 간단한 방법으로 알려드릴께요~!
실력이 좋으시다면 더 좋게 수정하셔도 됩니다~^^
제가 알려드리는건 걍 초간단 방법입니다. (버튼을 아주 없애버림..ㅋㅋㅋ)
groupmenu.skin.php을 아래 코드로 바꿔보세요~!


<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>

<!-- 메뉴 시작 { -->
<link rel="stylesheet" href="<?php echo $groupmenu_skin_url ?>/style.css">

<div id="sir_lnb">
<?php for ($i=0; $i<count($menu); $i++) {  ?>
<aside id="lnb_cate">
<h2><? echo $menu[$i]['name'] ?></h2>
<div class="sir_ddl sir_ddl_pc" id="cate_2d">
<a href="<?php echo $menu[$i]['link'] ?>" class="ddl_btn" target="_<?php echo $menu[$i]['target']; ?>" ><? echo $menu[$i]['name'] ?></a>
</div>
<ul>
        <?php 
		for ($j=0; $j<count($menu[$i]['submenu']); $j++) {  
			$submenu = $menu[$i]['submenu'][$j];		
		?>
        <li<?php if($me_code==$submenu['code']) { echo " class=\"lnb_cate_on\""; } ?>><a href="<?php echo $submenu['link'] ?>" target="_<?php echo $submenu['target']; ?>" ><?php echo $submenu['name'] ?>
		<?php if($submenu['cnt']) { ?>
		<strong><?php echo $submenu['cnt'] ?></strong>
		<?php } ?>
		<?php if($submenu['total_cnt']) { ?>
		<span><?php echo $submenu['total_cnt'] ?></span>
		<?php } ?>
		</a>
		</li>
        <?php
		}  
		?>
</ul>    
 </aside>
<?php
}  
?>
</div><!-- #sir_lnb -->
<!-- } 메뉴 끝 -->
'FAQ', ' 1:1문의', '접속자', '새글' 등에서 메뉴가 모두 펼쳐지는 문제에 대해서 위에 답변 주신 내용을 시도해봤으나 적용되지 않았습니다.
그런데 (버튼을 없애는) 이 방식으로 바꾸니 해결되네요.
해당 링크로 들어가면 서브메뉴는 펼쳐지지않고 그룹메뉴 목록만 보여집니다.

메인에서처럼 대메뉴(그룹명)이 세로로 나열되듯이 서브페이지로 들어가면 해당그룹만 나오는데 이것을 그냥 전체메뉴가 계속 나오도록 할수 있을까요? ^^;; 자꾸 문의를 드려서 죄송합니다. 이게 마지막입니다.한시간 헤메다가 못해서 문의 드립니다. ^^ 저는 그냥 다 나와보였으면 해서요 물론상단 메뉴가 있어서 그렇게 할 필요가 없지만 한편으로는 상단 메뉴를 없애고 왼쪽 메뉴만 사용하는 홈페이지도 겐찮다 싶어서요~
아 해결했습니다. ^^

if(!$me_code)
$sql = " select * from {$g5['menu_table']} where me_use = '1' and length(me_code) = '2' order by me_order, me_id ";
else
//$sql = " select * from {$g5['menu_table']} where me_use = '1' and length(me_code) = '2' and me_code = substring('$me_code', 1, 2) order by me_order, me_id ";
$sql = " select * from {$g5['menu_table']} where me_use = '1' and length(me_code) = '2' order by me_order, me_id ";

주석처리하고 위에것과 똑같이 하니 됐는데요..

서브페이지에 들어갔을때는 해당 그룹의 서브메뉴만 펼쳐졌으면 하는데 요것은 지금 못하고 있습니다. ^^
groupmenu.skin.php파일 열고 아래 코드참고하셔서 수정해주세요~
향후 다른 대메뉴 클릭시 확장/축소 부분을 스크립트로 처리해야 할 것 같아서
style로 일단 보이지 않도록 처리했습니다.

[수정된 소스코드 부분]

<?php
if($menu[$i]['code'] != substr($me_code, 0, 2))
	$ul_style = " style=\"display:none\"";
else 
	$ul_style = " style=\"display:block\"";
?>	
<ul<?php echo $ul_style?>>


[groupmenu.skin.php 전체 소스 코드]

<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>

<!-- 메뉴 시작 { -->
<link rel="stylesheet" href="<?php echo $groupmenu_skin_url ?>/style.css">

<div id="sir_lnb">
<?php for ($i=0; $i<count($menu); $i++) {  ?>
<aside id="lnb_cate">
<h2><? echo $menu[$i]['name'] ?></h2>
<div class="sir_ddl sir_ddl_pc" id="cate_2d">
<a href="<?php echo $menu[$i]['link'] ?>" class="ddl_btn" target="_<?php echo $menu[$i]['target']; ?>" ><? echo $menu[$i]['name'] ?></a>
</div>
<?php
if($menu[$i]['code'] != substr($me_code, 0, 2))
	$ul_style = " style=\"display:none\"";
else 
	$ul_style = " style=\"display:block\"";
?>	
<ul<?php echo $ul_style?>>
        <?php 		
		for ($j=0; $j<count($menu[$i]['submenu']); $j++) {  
			$submenu = $menu[$i]['submenu'][$j];		
		?>
        <li<?php if($me_code==$submenu['code']) { echo " class=\"lnb_cate_on\""; } ?>><a href="<?php echo $submenu['link'] ?>" target="_<?php echo $submenu['target']; ?>" ><?php echo $submenu['name'] ?>
		<?php if($submenu['cnt']) { ?>
		<strong><?php echo $submenu['cnt'] ?></strong>
		<?php } ?>
		<?php if($submenu['total_cnt']) { ?>
		<span><?php echo $submenu['total_cnt'] ?></span>
		<?php } ?>
		</a>
		</li>
        <?php
		}  
		?>
</ul>    
 </aside>
<?php
}  
?>
</div><!-- #sir_lnb -->
<!-- } 메뉴 끝 -->
왼쪽 메뉴를 다 보이게 하고 싶으시다면 방법은 간단합니다.
다만, 메뉴가 많아 질 경우 왼쪽 메뉴가 너무 늘어지니 스킨을 좀 수정하셔서
대메뉴는 그냥 다 보여주고 선택된 메뉴만 서브메뉴가 확장되도록 스크립트를 추가작성하셔서
수정하시는걸 권장해드립니다.

왼쪽 메뉴를 다 보이게 하는 방법은 알려드릴께요~
extend/menu.extend.php 파일열고 아래 코드 참고하셔서 gruopmenu 함수를 수정해주세요~

[수정전]


if(!$me_code)
     $sql = " select * from {$g5['menu_table']} where me_use = '1' and length(me_code) = '2' order by me_order, me_id ";
else 
     $sql = " select * from {$g5['menu_table']} where me_use = '1' and length(me_code) = '2' and me_code = substring('$me_code', 1, 2) order by me_order, me_id ";	


[수정후]

     $sql = " select * from {$g5['menu_table']} where me_use = '1' and length(me_code) = '2' order by me_order, me_id ";


참~ 쉽죠잉~~^^*
알려주신대로 파일 각 폴더에 올리고 head.php 파일 해당 부분 그대로 복사 붙여넣기 했습니다. 근데 올려주신 이미지처럼 안나오고 그냥 진한 회색 바탕에 게시판만 뜨네요. 버튼 클릭해도 반응이 없습니다... 댓글은 파일첨부가 안되네요. T_T
회원가입할때 비공개로 했더니 쪽지도 안되네요 ^^ ... 따로 사이트가 있는건아니고 컴퓨터에 설치해서 내부 게시판형태로 사용하려고 했었거든요. 알려주신 파일 각 위치에 넣고 head.php도 올려주신 파일 그대로 사용했는데 php를 모르니 그냥 까막눈이네요..  (http://imgur.com/wcWz1R7)
자료 감사합니다.
그런데 IE에서는 측면메뉴 링크 클릭이 잘 되는데
크롬이나 FF에서는 측면메뉴 링크가 활성도 안되고 전혀 클릭이 안 되는데
이유를 알 수가 없네요. ㅜ.ㅜ
지금은 fm25님의 사이트 http://internationale.kr 에 사용한 css를 참조로 적용하니 정상적으로 동작이 되고 있습니다.

원본 소스 그대로 적용했을 때는
groupmenu.skin.php소스 마지막에

</div><!-- #sir_lnb -->
<a> </a>  ◀--------------- 이 부분을 넣어서 테스트를 해 보면 측면의 메뉴가 클릭이 됩니다.
<!--  메뉴 끝 -->
감사합니다 잘 사용하고 있습니다. 한가지 질문이 게시판을 생성하고 측면메뉴를 달아서 적용했다가 나중에 게시판을 두개 추가했는데 게시판 숫자대로 정렬이 안되고 맨 아래에 추가가 되더라구요 여기를 게시판 목록순서별로 정렬할수 있는 방법이 없을까요
엄청난 스킨을 제공해주셔서 감사합니다.
궁금한것이 있습니다.
측면메뉴 li 에 border-bottom값을 넣었는데 제일 마지막(밑)에 있는 메뉴 li에는 border값을 제외시키고 싶어요
이럴땐 class값을 어디에 적용시켜야 스타일을 줄 수 있을까요? '-'


그룹 메뉴 적용이 잘 안된다고 문의하시는 분들이 더러 있어서... 질의 응답에서 제기되었던 몇가지를 취합하여 공유합니다.

내려받기 : http://internationale.kr/bbs/board.php?bo_table=info_gnuboard&wr_id=161&me_code=4020

적용한 곳 : http://liberta1980.woobi.co.kr

제가 따로 추가하거나 수정한 사항이 거의 없기 때문에 이곳에 게시하기가 좀 그래서... 제 홈페이지에 올린 것이니 양해바랍니다.
extend/menu.extend.php

  // INDEX 페이지일 경우 바로 return;
	if(defined('_INDEX_'))
		return ;
를 주석처리하거나 삭제하면 됩니다.

Index에서 그룹명만 보입니다.
하위 게시판명도 보이게 하고 싶으면... 강한남v님의 원본 파일을 사용하세요.
페이지마다 변화가 없는데 일반페이지에도  측면메뉴를 적용해보고 싶습니다.
 http://schy2013.cafe24.com/  내용관리에서 만든페이지에서는 측면 메뉴가 바뀌지 않네요.
'메뉴 설정'에서 등록해주면 됩니다.
제가 만든 예시에서... 'Group 3'과 'Sub 3-1'이 내용관리로 만든 페이지입니다.

만드신 사이트는 쇼핑몰과 혼재된 형태여서 다를지도 모르겠습니다.

저는 쇼핑몰은 그냥 원본을 약간 수정해서 사용하고 있습니다.
쇼핑몰만 사용하실 것 같으면 이 방식은 맞지 않을 듯 합니다.
Fm25님께서 정리해주신 파일 참고로 그누보드5 순정에 덮어씌우기 형태로 적용했는데요.
처음 홈페이지 접속해서 FAQ 버튼이나 메인메뉴에서 서브메뉴(게시판) 누르면
측면에 메인메뉴가 전부 펼쳐져요.
그 상태에서 다른메뉴 한번 클릭하고나면 그 다음부터는 서브메뉴가
정상적으로 보이네요.
처음 홈페이지 접속해서 한번은 꼭 메인메뉴가 전부 보여져야지만 그 다음부터
정상적으로 작동하는데, 이거 해결 방법이 없을까요?
꼭 수정해야할 필요는 없지만 뭔가 1% 부족한 페이지가 된거 같아서
해결방법이 없을까 하고 문의드려요!
이해를 돕기 위해 링크 걸께요.
http://wooyupack.cafe24.com/
현재 2017년 2월1일 일반페이에서도 자알~ 되네요.
가로크리 조절은 /skin/groupmenu/sir/style.css 310숫자수정하면됨

81번째줄 : #sir_lnb{z-index:2;float:right;width:310px}

86번째줄 #sir_lnb #lnb_cate #cate_2d button{display:block;margin:0;padding:7px 10px;width:310px;border:0;background:url
멋진 프로그램 잘 쓰고 있습니다.

그런데 인코딩이 utf-8이 아니라서 변환해야 했고,

또 제 경우입니다만, 함수명칭이 groupmenu()로 되어 있다보니, 다른 함수와 충돌하는 것 같아서, sidemenu()로 바꾸어 사용하고 있습니다.

감사드립니다.
전체 2,423 |RSS
그누보드5 스킨 내용 검색

회원로그인

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