게시판 바로가기 기능 추가하기 > 그누4 팁자료실

그누4 팁자료실

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

게시판 바로가기 기능 추가하기 정보

게시판 바로가기 기능 추가하기

첨부파일

g4_my_menu.zip (2.0K) 661회 다운로드 2007-11-05 14:34:47

본문

이번 SIR 사이트의 14번째 개편을 맞이하여 "게시판 바로가기" 기능이 추가되었습니다.
이 기능의 공개를 원하시는 분들이 계셔서 공개하오니 참고하시기 바랍니다.
21.gif

1. DB 에 테이블을 추가합니다.
CREATE TABLE IF NOT EXISTS `g4_my_menu` (
  `id` int(11) NOT NULL auto_increment,
  `mb_id` varchar(20) NOT NULL,
  `bo_table` varchar(20) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `mb_id` (`mb_id`,`bo_table`)
)

2. config.php 파일에 아래 코드를 추가합니다.
$g4['my_menu_table'] = $g4['table_prefix'] . "my_menu"; // 마이메뉴

3. 첨부파일의 압축을 풀어 bbs 디렉토리에 업로드 합니다.
- bbs/my_menu_add.php 파일
- bbs/my_menu_del.php 파일
- bbs/my_menu_edit.php 파일

4. skin/outlogin/사용중인 아웃로그인 스킨/outlogin.skin.2.php 파일 원하는 위치에 아래코드를 추가합니다.
<?
$my_menu = array();
$sql = "select m.bo_table, b.bo_subject from $g4[my_menu_table] as m left join $g4[board_table] as b on m.bo_table = b.bo_table where mb_id = '$member[mb_id]'";
$qry = sql_query($sql);
while ($row = sql_fetch_array($qry))
{
    $my_menu[] = $row;
}
?>

<select class=quick_move onchange="quick_move(this.value)">
<option value="">게시판 바로가기</option>
<option value="">-------------------------</option>
<option value="mypage">마이페이지</option>
<option value="">-------------------------</option>
<? for ($i=0; $i<count($my_menu); $i++) {?>
<option value="<?=$my_menu[$i][bo_table]?>"><?=$my_menu[$i][bo_subject]?></option>
<? } ?>
<option value="">-------------------------</option>
<option value="menu-edit">바로가기 편집</option>
</select>

<script language="JavaScript">
function quick_move(bo_table)
{
    if (!bo_table) return;
    if (bo_table == 'menu-edit') {
        popup_window("<?=$g4[bbs_path]?>/my_menu_edit.php", "my_menu_edit", "width=350, height=400, scrollbars=1");
        return;
    }
    if (bo_table == 'mypage') {
        location.href = "<?=$g4[path]?>/customer/mypage.php";
        return;
    }
    location.href = "<?=$g4[bbs_path]?>/board.php?bo_table=" + bo_table;
}
</script>


5. skin/board/사용중인게시판스킨/list.skin.php 파일의 적당한곳에 아래코드를 추가하여 "게시판바로가기추가" 버튼을 삽입하십시오.
<a href="javascript: my_menu_add()" style="margin:0 10px 0 0;"><img src="<?=$board_skin_path?>/btn_my_menu.gif" align=absmiddle></a>
<script language=javascript>
function my_menu_add() {
if (confirm("'자유게시판' 게시판 바로가기를 등록하시겠습니까?")) {
   hiddenframe.location.href = "../bbs/my_menu_add.php?bo_table=cm_free";
}}</script>

btn_my_menu.gif 옆 이미지를 활용하세요.
추천
20

댓글 39개

빠진 코드가 있습니다. 게시판 좌측 상단부에 있어야 하는 바로가기 추가에 관련된 코드와 이미지가 없어요.
mypage를 만들지 않은 경우에는 4번에서 아래 코드를 삭제 하시면 됩니다.

<option value="">-------------------------</option>
<option value="mypage">마이페이지</option>


5번의 스크립트는 다음과 같이 수정되어야 합니다. 참조하세요.

<? if ($is_member) { ?>

<a href="javascript: my_menu_add()" style="margin:0 10px 0 0;"><img src="<?=$g4[bbs_img_path]?>/btn_my_menu.gif" align=absmiddle></a>
<script language=javascript>
function my_menu_add() {
if (confirm("'<?=$board[bo_subject]?>' 게시판 바로가기를 등록하시겠습니까?")) {
  hiddenframe.location.href = "../bbs/my_menu_add.php?bo_table=<?=$bo_table?>";
}}</script>
<? } ?>

위의 코드를 파일로 만들어서, /bbs/my_menu_add_script.php로 저장한 후
밑의 이미지를 /bbs/img 에 업로드를 합니다. 그래야 여러 스킨에서 사용할 때 편합니다.

마지막으로 스킨에서 다음과 같이 사용하면 됩니다.

<span id="my_menu_add"><? include("$g4[bbs_path]/my_menu_add_script.php");?></span>
5번 스크립트는 다음 소스를 쓰시면 편합니다. ^^
// 옵션님의 "길쭉이 달력"에서 찾았습니다. 옵션님 ㄳㄳ

<!-- 게시판 바로가기 -->
<td><a href="javascript: my_menu_add()" style="margin:0 10px 0 0;"><img src="<?=$g4[path]?>/img/btn_my_menu.gif" align=absmiddle></a></td>
<script language=javascript>
function my_menu_add() {
if (confirm("'<?
  if($bo_table) {
  if($board[bo_subject]!='')  {
  echo "$board[bo_subject]";
  }}
  ?>' 을 등록하시겠습니까?")) {
  hiddenframe.location.href = "../bbs/my_menu_add.php?bo_table=<?=$bo_table?>";
}}</script>
<!-- 게시판 바로가기 끝 -->
좋은 팁 공개해주셔서 감사합니다...^^

저는 셀렉트로 하지않고 이렇게 설치했습니다..

http://www.sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=15432

필요하신분들은 참고하세요...^^
adm/upgrade.php 파일을 아래의 내용으로 전부 교체하고 관리자 페이지에서 업그레이드 메뉴를 눌러주시면 테이블이 추가 됩니다...^^

<?
$sub_menu = "100600";
include_once("./_common.php");

check_demo();

if ($is_admin != "super")
    alert("최고관리자만 접근 가능합니다.", $g4[path]);

$g4[title] = "업그레이드";
include_once("./admin.head.php");

//마이메뉴 추가
$sql = " CREATE TABLE IF NOT EXISTS `g4_my_menu` (
  `id` int(11) NOT NULL auto_increment,
  `mb_id` varchar(20) NOT NULL,
  `bo_table` varchar(20) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `mb_id` (`mb_id`,`bo_table`)
)";
sql_query($sql, false);

echo "UPGRADE 완료.";

include_once("./admin.tail.php");
?>
select m.bo_table, b.bo_subject from as m left join g4_board as b on m.bo_table = b.bo_table where mb_id = 'admin'

1064 : 'SQL 구문에 오류가 있습니다.' 에러 같읍니다. ('as m left join g4_board as b on m.bo_table = b.bo_table where mb_id = 'admin'' 명령어 라인 1)

error file : /index.php


이런 오류가 나오는 건 왜일까요?
-------------------------------------------------------------------------------------------------
2. config.php 파일에 아래 코드를 추가합니다.
$g4['my_menu_table'] = $g4['table_prefix'] . "my_menu"; // 마이메뉴
-------------------------------------------------------------------------------------------------
추가하셨는지요?
그누보드폴더에 config.php 파일을 찾아서 59째줄 근처에 // 기타 라는 주석밑쪽에
$g4['my_menu_table'] = $g4['table_prefix'] . "my_menu"; // 마이메뉴
소스를 추가해서 돌려보세요
4번 소스를 bbs/my_menu_option.php로 올리시고

<?
$my_menu = array();
$sql = "select m.bo_table, b.bo_subject from $g4[my_menu_table] as m left join $g4[board_table] as b on m.bo_table = b.bo_table where mb_id = '$member[mb_id]'";
$qry = sql_query($sql);
while ($row = sql_fetch_array($qry))
{
    $my_menu[] = $row;
}
?>

<select class=quick_move onchange="quick_move(this.value)">
<option value="">게시판 바로가기</option>
<option value="">-------------------------</option>
<option value="mypage">마이페이지</option>
<option value="">-------------------------</option>
<? for ($i=0; $i<count($my_menu); $i++) {?>
<option value="<?=$my_menu[$i][bo_table]?>"><?=$my_menu[$i][bo_subject]?></option>
<? } ?>
<option value="">-------------------------</option>
<option value="menu-edit">바로가기 편집</option>
</select>

<script language="Javascript">
function quick_move(bo_table)
{
    if (!bo_table) return;
    if (bo_table == 'menu-edit') {
        popup_window("<?=$g4[bbs_path]?>/my_menu_edit.php", "my_menu_edit", "width=350, height=400, scrollbars=1");
        return;
    }
    if (bo_table == 'mypage') {
        location.href = "<?=$g4[path]?>/customer/mypage.php";
        return;
    }
    location.href = "<?=$g4[bbs_path]?>/board.php?bo_table=" + bo_table;
}
</script>


===================
outlogin.skin.2.php에서 원하는 위치에

<!-- 바로가기 편집-->
<?include_once("$g4[bbs_path]/my_menu_option.php");?>
<!-- 바로가기 편집-->

이렇게 붙여주시면,아웃로그인 여러개 사용시 편하네요.
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

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