전체 게시판 현황 (재등록) 정보
전체 게시판 현황 (재등록)본문
며칠전에 한번 올렸던건데, 아쉬움이 있어서 지우고 다시 올립니다.
레벨 10 게시판을 숨기고 펼치고하게 했었는데, 레벨 10 토글이 무슨 의미가 있나 싶어서,
회원별로 목록보기 가능한 게시판만 나오게 수정했습니다.
그리고 그때 미처 생각 못했는데,
댓글에 들레아빠님이 보여주셨던 새글 갯수 출력도 필요한 부분이라, 흉내내서 추가했습니다.
아래는 수정된 부분입니다.
우선 새글은 당일 올라온 글 수를 계산해서 나오게 했습니다.
(생각해보니 당일 글은 계속 새글로 나오게 되어 있습니다. 새글이라기 보다는 당일 올라온 글이 맞겠네요.
그누보드나 들레아빠님은 어떤 방식인지 몰라서....)
게시판 목록은 로그인된 회원레벨과 게시판 설정의 목록보기 권한 레벨을 비교해서 참인 경우만 출력되게 했습니다.
각 게시판의 글읽기 권한 레벨2 이상은 레벨표시를 했습니다.
정렬순서 변경 및 제외할 게시판을 지정할 수 있습니다.
아래 소스를 원하는 곳에 넣어서 사용하시면 됩니다.
페이지를 따로 만들어서 include로 불러와도 되고요.
제 홈페이지 소스를 대충 수정해서 가져온거라 디자인은 직접 수정해서 사용하시면 됩니다.
----------------------------------
<?php
$kkk[7] = "137,178,255"; //테이블 컬러 지정
?>
<?php
// 회원의 레벨이 게시판의 목록보기 권한보다 높거나 같을 때만 게시판 표시 (글 읽기 권한 별개)
//include_once('./common.php');
// 자정을 기준으로 새글 카운트하기 위한 변수
$intime = date("Y-m-d 00:00:00");
// 전체 게시판 목록 가져오기
$sql = "SELECT bo_table, bo_subject, bo_read_level, bo_list_level FROM {$g5['board_table']}";
$result = sql_query($sql);
$board_list = []; // 모든 게시판을 저장할 배열
$total_posts = $total_new_posts = 0; // 전체 게시물 및 새글 합계
while ($row = sql_fetch_array($result)) {
$bo_table = $row['bo_table'];
$bo_subject = $row['bo_subject'];
$bo_read_level = $row['bo_read_level']; // 목록 읽기 레벨
$bo_list_level = $row['bo_list_level']; // 목록 보기 레벨
// $kkk[37]에 지정된 게시판은 숨김 (게시판 아이디 입력)
$kkk[37] = "A게시판,B게시판,C게시판,,,";
if (in_array($bo_table, explode(',', $kkk[37]))) {continue;}
// 회원의 레벨이 게시판의 목록보기 권한보다 높거나 같을 때만 게시판 표시
if ($member['mb_level'] >= $bo_list_level) {
// 각 게시판별 글 등록 수 가져오기 (댓글 제외)
$count_result = sql_fetch("SELECT COUNT(*) AS cnt FROM {$g5['write_prefix']}{$bo_table} WHERE wr_is_comment = 0");
// 새글 갯수 구하기 (오늘 자정 기준, 댓글 제외)
$new_count_result = sql_fetch("
SELECT COUNT(*) AS new_cnt
FROM {$g5['board_new_table']} AS bn
JOIN {$g5['write_prefix']}{$bo_table} AS wr ON bn.wr_id = wr.wr_id
WHERE bn.bn_datetime >= '$intime' AND bn.bo_table = '{$bo_table}' AND wr.wr_is_comment = 0");
$board_list[] = [
'bo_table' => $bo_table,
'bo_subject' => $bo_subject,
'bo_read_level' => $bo_read_level,
'bo_list_level' => $bo_list_level,
'count' => $count_result['cnt'],
'new_count' => $new_count_result['new_cnt']
];
$total_posts += $count_result['cnt'];
$total_new_posts += $new_count_result['new_cnt'];
}
}
// 목록 정렬 순서 (셋중 하나 선택 나머지는 주석,모두 주석처리하면 DB등록순서)
usort($board_list, function($a, $b) {
// return $b['bo_read_level'] - $a['bo_read_level']; // 글읽기 권한 레벨이 높은순
// return $a['bo_read_level'] - $b['bo_read_level']; //글읽기 권한 레벨이 낮은순
return strcasecmp($a['bo_subject'], $b['bo_subject']); //가나다순
});
$total_boards = count($board_list);
?>
<style>
.custom-table { width: 100%; border-collapse: collapse; font-size: 12px; line-height: 1.2; text-align: left; }
.custom-table thead { background-color: rgba(<?=$kkk[7]; ?>,0.1); }
.custom-table th { padding: 8px; border: 1px solid #ddd; background-color: #4CAF50; color: white; }
.custom-table td { padding: 8px; border: none; }
.custom-table tbody tr:nth-child(even) { background-color: rgba(<?=$kkk[7]; ?>, 0.1); }
.custom-table tbody tr:hover { background-color: rgba(<?=$kkk[7]; ?>, 0.3); }
.newposts { color: red; }
</style>
<div style="width:100%;border:1px solid rgba(<?php echo $kkk[7];?>);">
<div style="padding:8px;border-bottom:1px solid rgba(<?php echo $kkk[7];?>);background-color:rgba(<?php echo $kkk[7];?>, 0.4);">
<a href="/adm/board_list.php"><b>전체 게시판 : <?= $total_boards ?></b></a>
<strong id="totalPosts" style="float:right;"><span class="newposts"><?= $total_new_posts ?></span> / <?= $total_posts ?></strong>
</div>
<!-- 게시판 목록 -->
<table class="custom-table">
<tbody>
<?php foreach ($board_list as $board): ?>
<tr>
<td style="padding:0px 20px;">
<a href="<?= G5_BBS_URL ?>/board.php?bo_table=<?= $board['bo_table'] ?>" title="<?= $board['bo_table'] ?>">
<?= $board['bo_subject'] ?>
<?php if ($board['bo_read_level'] >= 2): ?>
<span style="color:red;font-size:0.8em;font-weight:bold;">Lv <?= $board['bo_read_level']; ?></span><!--본문글 읽기 권한 표시-->
<?php endif; ?>
</a>
</td>
<td style="text-align:right; padding:3px 20px;">
<?php if ($board['new_count']): ?><span class="newposts"><?= $board['new_count'] ?></span> / <?php endif; ?><?= $board['count'] ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div>
4
댓글 5개
감사합니다
감사 합니다. 참고로 저는 댓글을 표시 하였습니다.
@들레아빠 아....... 댓글이었군요...;;;
감사합니다 ^^
감사합니다