제로보드 관련된 유용한 정보를 공유하는 곳입니다.
글 수 98
13
조회 수 : 3292 신고 : 0
출처 : |
---|
중복 파일명이라 다운이 안되었나 봅니다, 파일명 변경해서 업로드 했습니다 (2003/05/02 00:48)
게시물 읽은 사람들 리스트가 나오면 어떨까 혼자 만들어 보다가
hof 님의 소스를 보고 수정에 가깝게 만들었습니다
(소스를 수정해보려다 그냥 새로 했는데 수정이라고 해야겠죠?;;)
http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&no=3272
- 지정 레벨 이상만 기록
- 지정 레벨 이상만 열람
- 글 작성자는 기록하지 않음
- 읽은 사람 수와 읽은 사람 id, 이름 출력
php에 입문한지 얼마 되지 않아 여러모로 허접하고 버그도 있을지 모릅니다
그리고 제가 필요한 부분만 넣어서 좀 단순합니다
필요하신 분 좋게 고쳐서 잘 쓰시면 좋겠네요 (많은 질책 환영합니다)
먼저 게시판 테이블에
reader(TEXT NULL) 와 readername(TEXT NULL) 컬럼을 추가해야합니다
ex) ALTER TABLE zetyx_board_freeboard ADD reader TEXT NULL, ADD readername TEXT NULL
- 제로보드에 추가하는 방법은
1. 스킨의 view.php 에 그대로 붙혀 넣으시거나 이 파일을 include 하거나
2. 제로보드와 같은 폴더에 이 파일을 넣은뒤 제로보드의 view.php 적당한 위치 ( 내용보기와 코멘트 출력 부분 사이 : 264번줄 ) 에
include "reader_list.php"; 이런식으로 include 하면 됩니다
- 지정된 게시판에만 사용하고 싶으시면
if($id == "free" || $id == "diary"){
include "reader_list.php";
}
이런식으로 게시판 아이디를 넣으면 되겠죠
소스의 주석에 약간의 도움말을 넣었습니다
PS (05/02 13:50)
만들때 제 위주로 만든 편이고 중복되는 부분을 줄이다 보니
[읽은 사람 리스트]에 기록되는 사람 레벨 보다
[읽은 사람 리스트]를 조회할 수 있는 사람 레벨이 더 높아야 합니다(제로보드 레벨이니 수치적으로는 작죠;;)
읽은 사람 리스트를 출력할때
기존 기록을 부를 때는 기록되는 사람일 경우에만 불러 오기 때문이죠
이부분을 수정하려면 출력할때도 부른 데이터를 쪼개줘야합니다
-------------------------------------------
시간을 추가하려면
먼저 시간을 기록할 컬럼을 만드시고
예를 들어 readerdate (text null) 라고 만드신후
아래와 같이 수정하면 될거 같네요
(테스트는 안하고 방금 만들어 봤습니다)
<?
$exp = " / "; // 읽은 사람 배열 구분자 ($reader_list 를 통채로 출력하지 않을 경우 수정 하지 않아도 무방)
$w_level = 9; // [읽은 사람 리스트]에 기록할 레벨 (이 레벨 이상만 기록)
$v_level = 1; // [읽은 사람 리스트]를 볼 수 있는 레벨 (이 레벨 이상만 볼 수 있음)
if ($member[level] <= $w_level) {
if ($data[reader]) {
$reader=explode($exp,$data[reader]);
$readername=explode($exp,$data[readername]);
$readerdate=explode($exp,$data[readerdate]);
}
else {
$reader = array();
$readername = array();
$readerdate = array();
$exp = "";
}
if ($data[name] != $member[name] (!$data[reader] || !in_array($member[user_id],$reader))) {
$r_date = time();
$reader_list=$data[reader].$exp.$member[user_id];
$readername_list=$data[readername].$exp.$member[name];
$readerdate_list=$data[readerdate].$exp.$r_date;
array_push($reader, $member[user_id]);
array_push($readername, $member[name]);
array_push($readerdate, $r_date]);
mysql_query("update $t_board"."_$id set reader = '$reader_list' where no='$no'");
mysql_query("update $t_board"."_$id set readername = '$readername_list' where no='$no'");
mysql_query("update $t_board"."_$id set readerdate = $readerdate_list where no='$no'");
}
}
if ($member[level] <= $v_level $reader){ ?>
읽은 회원 (<?=count($reader)?>명) :
<? for ($i=0; $i < count($reader); $i++){ ?>
<B><?=$readername[$i]?></B> (<?=$reader[$i]?> <?=date("Y/m/d H:i:s",$readerdate[$i])?>)
<? }
}
?>
시간 추가한 소스 32번째 라인에
array_push($readerdate, $r_date]);
이걸
array_push($readerdate, $r_date);
이렇게 고쳐야 합니다;; 오타를 =_=
그리고!! 만약에 저 시간을 추가한 소스를 쓸려면
기존에 reader, readername 컬럼을 비워야 합니다
즉 내용을 없애야 매치가 된다 이말입니다;;
delete reader, readername from zetyx_board_free
이런식으로요...
그렇지 않으면 아이디, 이름은 매치가 되지만 시간은 따로 놉니다
왜냐면 시간도 이름과 아이디와 같이 기록되어야 제대로 나오니까요
<출처 :제로보드 ainoai님>
게시물 읽은 사람들 리스트가 나오면 어떨까 혼자 만들어 보다가
hof 님의 소스를 보고 수정에 가깝게 만들었습니다
(소스를 수정해보려다 그냥 새로 했는데 수정이라고 해야겠죠?;;)
http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&no=3272
- 지정 레벨 이상만 기록
- 지정 레벨 이상만 열람
- 글 작성자는 기록하지 않음
- 읽은 사람 수와 읽은 사람 id, 이름 출력
php에 입문한지 얼마 되지 않아 여러모로 허접하고 버그도 있을지 모릅니다
그리고 제가 필요한 부분만 넣어서 좀 단순합니다
필요하신 분 좋게 고쳐서 잘 쓰시면 좋겠네요 (많은 질책 환영합니다)
먼저 게시판 테이블에
reader(TEXT NULL) 와 readername(TEXT NULL) 컬럼을 추가해야합니다
ex) ALTER TABLE zetyx_board_freeboard ADD reader TEXT NULL, ADD readername TEXT NULL
- 제로보드에 추가하는 방법은
1. 스킨의 view.php 에 그대로 붙혀 넣으시거나 이 파일을 include 하거나
2. 제로보드와 같은 폴더에 이 파일을 넣은뒤 제로보드의 view.php 적당한 위치 ( 내용보기와 코멘트 출력 부분 사이 : 264번줄 ) 에
include "reader_list.php"; 이런식으로 include 하면 됩니다
- 지정된 게시판에만 사용하고 싶으시면
if($id == "free" || $id == "diary"){
include "reader_list.php";
}
이런식으로 게시판 아이디를 넣으면 되겠죠
소스의 주석에 약간의 도움말을 넣었습니다
PS (05/02 13:50)
만들때 제 위주로 만든 편이고 중복되는 부분을 줄이다 보니
[읽은 사람 리스트]에 기록되는 사람 레벨 보다
[읽은 사람 리스트]를 조회할 수 있는 사람 레벨이 더 높아야 합니다(제로보드 레벨이니 수치적으로는 작죠;;)
읽은 사람 리스트를 출력할때
기존 기록을 부를 때는 기록되는 사람일 경우에만 불러 오기 때문이죠
이부분을 수정하려면 출력할때도 부른 데이터를 쪼개줘야합니다
-------------------------------------------
시간을 추가하려면
먼저 시간을 기록할 컬럼을 만드시고
예를 들어 readerdate (text null) 라고 만드신후
아래와 같이 수정하면 될거 같네요
(테스트는 안하고 방금 만들어 봤습니다)
<?
$exp = " / "; // 읽은 사람 배열 구분자 ($reader_list 를 통채로 출력하지 않을 경우 수정 하지 않아도 무방)
$w_level = 9; // [읽은 사람 리스트]에 기록할 레벨 (이 레벨 이상만 기록)
$v_level = 1; // [읽은 사람 리스트]를 볼 수 있는 레벨 (이 레벨 이상만 볼 수 있음)
if ($member[level] <= $w_level) {
if ($data[reader]) {
$reader=explode($exp,$data[reader]);
$readername=explode($exp,$data[readername]);
$readerdate=explode($exp,$data[readerdate]);
}
else {
$reader = array();
$readername = array();
$readerdate = array();
$exp = "";
}
if ($data[name] != $member[name] (!$data[reader] || !in_array($member[user_id],$reader))) {
$r_date = time();
$reader_list=$data[reader].$exp.$member[user_id];
$readername_list=$data[readername].$exp.$member[name];
$readerdate_list=$data[readerdate].$exp.$r_date;
array_push($reader, $member[user_id]);
array_push($readername, $member[name]);
array_push($readerdate, $r_date]);
mysql_query("update $t_board"."_$id set reader = '$reader_list' where no='$no'");
mysql_query("update $t_board"."_$id set readername = '$readername_list' where no='$no'");
mysql_query("update $t_board"."_$id set readerdate = $readerdate_list where no='$no'");
}
}
if ($member[level] <= $v_level $reader){ ?>
읽은 회원 (<?=count($reader)?>명) :
<? for ($i=0; $i < count($reader); $i++){ ?>
<B><?=$readername[$i]?></B> (<?=$reader[$i]?> <?=date("Y/m/d H:i:s",$readerdate[$i])?>)
<? }
}
?>
시간 추가한 소스 32번째 라인에
array_push($readerdate, $r_date]);
이걸
array_push($readerdate, $r_date);
이렇게 고쳐야 합니다;; 오타를 =_=
그리고!! 만약에 저 시간을 추가한 소스를 쓸려면
기존에 reader, readername 컬럼을 비워야 합니다
즉 내용을 없애야 매치가 된다 이말입니다;;
delete reader, readername from zetyx_board_free
이런식으로요...
그렇지 않으면 아이디, 이름은 매치가 되지만 시간은 따로 놉니다
왜냐면 시간도 이름과 아이디와 같이 기록되어야 제대로 나오니까요
<출처 :제로보드 ainoai님>
소중한 댓글 부탁드립니다.
추천수 10단위당 메달이 1개씩 노출되고, 추천수에 따라 배경색이 변하며, 일정수의 추천수를 받을시
아이콘이 붙게됩니다.
추천수 10단위당 메달이 1개씩 노출되고, 추천수에 따라 배경색이 변하며, 일정수의 추천수를 받을시
![BEST](/modules/board/skins/xe_webmini/img/common/icon_bestreply.gif)
추천수에 따른 배경색 보기
본문으로 바로가기
- 추천수 50개이상
- 추천수 30개이상
- 추천수 20개이상
- 추천수 10개이상
- 추천수 3개이상