rand(life)

apm 설치부터 실시간 쪽지확인까지 결정판 본문

컴퓨터

apm 설치부터 실시간 쪽지확인까지 결정판

flogsta 2007. 5. 6. 15:27

1. apmsetup 설치

nt service mode  에 체크 --- 관리도구에서 apmsetup 강제종료 – mysqld-nt.exe 강제종료 – 다시실행 – 제어판 – 관리도구 – 서비스에서 apm-mysql을 수동으로 – mysql부터 다시실행

phpmyadmin 실행하여 mysql계정생성
phpmyadmin  실행 - root로그인 - 암호  apmsetup – 새 데이타베이스 만들기 - 시작페이지로 가기- 사용권한 클릭 -새 사용자 추가 - 사용자명 - zboard; 호스트 Local ; 암호 - --- 입력 -> 실행 - 다음 데이타베이스에 권한 추가하기 -- zboard선택 - 데이타베이스에 관한 권한 모두 체크 – 실행 -상단의 사용권한 클릭 - 하단의 파란색 글씨 reload the priveleges 클릭 –로그아웃 -사용자명  zboard 로 로그인되는지 확인

2.제로보드설치하기
/apm-setup/htdocs 아래에 다운받은 제로보드폴더(bbs)를 복사한다.
Myhomepage/bbs/install.php 실행
동의합니다에 체크--설치시작
Hostname - localhost
SQL UserId -- zboard
password --
DBname zboard

관리자정보입력
id - admin
password, name입력후 로그인한다.

apmsetup/bbs/의 setup.php를 열어서 이메일, 사이트주소, 사이트이름 등을 수정한다.


왼쪽 메뉴에서 새 그룹추가
그룹이름 입력   - confirm
게시판추가 - 게시판이름 입력 - confirm

http://127.0.0.1/bbs/admin.php               관리자페이지주소
http://127.0.0.1/bbs/zboard.php?id=test      test라는 이름의 게시판주소


4. 아웃로그인적용하기
마음에 드는 외부로그인 스킨을 outlogin_skin 디렉토리에 업로드 하신후
외부로그인을 적용하고자 하는 페이지 제일 윗 부분에 다음과 같이 입력하세요
(게시판만 사용할 것이므로, C:\APM_Setup\htdocs\bbs\skin\nzeo_ver4_bbs 아래의 setup.php 에 삽입)
<?
   $_zb_url = "http://192.168.0.1/bbs/";
   $_zb_path = "c:/apm_setup/htdocs/bbs/";
   include $_zb_path."outlogin.php";
?>

그리고
<? print_outlogin("스킨이름", 그룹번호, 허용레벨) ?>
을 그 다음 줄에 추가한다.
예를 들면 스킨이름이 pppp라면
<? print_outlogin("pppp", 1, 10) ?> 처럼 입력한다.

왼쪽에 치우친 감이 있으므로, outlogin_skin폴더아래의 logged.html 이나 login.html 에서 <align>을 조정한다.


5. 새 글이 등록되면 운영자에게 쪽지보내기
제로보드디렉토리의 write_ok.php를 열고 하단의 // MySQL 닫기 바로 윗줄에 아래의 소스를 추가한다.

// 글쓰면 운영자에게 쪽지보내기.

        if($mode=="write"||$mode=="reply"){

        $m_masters=mysql_query("select * from $member_table where is_admin=1||(is_admin=2&&group_no='$group_data[no]')",$connect);

        $m_masters_num=mysql_affected_rows();

        $m_date = date("Y년 m월 d일 H시 i분 s초", $reg_date);

        $m_subject = "새글이 등록되었습니다.";

        $m_memo = "<b>작성시간</b> : ".$m_date."\n\n<b>작성자이름</b> : ".$name."\n\n<b>게시판아이디</b> : ".$id."\n\n<b>제목</b> : ".$subject."\n\n<b>내용</b> : ".$memo."\n\n<a onclick=\"opener.location.href= \'$view_file_link?id=$id&page=$page&page_num=$page_num&select_arrange=$select_arrange&desc=$des&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&no=$no&category=$category\'\" href=\"JavaScript:window.close()\">[<font color=orange><b>바로가기</b></font>]</a>";

        for($m_i=0;$m_i<$m_masters_num;$m_i++){

                mysql_data_seek($m_masters,$m_i);

                $m_master_info=mysql_fetch_array($m_masters);

                mysql_query("insert into $get_memo_table (member_no,member_from,subject,memo,readed,reg_date) values ($m_master_info[no],1,'$m_subject','$m_memo',1,'$reg_date')") or error(mysql_error());

                mysql_query("insert into $send_memo_table (member_to,member_no,subject,memo,readed,reg_date) values ($m_master_info[no],1,'$m_subject','$m_memo',1,'$reg_date')") or error(mysql_error());

                mysql_query("update $member_table set new_memo=1 where no=$m_master_info[no]") or error(mysql_error());

        } }


6. 코멘트(댓글) 달리면 해당게시물 작성자와 관리자에게 쪽지보내기

제로보드디렉토리의 comment_ok.php를 열고 하단의 @mysql_close($connect); 라는 소스 바로 윗줄에 아래의 소스를 추가합니다.

 // 코멘트달면 운영자에게 쪽지보내기.

        $m_masters=mysql_query("select * from $member_table where is_admin=1||(is_admin=2&&group_no='$group_data[no]')",$connect);

        $m_masters_num=mysql_affected_rows();

        $m_date = date("Y년 m월 d일 H시 i분 s초", $reg_date);

        $m_subject = "새 코멘트가 작성되었습니다.";

        $m_memo = "작성시간 : ".$m_date."\n\n작성자이름 : ".$name."\n\n내용 : <b><u><font color=blue>".$name."</font></u></b> 님이 <b><u><font color=blue>".$id."</font></u></b>게시판에\n\n<a onclick=\"opener.location.href= \'$view_file_link?id=$id&page=$page&page_num=$page_num&select_arrange=$select_arrange&desc=$des&sn=$sn&ss=$ss&sc=$sc&keyword=$keyword&no=$no&category=$category\'\" href=\"JavaScript:window.close()\"><font color=999999>".$memo."</font></a>\n\n라고 코멘트를 남기셨습니다.";

        for($m_i=0;$m_i<$m_masters_num;$m_i++){

                mysql_data_seek($m_masters,$m_i);

                $m_master_info=mysql_fetch_array($m_masters);

                mysql_query("insert into $get_memo_table (member_no,member_from,subject,memo,readed,reg_date) values ($m_master_info[no],1,'$m_subject','$m_memo',1,'$reg_date')") or error(mysql_error());

                mysql_query("insert into $send_memo_table (member_to,member_no,subject,memo,readed,reg_date) values ($m_master_info[no],1,'$m_subject','$m_memo',1,'$reg_date')") or error(mysql_error());

                mysql_query("update $member_table set new_memo=1 where no=$m_master_info[no]") or error(mysql_error());

        }

 // 여기까지


7. 자동으로 달리는 댓글 없애기

게시판 스킨파일중(여기서는C:\APM_Setup\htdocs\bbs\skin\nzeo_ver4_bbs아래의) view.php 파일 소스 맨하단의 내용을 지우면 됩니다..

아마 이부분이겠내요.

<table width=<?=$width?> cellspacing=1 cellpadding=4>
<col width=100></col><col width=8></col><col width=></col><col width=100></col>
<tr valign=top bgcolor=white>
<td>
<table border=0 cellspacing=0 cellpadding=0 width=100% style=table-layout:fixed>
<tr>
<td class=list_eng>바른생활 <b>NZEO</b></td>
</tr>
</table>
</td>
<td width=8 class=line2 style=padding:0px><img src=/images/t.gif border=0 width=8></td>
<td class=list_eng>글은 인터넷에서 자신을 나타내는 유일한 모습입니다.<br>상대에게 상처를 주기보다 같이 즐거워 할 수 있는 코멘트 부탁드려요.</td>
<td align=right><font class=list_eng><?=date("Y-m-d")?><br><?=date("H:i:s")?></font></td>
</tr>
</table>


8. 실시간 쪽지 확인--리프레시방법이용

[과정 1]
홈피에 사용하는 아웃로긴 스킨의 logged.html의 가장 위에다 아래 스크립트를 붙여 넣기. (../../bbs/<-제로보드 경로 입니다. 자신의 환경에 맞게 사용하세요.

<!-- 쪽지가 도착하면 새창 띄우기 -->
<script language=javascript>
var memo = '[memo]';
memolength=memo.length-33;
if (memo.substring(memolength,memolength+2)=='on' ) {
window.open('../../bbs/member_memo.php','member_memo','width=450,height=500,status=no,toolbar=no,resizable=yes,scrollbars=yes')
}
</script>


[과정2]
실시간 쪽지가 필요한 페이지 상단에 아래 스크립트를 붙여 넣기 하면 과정 끝. 

<!-- 소리없이 창을 리플레쉬 -->
<script language='javascript'>
window.setTimeout('window.location.reload()',10000); //소리없이 리플리쉬 시킨다.(1000 = 1초).
</script>
<? print_outlogin("1번 스크립트를 적용한 아웃로긴 스킨 이름", 1, 10) ?>


-----------아이프레임을 이용해 아웃로그인만 리프레쉬

real_time 폴더는 아웃로긴 스킨 폴더속에 넣고  (소리가 나게하려면 다른 아웃로그인폴더안의 /image폴더를 복사해서 넣는다)
real_time.php는 상단의 아웃로긴 경로를 자신의 환경에 맞춘 다음에 아무 곳(예:제로보드 폴더) 속에 넣는다.

real_time.php 의 내용
<?
   $_zb_url = "http://192.168.0.1/bbs/";
   $_zb_path = "c:/apm_setup/htdocs/bbs/";
   include $_zb_path."outlogin.php";
?>
<!-- 소리없이 창을 리플레쉬 -->
<script language='javascript'>
window.setTimeout('window.location.reload()',1000); //소리없이 리플리쉬 시킨다.(1000 = 1초).
</script>
<? print_outlogin("real_time", 1, 10) ?>


게시판만 사용할 것이므로, C:\APM_Setup\htdocs\bbs\skin\nzeo_ver4_bbs 아래의 setup.php 를 열어 다음을 원하는 위치에 아이프레임으로 넣는다.

<iframe src="/bbs/real_time.php" frameborder="0" name="real_time" width="0" height="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>



9. 댓글 10자 제한 풀기
skin\nzeo_ver4_bbs\view_write_comment.php 부분중에

<script>

function check_comment_submit(obj) {

if(obj.memo.value.length<10) {

alert("코멘트는 10자 이상 적어주세요");

obj.memo.focus();

return false;

}

return true;

}

</script>

이부분을 수정해 주면됩니다.


10. 연속 글쓰기 30초 제한 풀기

제로보드 디렉토리에 가셔서 write_ok.php를 여세요.

162라인에서 168라인에 보면,
// 도배인지 아닌지 검사;; 우선 같은 아이피대에 30초이내의 글은 도배로 간주;;
이런 게 있죠?
자.. 이제 알아서 고치시기 바랍니다. ^^

저는 그냥 맘 편하게 1초로 했습니다. 아주 좋군요. 헛헛; -_-;; (0초도 될듯;)
빨간 부분 고치시면 됩니다.

if(!$is_admin&&$mode!="modify")
  {
   $max_no=mysql_fetch_array(mysql_query("select max(no) from $t_board"."_$id"));
   $temp=mysql_fetch_array(mysql_query("select count(*) from $t_board"."_$id where ip='$ip' and $reg_date - reg_date <30 and no='$max_no[0]'"));
   if($temp[0]>0) {Error("글등록은 30초이상이 지나야 가능합니다"); exit;}
  }