울러리

전체 게시판 현황 (재등록)

1938326901_1727767775.2532.png

며칠전에 한번 올렸던건데, 아쉬움이 있어서 지우고 다시 올립니다.

레벨 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>

|

댓글 5개

감사 합니다. 참고로 저는 댓글을 표시 하였습니다.

@들레아빠 아....... 댓글이었군요...;;;

감사합니다 ^^

감사합니다 

댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

+
제목 글쓴이 날짜 조회
1년 전 조회 1,254
1년 전 조회 1,947
1년 전 조회 980
1년 전 조회 1,074
1년 전 조회 748
1년 전 조회 1,105
1년 전 조회 1,272
1년 전 조회 1,200
1년 전 조회 1,262
1년 전 조회 1,523
1년 전 조회 818
1년 전 조회 1,477
1년 전 조회 1,503
1년 전 조회 1,633
1년 전 조회 1,100
1년 전 조회 1,244
1년 전 조회 1,400
1년 전 조회 1,264
1년 전 조회 1,082
1년 전 조회 1,356
1년 전 조회 802
1년 전 조회 1,148
1년 전 조회 1,883
1년 전 조회 1,122
1년 전 조회 1,110
1년 전 조회 1,401
1년 전 조회 1,313
1년 전 조회 1,257
1년 전 조회 1,203
1년 전 조회 920