게시판 바로가기 - 디비 수정 없이 파일 하나로 끝내기!! > 그누4 팁자료실

그누4 팁자료실

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

게시판 바로가기 - 디비 수정 없이 파일 하나로 끝내기!! 정보

게시판 바로가기 - 디비 수정 없이 파일 하나로 끝내기!!

본문

게시판 바로가기 기능을 추가 하고 싶었는데

이전에 있던 팁은 디비도 건들여야 하고 이것 저것 건들여야 하길레

머리아파 고민하다 포기 했었는데

이미 있던 회원 여분 테이블로 꼼수로 만들 수 있을거 같아 고민하다 만들었습니다.

초보가 만든 것이이 좀 어색하고 허술 할 수 있습니다. 양해하고 봐주세요
(실제로 디게 허술 합니다;;)

설명은 길 수 있으나 디비수정이 없고 파일 하나만 추가하면 되는 것이라 간단합니다.

아래 내용을 Fb.php 이란 이름으로 만들어서 그누보드 설치된 폴더에 넣으면 되겠습니다.
주세요 회원 여분 필드 mb_5를 사용합니다.

<!-- utf-8 사용자는 주석 해제 하기
<meta http-equiv="content-type" content="text/html; charset=utf-8">
-->
<style>
 body,td,input,div,form,select,textarea,pre{font-size:10pt; font-family:돋움,Tahoma; color:#000000;}
 a:link, a:visited, a:active, a:hover {
 text-decoration:none;
}
</style>
<?

include_once("./_common.php");

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

if($is_member){

 $Fbod = $_GET['Fbod'];
 $Fbplus = $_GET['Fbplus'];
 $Fbminus = $_GET['Fbminus'];
 $mypage = $_GET['mypage'];

 if (!$Fbod && !$mypage)
  alert_close("값이 제대로 넘어오지 않았습니다.");

 if($Fbplus && !$Fbminus && $Fbod ){
  $Fblist = explode("|",$member['mb_5']);
  $Fcnt = count($Fblist);

  for($i=0 ; $i<$Fcnt ; $i++) {
   if($Fblist[$i]==$Fbod) {
    alert_close("이미 바로가기 추가한 게시판 입니다.");
   }
  }

  $limitF = 5; // 게시판 추가 갯수

  if($Fcnt<$limitF){
   if($member['mb_5'])
    $Fbw = $member['mb_5']."|".$Fbod ;
   else
    $Fbw = $Fbod ;

   $sql = " update g4_member SET mb_5 = '$Fbw' where mb_id = '$member[mb_id]' ";
   sql_query($sql);

   echo "<script language='javascript'>alert('게시판 바로가기 추가 완료');</script>";
  }
  else
   echo "<script language='javascript'>alert('게시판 바로가기는 {$limitF}개 까지만 추가 할 수 있습니다.');</script>";

 }

 else if(!$Fbplus && $Fbminus && $Fbod){
  
  if($member['mb_5']){
   $Fblist = explode("|",$member['mb_5']);
   $Fcnt = count($Fblist);

   for($i=0 ; $i<$Fcnt ; $i++) {
    if($Fblist[$i]!=$Fbod) {
     $FbwE[$i] = $Fblist[$i];
    }
    $Fbw=implode("|",$FbwE) ;
   }
   $sql = " update g4_member SET mb_5 = '$Fbw' where mb_id = '$member[mb_id]' ";
   sql_query($sql);
   echo "<script language='javascript'>location.href='$g4[path]/Fb.php?mypage=1';</script>";
  }
  
 }
 
 else if($mypage){
  if($member['mb_5']){
   $Fblist = explode("|",$member['mb_5']);
   $Fcnt = count($Fblist);

   for ($i=0; $i<$Fcnt; $i++) {
    if($Fblist[$i]){
     $b_arr =mysql_fetch_array(mysql_query("select bo_subject from $g4[board_table] where bo_table = '$Fblist[$i]'"));
     $Fbo_subject = $b_arr[0]; //게시판제목
     echo $Fbo_subject." <a href='?mypage=1&Fbminus=1&Fbod=$Fblist[$i]'><span style='color:red'>[삭제]</span></a><br>";
    }
   }
  }
  else
   echo "<p>바로가기 목록이 없습니다.</p>";
  echo "<center><input type=button value='닫 기' onclick='window.close();'></center>" ;
 }

}

?>


다음으로
아웃로그인 스킨의 outlogin.skin.2.php에 바로가기 표시하고자 하는 부분에

  <SELECT onchange="quick_move(this.value)" style="width:150">
    <option value="">게시판 바로가기</option>
    <option value="">-------------------------</option>
    <?
    $FblistE = $member['mb_5'];

    $Fblist = explode("|",$FblistE);
    $Fcnt = count($Fblist);
    
    for ($i=0; $i<$Fcnt; $i++) {
     if($Fblist[$i]){
      $b_arr =mysql_fetch_array(mysql_query("select bo_subject from $g4[board_table] where bo_table = '$Fblist[$i]'"));
      $Fbo_subject = $b_arr[0]; //게시판제목 
      ?>
    <option value="<?=$Fblist[$i]?>"><?=$Fbo_subject?></option>
    <? } }?>
   </SELECT>
   <a onclick="window.open('<?=$g4[path]?>/Fb.php?mypage=1', 'popup1','left=100,top=100,width=300,height=300,location=0,status=no,menubar=0,scrollbars=0,toolbar=0,resizable=0')">편집</a>

<script language="JavaScript">
function quick_move(bo_table)
{
    if (!bo_table) return;
    location.href = "<?=$g4[bbs_path]?>/board.php?bo_table=" + bo_table;
}
</script>


이 부분을 추가 합니다.

그리고 게시판 스킨 list.skin.php 적당한 곳에 아래 내용을 추가 합니다.
<a href="<?=$g4['path']?>/Fb.php?Fbod=<?=$bo_table?>&Fbplus=1" target="hiddenframe"><img src='<?=$board_skin_path?>/img/btn_my_menu.gif' align="absmiddle"></a>

바로가기 추가 버튼이에요 ^^*
<form name="fcategory" method="get" style="margin:0; padding:0;">
이 위에 추가하면 되겠습니다.

좀 복잡하게 보일 수 있으나 그냥 붙여 넣기만 하면 됩니다.

중간중간 빨간색은 자신에 맞게 고치시구요 mb_5 필드도 사용중이라면 전부 다른것으로 바꾸시구용

질문은 nhead.com 비회원 게시판에 ^^*

추천
0
  • 복사

댓글 4개

설치후 편집 클릭하면 다음오류가 납니다.
Warning: Cannot modify header information - headers already sent by (output started at /home1/lbw0222/public_html/Fb.php:2) in /home1/lbw0222/public_html/common.php on line 8
훔.. 소스는 제 홈에 사용하고있는거라 별 이상은 없었는데....

오류메세지를 보면 Fb.php 파일의 include_once("./_common.php");
이부분이 이미 불러져 와서 오류가 나는 메세지 같은데요...

지우면 괜찮아 질라나;; 이거 감이 안잡히네요;;;
<!-- utf-8 사용자는 주석 해제 하기
<meta http-equiv="content-type" content="text/html; charset=utf-8">
-->
<style>
 body,td,input,div,form,select,textarea,pre{font-size:10pt; font-family:돋움,Tahoma; color:#000000;}
 a:link, a:visited, a:active, a:hover {
 text-decoration:none;
}
</style>

이 부분이 include_once("./_common.php"); 이거 아래쪽에 위치해야 합니다~~
© SIRSOFT
현재 페이지 제일 처음으로