웹마스터 팁

main2.gif
main1.gif
할일이 여러가지 있다 보니 글 쓰는게 넘 늦어 버렸군요


이왕 시작한 거니  미니홈으로 다듬고  맨 마지막엔 달력을 연동해서 해당 날짜에 게시물이 올라오면

볼수 있는 부분까지 올리겠습니다  먹고 사는일 외에 개인홈페이지도 만들어야 되고

미니홈을 계속 업그레이드와  안만들어진 부분들을 손보다 보니 시간이 많이 나질 않네요

글이 가끔 늦어 지더라도 양해 바랍니다


전 시간까지 기초 게시판을 만들어 글이 어떻게 등록되는지에 대해서 보았습니다

오늘은 그 게시판을  미니홈에 연결 시켜 보겠습니다

제가 생각한 방법은 단순하지만 효과적일 수도 있습니다

먼저 사용자가 게시판을 생성하면 게시판1 게시판2 게시판3 ~  과 같이 쭈욱 만들어질 겁니다

제로보드의 회원가입 처럼 원하는 게시판 아이디와 게시판명만 적어주면 계속 생성되는  타입이니까요

그러면  한사람이 수백개의 게시판을 갖을수도 있겠죠

그러나 그렇게 많은 게시판은 필요가 없고 관리하는 사람은 머리가 아파집니다

그렇다고 몇개 이상 만들면 안된다고 일일이 말해줄수도 없는거구요

그런 형태의 게시판을 제어할 필요성이 있습니다

제어의 형태는 레벨이나  제로보드의 포인트를 이용해서 제어하면 되겠죠

레벨 1은 게시판 10개 레벨 9는 게시판 3개 뭐 그런식으로요

관리 페이지에서 게시판 생성하는 부분에 이프문으로 도배를 하면 됩니다

그리고 나서 레이아웃의 메뉴 들어가는 부분도 역시 이프문으로 도배를 해서 들어온 값이 있으면 게시판을

연결할수 있는 꼬리표를 달아주면 되는거죠

예를 들어 회원에게 게시판을 10개를 준다고 가정했을 때 (위에 레벨 조건으로 )

관리 페이지에서 이프문으로 10개 이상 생성 되지 않도록 조정을 해 놓은 다음

레이아웃의 메뉴 부분엔

게시판 1이 있으면 1을 2가 있으면 2를 3이 있으면 3을 이란식으로 이프문으로 전부 써주는 겁니다

게시판은 디비 테이블에서 순서대로 불러오기 때문에 레벨 1은 10개의 게시판이 있으므로 10개의 메뉴가

순차적으로 보여질테고 레벨 10은 3개 밖에 없으니 3개 이외엔 더이상 표기가 되지 않겠죠



우선 home.php 파일을 연 다음 아래의 소스를 넣습니다

"// $data 가 없을때, 즉 탈퇴한 회원인경우 표시"   윗부분에 넣으시면 됩니다

for문을 만들어서 돌려도 되지만 나중에 숙달되면 그때 사용하는 목적에 의해 고치시길 바랍니다.



이하 소스
----------------------------------------------------------------------------------------------------

//게시판 갯수 확인 ;
$temp=mysql_fetch_array(mysql_query("select count(*) from member_board  where user_id='$id'"));
$board_total=$temp[0];

// 게시판 유무 확인 ;
$temp1 = mysql_query("select * from member_board where  board_no='1' and user_id = '$data[user_id]'");
while($board_data1 = mysql_fetch_array($temp1)) {

$board1= "$board_data1[board_id]";
$board_name1="$board_data1[board_name]";
$board_no = "1";


}


$temp2 = mysql_query("select * from member_board where board_no='2' and user_id = '$data[user_id]'");
while($board_data2 = mysql_fetch_array($temp2)) {
$board2= "$board_data2[board_id]";
$board_name2="$board_data2[board_name]";
$board_no = "2";
}



$temp3 = mysql_query("select * from member_board where board_no='3' and user_id = '$data[user_id]'");
while($board_data3 = mysql_fetch_array($temp3)) {
$board3= "$board_data3[board_id]";
$board_name3="$board_data3[board_name]";
$board_no = "3";
}


$temp4 = mysql_query("select * from member_board where board_no='4' and user_id = '$data[user_id]'");
while($board_data4 = mysql_fetch_array($temp4)) {
$board4= "$board_data4[board_id]";
$board_name4="$board_data4[board_name]";
$board_no = "4";
}



$temp5 = mysql_query("select * from member_board where board_no='5' and user_id = '$data[user_id]'");
while($board_data5 = mysql_fetch_array($temp5)) {
$board5= "$board_data5[board_id]";
$board_name5="$board_data5[board_name]";
$board_no = "5";
}





$temp6 = mysql_query("select * from member_board where board_no='6' and user_id = '$data[user_id]'");
while($board_data6 = mysql_fetch_array($temp6)) {
$board6= "$board_data6[board_id]";
$board_name6="$board_data6[board_name]";
$board_no = "6";
}



$temp7 = mysql_query("select * from member_board where board_no='7' and user_id = '$data[user_id]'");
while($board_data7 = mysql_fetch_array($temp7)) {
$board7= "$board_data7[board_id]";
$board_name7="$board_data7[board_name]";
$board_no = "7";
}



$temp8 = mysql_query("select * from member_board where board_no='8'+ ' and user_id = '$data[user_id]'");
while($board_data8 = mysql_fetch_array($temp8)) {
$board8= "$board_data8[board_id]";
$board_name8="$board_data8[board_name]";
$board_no = "8";
}




$temp9 = mysql_query("select * from member_board where board_no='9' and user_id = '$data[user_id]'");
while($board_data9 = mysql_fetch_array($temp9)) {
$board9= "$board_data9[board_id]";
$board_name9="$board_data9[board_name]";
$board_no = "9";
}





$temp10 = mysql_query("select * from member_board where board_no='10' and user_id = '$data[user_id]'");
while($board_data10 = mysql_fetch_array($temp10)) {
$board10= "$board_data10[board_id]";
$board_name10="$board_data10[board_name]";
$board_no = "10";
}


// 새로 올라온 글 아이콘 처리 ;;
function repter($id)
{
$result=mysql_query("select * from member_get_memo  where board_id='$id' order by no desc
limit 1");  
while($new_data=mysql_fetch_array($result))
   {
     $new = " ";
     $check_time=(time()-$new_data[reg_date])/60/60;
     if($check_time>24)$new.=" ";
     if($check_time<=24)$new.="<img src=images/new.gif border=0>";
     echo "".stripslashes($new)."";
   }
}
----------------------------------------------------------------------------------------------------

이상 소스




//게시판 갯수 확인 ;
$temp=mysql_fetch_array(mysql_query("select count(*) from member_board  where user_id='$id'"));
$board_total=$temp[0];

디비의 member_board  테이블에서 user_id='$id' user_id 가 미니홈의 주인인

것만 찾아서 count(*)  전체 갯수를 불러오게 됩니다  게시판 갯수를 표기할 때 쓰입니다

"생성된 게시판 갯수 10개 "이런식으로요




$temp1 = mysql_query("select * from member_board where  board_no='1' and user_id = '$data[user_id]'");
while($board_data1 = mysql_fetch_array($temp1)) {

$board1= "$board_data1[board_id]";
$board_name1="$board_data1[board_name]";
$board_no = "1";

}

디비의 member_board  테이블에서 board_no 가 1인 것과 user_id = '$data[user_id] user_id 가 미니홈의 주인인

것만 찾아서 불러오게 됩니다

$board1= "$board_data1[board_id]";   $board1 은 보드아디가 기록됩니다 test 라고 게시판 아이디를 생성 했다면

$board1이라고 적혀 있는 부분은 test 로 기록되어 나옵니다

나머지 아래에 있는 소스들도 다 같습니다 다만  board_no 에 의해 몇번째 생성된 게시판인지 알수 있기 때문에

숫자만 달리 들어가는거죠 (게시판 생성할때 board_no 에 들어가는 숫자가 카운트 되게 만들어야 합니다)

그로 인해 불러올 때 제대로 불러올수 있는거죠 글을 쓸때 일종의 날짜나 글의 번호값 정도로 생각하시면 됩니다


새로 올라온글 아이콘 처리는 이미지 폴더에 적당한 아이콘을 new.gif 으로 저장해서 업로드 하세요


function repter($id)
{
$result=mysql_query("select * from member_get_memo  where board_id='$id' order by no desc
limit 1");  
while($new_data=mysql_fetch_array($result))
   {
     $new = " ";
     $check_time=(time()-$new_data[reg_date])/60/60;
     if($check_time>24)$new.=" ";
     if($check_time<=24)$new.="<img src=images/new.gif border=0>";
     echo "".stripslashes($new)."";
   }
}

메모 테이블에서 게시판별로 검사해 맨 나중에 올라온 글이 현재 시간과 글쓴 시간을 대조해 하루 안에 써진 거면

<?=repter($board1);?> 와 같이 표기해 주면  메뉴 부분에 아이콘이 뜨게 됩니다




이번엔 test_layout.php 을 열고 아래의 소스를 넣으시면 됩니다

위치는 미니홈 수정 팝업창 코드가 들어간 부분  그 코드를 빼고 아래 소스를 넣어 주시면 됩니다


이하 소스

---------------------------------------------------------------------------------------------------

<!--메뉴 :시작 -->
                        <script language="javascript">
                          <!--
                          function DisplayMenu(index) {
                          for (i=1; i<=6; i++)
                          if (index == i) {
                          thisMenu = eval("menu" + index + ".style");
                          thisMenu.display = "";
                          }
                          else {
                          otherMenu = eval("menu" + i + ".style");
                          otherMenu.display = "none";
                          }
                          }
                          -->
                        </script>



<table border="0"width="100%">
    <tr>
        <td height="20"align="center" valign="middle">
                        <a href="javascript:DisplayMenu(1)"> <font size="2"face="돋움"><b> 홈</b></font> </a>
                        <a href="javascript:DisplayMenu(2)"> <font color="#FFBE7D"font size="2"face="돋움"><b>게시판</b></font> </a>
                        <a href="javascript:DisplayMenu(3)"> <font color="#FFBE7D"font size="2"face="돋움"><b>겔러리</b></font> </a>
                        <a href="javascript:DisplayMenu(4)"> <font color="#FFBE7D"font size="2"face="돋움"><b>내 창고</b></font> </a>  
                        <a href="javascript:DisplayMenu(5)"> <font color="#FFBE7D"font size="2"face="돋움"><b>아바타</b></font> </a>  
                        <a href="javascript:DisplayMenu(6)"> <font color="#FFBE7D"font size="2"face="돋움"><b>선물함</b></font> </a>

<? if($member[no]==$data[member_no]){?>
<a href="#" onclick="window.open ('+ 'admin/mini_home_modify.php?id=<?=$data[user_id]?>',
'comment_edit' , 'toolbar=0, location=0, status=0, menubar=0, scrollbars=0, resizable=0, top=0, left=0, width=400, height=500')" onfocus='this.blur()'>[♧관리♧]</a> <?}?>

        </td>
    </tr>
    <tr>
        <td height="25"align="center" valign="middle">
           <div id="menu1" style="display:;">
<A HREF="new.php?id=<?=$data[user_id]?>" target="iframe2" class="a1">메인으로 </A>  
            </div>
          <div id="menu2" style="display:none;">
<?if($board1){?> <A HREF="list.php?id=<?=$board1 ?>" target="iframe2" class="a1"><?=$board_name1?><?=repter($board1);?></A> <?}?>
<?if($board2){?> <A HREF="list.php?id=<?=$board2 ?>" target="iframe2" class="a1"><?=$board_name2?><?=repter($board2);?> </A> <?}?>
<?if($board3){?> <A HREF="list.php?id=<?=$board3 ?>" target="iframe2" class="a1"><?=$board_name3?><?=repter($board3);?> </A> <?}?>
<?if($board4){?> <A HREF="list.php?id=<?=$board4 ?>" target="iframe2" class="a1"><?=$board_name4?><?=repter($board4);?> </A> <?}?>
<?if($board5){?> <A HREF="list.php?id=<?=$board5 ?>" target="iframe2" class="a1"><?=$board_name5?><?=repter($board5);?> </A> <?}?>
         </div>
          <div id="menu3" style="display:none;">
           </div>
          <div id="menu4" style="display:none;">
<A HREF="friends.php?id=<?=$data[user_id]?>" target="iframe2" class="a1">내친구</A> 
<A HREF="fans.php?id=<?=$data[user_id]?>" target="iframe2" class="a1">내팬들</A> 
           </div>          
          <div id="menu5" style="display:none;">
<A HREF="avatar_view.php?member_no=<?=$data[member_no]?>" target="iframe2" class="a1"> 아바타</A>            
<A HREF="album.php?member_id=<?=$data[user_id]?>" target="iframe2" class="a1">아바타 앨범</A>  
          </div>
          <div id="menu6" style="display:none;">
<A HREF="present.php?member_no=<?=$data[member_no]?>_1" target="iframe2" class="a1"> <?=$data[mini_pregent1]?></A>             
<A HREF="present.php?member_no=<?=$data[member_no]?>_2" target="iframe2" class="a1"> <?=$data[mini_pregent2]?></A>  
<A HREF="present.php?member_no=<?=$data[member_no]?>" target="iframe2" class="a1">아바타 선물함</A>          
          </div>          
        </td>
    </tr>
</table>


<!--메뉴 :끝 -->

----------------------------------------------------------------------------------------------------

이상 소스


위에 소스를 넣으신 후 아래 부분에 게시판 들어가는 부분이라고 써진 부분에 아래의 소스를

넣으십시요

이하 소스
-----------------------------------------------------------------------------------------------------

<!--메인 아이 프레임 :시작 -->
<IFRAME name=iframe2 align=top marginWidth=0 marginHeight=0 src="new.php?id=<?=$data[user_id]?>" frameBorder=0 width="100%" height="100%" scrolling=auto></IFRAME>
<!--메인 아이 프레임 :시작 -->

-----------------------------------------------------------------------------------------------------

이상 소스

게시판 연결 부분만 설명 드리겠습니다 다른 부분은 자바 스크립트를 이용한 부분이니 취향에 맞게 쓰시면 됩니다

<?if($board1){?> <A HREF="list.php?id=<?=$board1 ?>" target="iframe2" class="a1"><?=$board_name1?><?=repter($board1);?></A> <?}?>



<?=repter($board1);?>  새로 올라온 글이 있으면 아이콘이 뜨게 됩니다

위에 설명 했듯이 $board1(보드번호 1이들어간 것) 이 있으면 대괄호 안의 상황을 나타냅니다

아이 프레임을 넣긴 했지만 현재로서는 new.php 를 만들지 않았으니 주소없음 404 페이지가 나올것입니다

메뉴 부분에서도 몇부분은 마찬가지고요

현재 메뉴를 게시판 엘범 형태로 나누어 놓았습니다 그냥 풀어서 게시판만 들어가게 쓴다면  괜챦지만

메뉴별로 나누게 된다면 member_board 에 type이 들어가야 합니다

게시판을 만들때 순서대로 게시판 만들고 엘범게시판 만들면 상관 없지만

사용자의 형태는 더 다양하니까요

또한 몇번째 까지는 일반 게시판 몇번째부터는 엘범게시판 이렇게 나눈다면 게시판을 다 생성해야

엘범형 게시판을 생성할 수 있다는 불편함이 있기 때문입니다

엘범형은 다음에 만들어 보기로 하고 일반적인 게시판만 일단 넣어보았습니다



업로드 된 그림과 같이 나오면 됩니다

업로드 1은 메인 화면 2는 게시판을 클릭했을 때입니다

게시판의 글 읽기로 들어갔을 때 게시판이 크게 나온다면

view.php의 html의 다음 부분을 찾아 아래와 같이 넓이를 숫자에서 100% 로 고쳐 주세요

<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">

코멘트 들어가는 테이블도 넓이를 아래와 같이 100% 로 맞춰 주시구요

   <table border="1"width="100%">
                <tr>
                    <td width="963" height="54" bgcolor="silver">            코멘트 글과 코멘트를 입력 시키는 곳
                    </td>
                </tr>
            </table>

나모로 작업하다 보니 가끔 자기 멋대로 조금만 손대도 %가 숫자로 바뀌어 버리네요 ^^;

제목 글쓴이 날짜
나만의 미니홈 만들기 ㅡ메뉴에 게시판 연결 [5] file 예뜨락 2004.12.17
인스타그램 해시태그 회원가입 없이 끌어오기 외인 2017.02.08
XE 1.8 대응 apache 2.2 / php 5.5 / MariaDB 10 설치 [11] 간장게장같은남자 2015.04.19
DB에서 직접 시퀀스 생성하기 [3] 기진곰 2015.07.18
구글 API 활용(뉴스가져오기) pixfine 2014.09.24
이거 어디다 올려야 될 지 몰라 여기다 올립니다. 프로그래머님들 읽어보세요. [2] 유샤인 2014.06.10
짧은 주소를 가능 하게 하는 서버(아파치, httpd) 설정 [3] 꿈섬 2014.07.27
해외 아이피 차단 방법입니다. [3] Flolida 2014.03.01
Windows IIS 에서 F5 연타 방지하기 (mod_evasive , limit_req) [3] file StyleRoot 2014.04.08
페이지로딩시 메모리 부족이란 오류메시지가 뜰때... 똑디 2013.11.07
rewrite mod 가 안 돼서 고생한 경험담입니다. [2] obok 2013.06.29
-추가- 당신의 XE 기반 홈페이지를 훅가게 하는 방법 4가지 [26] 老姜君 2009.10.08
메인화면에 설문조사 위젯(?) 만들기 [3] file 3D매니아 2010.12.14
'신고 수' 노출 함수 및 신고시 게시글 이동팁 [11] 인터니즈™ 2012.07.03
IIS 7.5 + XE 업로드 용량 개선 방법 [1] file 류군 2012.07.16
첨부파일 100% 에서 사라지는 문제 저도 해결 [2] 안나오네 2010.06.09
큰 파일의 썸네일이 안생길때 해결방법-추가 [7] HIKARU 2008.03.18
간단한 시간제한 자료실 만들기 [2] 옥수수밭 2010.03.17
이유는 모르겠는데 뷰테이블을 쓰면 XE의 속도가 크게 떨어지는 것 같습니다. [2] 철갑 2011.04.25
레이아웃에 소스추가해서 트래픽보기! [2] file 막시민 2011.03.07