rand(life)
apm 설치부터 실시간 쪽지확인까지 결정판 본문
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;}
}