22'C 흐림
서울 강남구
그누보드내에 전체게시판의 목록을 글등록수와 함께 뽑아옵니다.
게시판 읽기 권한이 레벨 10인 게시판은 숨겨놓고 +버튼을 누르면 나오게 했습니다.
조건들은 기호에 맞게 변경해서 사용하시면 될듯합니다.
include로 원하는 위치에 넣고 디자인해서 사용하시면 됩니다.
파일 불러오기 예 :
<?php include_once(G5_THEME_PATH.'/totalnum.php'); ?>
<!-- 아래는 파일 내용-->
<?php
include_once('./_common.php');
// 관리자만 접근 가능하도록 설정 (옵션)
//if ($is_admin != 'super') {
// alert('접근 권한이 없습니다.');
//}
// 전체 게시판 목록 가져오기
$sql = "SELECT bo_table, bo_subject, bo_read_level FROM {$g5['board_table']}";
$result = sql_query($sql);
$board_list = array();
$hidden_boards = array(); // 레벨 10인 게시판을 저장할 배열
$total_posts = 0; // 전체 게시물 합계를 위한 변수
$total_hidden_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'];
// 각 게시판별 글 등록 수 가져오기
$sql_count = "SELECT COUNT(*) AS cnt FROM {$g5['write_prefix']}{$bo_table}";
$count_result = sql_fetch($sql_count);
if ($bo_read_level < 10) {
$board_list[] = array(
'bo_table' => $bo_table,
'bo_subject' => $bo_subject,
'count' => $count_result['cnt']
);
$total_posts += $count_result['cnt']; // 전체 게시물 합계 계산
} else {
$hidden_boards[] = array(
'bo_table' => $bo_table,
'bo_subject' => $bo_subject,
'count' => $count_result['cnt']
);
$total_hidden_posts += $count_result['cnt']; // 숨겨진 게시물 합계 계산
}
}
// 전체 게시판 수 계산
$total_boards = count($board_list) + count($hidden_boards);
?>
<style>
.custom-table {
width: 100%;
border-collapse: collapse;
font-size: 12px; /* 글씨 크기를 작게 조정 */
line-height: 1.2; /* 줄 간격을 줄임 */
text-align: left;
}
.custom-table thead {
background-color: #f2f2f2;
}
.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: #f9f9f9;
}
.custom-table tbody tr:hover {
background-color: #f1f1f1;
}
.custom-summary {
margin-top: 20px;
font-size: 16px; /* 요약 글씨 크기 조정 */
font-weight: bold;
}
/* 하이퍼링크 스타일 수정 */
.custom-table a {
text-decoration: none; /* 밑줄 제거 */
color: brown; /* 갈색으로 변경 */
}
.custom-table a:hover {
text-decoration: underline; /* 마우스 오버 시 밑줄 추가 (선택 사항) */
}
.hidden {
display: none;
}
/* 레벨 10 게시물 배경색 설정 (붉은색, 불투명도 30%) */
.level-10 {
/* background-color: rgba(255, 0, 0, 0.1) !important; *//* 붉은색, 불투명도 30% */
font-weight:bold;
color: tomato !important;
}
</style>
<?php if ($is_admin) { ?>
<button id="toggleButton" style="border:0px;">+</button>
<?}?>
<div id="hiddenBoards" class="hidden">
<table class="custom-table">
<tbody>
<?php foreach ($hidden_boards as $board) { ?>
<tr class="level-10"> <!-- 레벨 10 게시물에 클래스 추가 -->
<td style="padding:0px 20px;">
<a href="<?= G5_BBS_URL ?>/board.php?bo_table=<?= $board['bo_table'] ?>" title="<?= $board['bo_table'] ?>"class="level-10" >
<?= $board['bo_subject'] ?>
</a>
</td>
<td style="text-align:right;padding:3px 20px;"><?= $board['count'] ?></td>
</tr>
<?php } ?>
</tbody>
</table>
</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'] ?>
</a>
</td>
<td style="text-align:right;padding:3px 20px;"><?= $board['count'] ?></td>
</tr>
<?php } ?>
<!-- 마지막 행에 전체 게시판 수와 전체 게시물 합계 표시 -->
<tr>
<td style="padding:7px 20px;"><strong id="totalBoards">게시판: <?= count($board_list) ?>개</strong></td>
<td style="padding:7px 0px 7px 30px;"><strong id="totalPosts">게시물: <?= $total_posts ?>개</strong></td>
</tr>
</tbody>
</table>
<script>
document.getElementById('toggleButton').addEventListener('click', function() {
var hiddenBoards = document.getElementById('hiddenBoards');
if (hiddenBoards.classList.contains('hidden')) {
hiddenBoards.classList.remove('hidden');
this.textContent = '-'; // 버튼 텍스트 변경
// 전체 게시판 수와 게시물 수 업데이트
var totalBoards = <?= count($board_list) ?> + <?= count($hidden_boards) ?>;
var totalPosts = <?= $total_posts ?> + <?= $total_hidden_posts ?>;
document.getElementById('totalBoards').textContent = '게시판: ' + totalBoards + '개';
document.getElementById('totalPosts').textContent = '게시물: ' + totalPosts + '개';
} else {
hiddenBoards.classList.add('hidden');
this.textContent = '+'; // 버튼 텍스트 변경
// 숨겨진 게시판을 제외한 게시판 수와 게시물 수 업데이트
document.getElementById('totalBoards').textContent = '게시판: <?= count($board_list) ?>개';
document.getElementById('totalPosts').textContent = '게시물: <?= $total_posts ?>개';
}
});
</script>