같은 그룹내의 최신글을 뽑아오자. ver.01 정보
일반 같은 그룹내의 최신글을 뽑아오자. ver.01본문
아 이거땜시 머리 쥐터지는줄 알았는데..서너시간 걸려도 원하는게 안나와서 이대로 일단 올립니다.
프로그램은 어케 돌아가냐믄
gr_newlist("스킨","그룹이름","5","25");
이런식으루 씁니다.
원래는 그룹내의 모든 최신을을 등록한 순서대로 뽑을라고 했는데, 잘 안되드라구요
그래서 머리좀 더 굴려볼려다가 나중에 천천히 다시 생각해보기로 하고 현재 모습대로 올립니다.
1. 스킨명을 적고
2. 원하는 그룹명을 적고,
3, 몇줄까지 뽑느냐.
4. 제목의 글자수제한을 얼마나 주느냐
만일 A그룹에 1,2,3 이라는 세개의 게시판이 있다면 각 게시판에서 최신글 2개씩 뽑아 오도록 했습니다.
그럼 각 게시판에 글이 2개 이상씩 있다면,
1 - 첫번째글
1 - 두번째글
2 - 첫번째글
2 - 두번째글
3 - 첫번째글
3 - 두번째글
아 이거 좀더 좋고 편하게 고쳐주실분..전 다른 작업도 많은데 . 현재이거보다 더 효율적이고 보기 좋게
뽑아 볼려고 들일 시간이 없어서 이걸루 만족하고 올립니다만..
시간내실분 있음 좀 부탁합니다^^
function gr_newlist($skins, $gr_id, $rows, $subjectlen='') {
global $cfg;
$res=mysql_query("select bo_table from $cfg[table_board] where gr_id='$gr_id'");
while($row=mysql_fetch_array($res)){
$bo_table=$row[bo_table];
$sql = " select * from $cfg[table_board] where bo_table = '$bo_table' ";
$bd = sql_fetch_array($sql);
if ($subjectlen == '') $subjectlen = $bd[bo_subject_len];
$cfg[board_table_prefix] = "donald_"; // 게시판 테이블의 접두사
$skinimg = "/list_skin/images"; // 이미지파일을 images폴더에 넣는걸 기본으로했습니다.
$filedir = "/board/data/file"; //파일디렉토리
$table = "{$cfg[board_table_prefix]}{$bo_table}";
$result = sql_query_error(" select * from $table where wr_comment = 0 order by wr_id desc limit 2 ");
echo "<table border=0 cellpadding=0 cellspacing=0 width=90% align=center>";
for ($i = 0; $row = mysql_fetch_array($result); $i++) {
if($kk==($rows)) break;
$wr_subject = get_text(cut_str($row[wr_subject], $subjectlen, '…'));
$wr_content = get_text(cut_str($row[wr_content], 100, '…'));
$wr_content2 = get_text(cut_str($row[wr_content], 60, '…')); // 내용 미리보기를 위해 넣었습니다. 400자까지만 짜르기했습니다.
$wr_memo = $row[wr_content]; // 내용 미리보기를 위해 넣었습니다. 400자까지만 짜르기했습니다.
$wr_id = $row[wr_id]; // 게시판번호
$wr_name = $row[wr_name]; // 게시자이름 혹 최신글에 이름출력을 위해 변수선언했습니다.
$wr_datetime = cut_str($row[wr_datetime],10); // 최신글에 날짜까지 출력하고싶을때를 위해 변수선언했습니다.
$wr_commentcnt = $row[wr_commentcnt];
if(0<$wr_commentcnt != ""){
$wr_commentcnt = "($wr_commentcnt)";
}else{
$wr_commentcnt = "";
}
$image = $row[wr_file1]; // 이미지를 뽑을 때 사용
if(0<$image != ""){
$image1 = "<img src=$filedir/$image width=80 border=1>";
$image2 = "<img src=$filedir/$image width=60 border=1>";
}else{
$image1 = "<img src=$filedir/noimage.gif height=80 width=80 border=1>";
$image2 = "<img src=$filedir/noimage.gif height=60 width=60 border=1>";
}
/* $icon = $row[wr_icon]; // 아이콘을 뽑을때 사용
if(0<$icon != ""){
$icon = "<img src=$skindir/icon/icon_$icon.gif height=35 width=35 border=1>";
}else{
$icon = "";
}
*/
$mb_icon = $mb_id = ""; // 멤버 아이콘을 뽑을 때 사용
if ($row[mb_id]) {
$sql2 = " select mb_icon from gb_member where mb_id = '$row[mb_id]' ";
$row2 = sql_fetch_array($sql2);
if ($row2[mb_icon])
$mb_icon = "<img src='/board/data/member/$row2[mb_icon]' align=absmiddle'>";
}
$ca_name = $wr_id = ""; // 분류를 뽑을 때 사용
if ($row[wr_id]) {
$sql1 = " select ca_name from {$table}_cat where ca_id = '$row[ca_id]'";
$row1 = sql_fetch_array($sql1);
if ($row1[ca_name])
$ca_name = "[$row1[ca_name]]";
}
$icon_file = "";
if ($row[wr_file1] || $row[wr_file2])
$icon_file = "<img src='$skinimg/icon_file.gif' align=absmiddle>";
$icon_link = "";
if ($row[wr_link1] || $row[wr_link2])
$icon_link = "<img src='$skinimg/icon_link.gif' align=absmiddle>";
$a_list_link = "<a href='/board/gbview.php?bo_table=$bo_table&wr_id=$row[wr_id]' class=s_a>";
$icon_new = "";
if ($row[wr_datetime] >= date("Y-m-d H:i:s", time() - $bd[bo_new] * 3600))
$icon_new = "<img src='$skinimg/icon_new.gif' align=absmiddle'>";
$icon_hot = "";
if ($row[wr_hit] >= $bd[bo_hot])
$icon_hot = "<img src='$skinimg/icon_hot.gif' align=absmiddle'>";
$icon_battle = "";
if ($row[wr_commentcnt] >= $bd[bo_battle])
$icon_battle = "<img src='$skinimg/icon_battle.gif' align=absmiddle'>";
$icon_secret = "";
if ($row[wr_secret])
$icon_secret = "<img src='$skinimg/icon_secret.gif' align=absmiddle'>";
// include "./$cfg[list_skin]/$skins/newlist_main.skin.php";
$aa="/home/hosting_users/xxxx/www/list_skin/"."$skins"."_skin.php";
include "$aa";
// $skin은 공지사항 notice, 일반형 nomal, 사진형 photo
$kk++;
}
mysql_free_result($result);
echo "</table>";
}
}
프로그램은 어케 돌아가냐믄
gr_newlist("스킨","그룹이름","5","25");
이런식으루 씁니다.
원래는 그룹내의 모든 최신을을 등록한 순서대로 뽑을라고 했는데, 잘 안되드라구요
그래서 머리좀 더 굴려볼려다가 나중에 천천히 다시 생각해보기로 하고 현재 모습대로 올립니다.
1. 스킨명을 적고
2. 원하는 그룹명을 적고,
3, 몇줄까지 뽑느냐.
4. 제목의 글자수제한을 얼마나 주느냐
만일 A그룹에 1,2,3 이라는 세개의 게시판이 있다면 각 게시판에서 최신글 2개씩 뽑아 오도록 했습니다.
그럼 각 게시판에 글이 2개 이상씩 있다면,
1 - 첫번째글
1 - 두번째글
2 - 첫번째글
2 - 두번째글
3 - 첫번째글
3 - 두번째글
아 이거 좀더 좋고 편하게 고쳐주실분..전 다른 작업도 많은데 . 현재이거보다 더 효율적이고 보기 좋게
뽑아 볼려고 들일 시간이 없어서 이걸루 만족하고 올립니다만..
시간내실분 있음 좀 부탁합니다^^
function gr_newlist($skins, $gr_id, $rows, $subjectlen='') {
global $cfg;
$res=mysql_query("select bo_table from $cfg[table_board] where gr_id='$gr_id'");
while($row=mysql_fetch_array($res)){
$bo_table=$row[bo_table];
$sql = " select * from $cfg[table_board] where bo_table = '$bo_table' ";
$bd = sql_fetch_array($sql);
if ($subjectlen == '') $subjectlen = $bd[bo_subject_len];
$cfg[board_table_prefix] = "donald_"; // 게시판 테이블의 접두사
$skinimg = "/list_skin/images"; // 이미지파일을 images폴더에 넣는걸 기본으로했습니다.
$filedir = "/board/data/file"; //파일디렉토리
$table = "{$cfg[board_table_prefix]}{$bo_table}";
$result = sql_query_error(" select * from $table where wr_comment = 0 order by wr_id desc limit 2 ");
echo "<table border=0 cellpadding=0 cellspacing=0 width=90% align=center>";
for ($i = 0; $row = mysql_fetch_array($result); $i++) {
if($kk==($rows)) break;
$wr_subject = get_text(cut_str($row[wr_subject], $subjectlen, '…'));
$wr_content = get_text(cut_str($row[wr_content], 100, '…'));
$wr_content2 = get_text(cut_str($row[wr_content], 60, '…')); // 내용 미리보기를 위해 넣었습니다. 400자까지만 짜르기했습니다.
$wr_memo = $row[wr_content]; // 내용 미리보기를 위해 넣었습니다. 400자까지만 짜르기했습니다.
$wr_id = $row[wr_id]; // 게시판번호
$wr_name = $row[wr_name]; // 게시자이름 혹 최신글에 이름출력을 위해 변수선언했습니다.
$wr_datetime = cut_str($row[wr_datetime],10); // 최신글에 날짜까지 출력하고싶을때를 위해 변수선언했습니다.
$wr_commentcnt = $row[wr_commentcnt];
if(0<$wr_commentcnt != ""){
$wr_commentcnt = "($wr_commentcnt)";
}else{
$wr_commentcnt = "";
}
$image = $row[wr_file1]; // 이미지를 뽑을 때 사용
if(0<$image != ""){
$image1 = "<img src=$filedir/$image width=80 border=1>";
$image2 = "<img src=$filedir/$image width=60 border=1>";
}else{
$image1 = "<img src=$filedir/noimage.gif height=80 width=80 border=1>";
$image2 = "<img src=$filedir/noimage.gif height=60 width=60 border=1>";
}
/* $icon = $row[wr_icon]; // 아이콘을 뽑을때 사용
if(0<$icon != ""){
$icon = "<img src=$skindir/icon/icon_$icon.gif height=35 width=35 border=1>";
}else{
$icon = "";
}
*/
$mb_icon = $mb_id = ""; // 멤버 아이콘을 뽑을 때 사용
if ($row[mb_id]) {
$sql2 = " select mb_icon from gb_member where mb_id = '$row[mb_id]' ";
$row2 = sql_fetch_array($sql2);
if ($row2[mb_icon])
$mb_icon = "<img src='/board/data/member/$row2[mb_icon]' align=absmiddle'>";
}
$ca_name = $wr_id = ""; // 분류를 뽑을 때 사용
if ($row[wr_id]) {
$sql1 = " select ca_name from {$table}_cat where ca_id = '$row[ca_id]'";
$row1 = sql_fetch_array($sql1);
if ($row1[ca_name])
$ca_name = "[$row1[ca_name]]";
}
$icon_file = "";
if ($row[wr_file1] || $row[wr_file2])
$icon_file = "<img src='$skinimg/icon_file.gif' align=absmiddle>";
$icon_link = "";
if ($row[wr_link1] || $row[wr_link2])
$icon_link = "<img src='$skinimg/icon_link.gif' align=absmiddle>";
$a_list_link = "<a href='/board/gbview.php?bo_table=$bo_table&wr_id=$row[wr_id]' class=s_a>";
$icon_new = "";
if ($row[wr_datetime] >= date("Y-m-d H:i:s", time() - $bd[bo_new] * 3600))
$icon_new = "<img src='$skinimg/icon_new.gif' align=absmiddle'>";
$icon_hot = "";
if ($row[wr_hit] >= $bd[bo_hot])
$icon_hot = "<img src='$skinimg/icon_hot.gif' align=absmiddle'>";
$icon_battle = "";
if ($row[wr_commentcnt] >= $bd[bo_battle])
$icon_battle = "<img src='$skinimg/icon_battle.gif' align=absmiddle'>";
$icon_secret = "";
if ($row[wr_secret])
$icon_secret = "<img src='$skinimg/icon_secret.gif' align=absmiddle'>";
// include "./$cfg[list_skin]/$skins/newlist_main.skin.php";
$aa="/home/hosting_users/xxxx/www/list_skin/"."$skins"."_skin.php";
include "$aa";
// $skin은 공지사항 notice, 일반형 nomal, 사진형 photo
$kk++;
}
mysql_free_result($result);
echo "</table>";
}
}
추천
7
7
댓글 전체
감사합니다.
아 위에서 예제를 잘못 든게 있네요.
여섯개의 글이 나와야 되지만 위에 3번사항에서 5개까지 뽑으라고 해놨으므로 5개까지만 출력됩니다.
원래 나와야 될 6개 중에서 하난 짤리는 셈이조.
이건 완전판이 아니나 오류는 없는 상태고, 단지 필요에 따라 약간씩 숫자만 달리 넣어 주면 됩니다.
여섯개의 글이 나와야 되지만 위에 3번사항에서 5개까지 뽑으라고 해놨으므로 5개까지만 출력됩니다.
원래 나와야 될 6개 중에서 하난 짤리는 셈이조.
이건 완전판이 아니나 오류는 없는 상태고, 단지 필요에 따라 약간씩 숫자만 달리 넣어 주면 됩니다.
좋은 자료이군요.....역쉬*^^*
필요하신분이 이걸 보셨다면...추천 꾸욱~~