first commit 2

This commit is contained in:
hmw1001
2026-06-11 18:47:38 +09:00
parent c768729ce6
commit 6f534e33a6
11095 changed files with 1595758 additions and 0 deletions
@@ -0,0 +1,260 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
add_javascript('<script src="'.$board_skin_url.'/script.js"></script>', 10);
// 뷰 모드 설정 (기본값: card)
$default_view_mode = 'card';
$view_mode = get_cookie('board_' . $bo_table . '_view_mode') ?: $default_view_mode;
// 💡 [추가] 페이지 목록 수 설정
$page_rows = (isset($_GET['page_rows']) && (int)$_GET['page_rows'] > 0) ? (int)$_GET['page_rows'] : $board['bo_page_rows'];
?>
<!-- 게시판 목록 시작 { -->
<div id="bo_gall" style="width:<?php echo $width; ?>" class="view-mode-<?php echo $view_mode; ?>">
<?php if ($is_category) { ?>
<nav id="bo_cate">
<h2><?php echo $board['bo_subject'] ?> 카테고리</h2>
<ul id="bo_cate_ul">
<?php echo $category_option ?>
</ul>
</nav>
<?php } ?>
<div class="bo_fx">
<div class="bo_fx_left">
<div id="bo_list_total">
<span>Total <?php echo number_format($total_count) ?>건</span>
/ <?php echo $page ?> 페이지
</div>
</div>
<div class="bo_fx_right">
<!-- 💡 [추가] 페이지 목록 수 선택 UI -->
<?php if ($is_admin) { ?>
<div class="bo_page_rows_selector">
<label for="page_rows" class="sound_only">페이지당 목록 수</label>
<select id="page_rows" class="select">
<option value="10" <?php if ($page_rows == 10) echo 'selected'; ?>>10개씩</option>
<option value="20" <?php if ($page_rows == 20) echo 'selected'; ?>>20개씩</option>
<option value="30" <?php if ($page_rows == 30) echo 'selected'; ?>>30개씩</option>
<option value="50" <?php if ($page_rows == 50) echo 'selected'; ?>>50개씩</option>
<option value="100" <?php if ($page_rows == 100) echo 'selected'; ?>>100개씩</option>
</select>
</div>
<?php } ?>
<div class="view-mode-switcher">
<button type="button" class="btn_view_mode <?php echo ($view_mode === 'card') ? 'active' : ''; ?>" data-mode="card" title="카드형으로 보기"><i class="fas fa-th-large"></i></button>
<button type="button" class="btn_view_mode <?php echo ($view_mode === 'list') ? 'active' : ''; ?>" data-mode="list" title="리스트형으로 보기"><i class="fas fa-bars"></i></button>
</div>
<ul class="btn_bo_user">
<?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn"><i class="fas fa-rss" aria-hidden="true"></i> RSS</a></li><?php } ?>
<?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn"><i class="fas fa-user-circle" aria-hidden="true"></i> 관리자</a></li><?php } ?>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b02 btn"><i class="fas fa-pencil-alt" aria-hidden="true"></i> 글쓰기</a></li><?php } ?>
</ul>
</div>
</div>
<form name="fboardlist" id="fboardlist" action="<?php echo G5_BBS_URL; ?>/board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="spt" value="<?php echo $spt ?>">
<input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="sw" value="">
<?php if ($is_checkbox) { ?>
<div id="gall_allchk">
<label for="chkall" class="sound_only">현재 페이지 게시물 전체</label>
<input type="checkbox" id="chkall" onclick="if (this.checked) all_checked(true); else all_checked(false);">
</div>
<?php } ?>
<!-- 카드형 목록 -->
<div class="card-list-view">
<ul id="gall_ul" class="gall_row">
<?php for ($i=0; $i<count($list); $i++) {
$classes = array('gall_li', 'col-gn-'.$bo_gallery_cols);
if( $i && ($i % $bo_gallery_cols == 0) ){ $classes[] = 'box_clear'; }
if( $wr_id && $wr_id == $list[$i]['wr_id'] ){ $classes[] = 'gall_now'; }
?>
<li class="<?php echo implode(' ', $classes); ?>">
<div class="gall_box">
<div class="gall_chk">
<?php if ($is_checkbox) { ?>
<label for="chk_wr_id_<?php echo $i ?>" class="sound_only"><?php echo $list[$i]['subject'] ?></label>
<input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>">
<?php } ?>
<span class="sound_only"><?php if ($wr_id == $list[$i]['wr_id']) { echo "열람중"; } else { echo $list[$i]['num']; } ?></span>
</div>
<div class="gall_con">
<div class="gall_img">
<a href="<?php echo $list[$i]['href'] ?>">
<?php
if ($list[$i]['is_notice']) {
echo '<span class="is_notice">공지</span>';
} else {
$thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height'], false, true);
if($thumb['src']) {
echo '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" >';
} else {
echo '<span class="no_image">no image</span>';
}
}
?>
</a>
</div>
<div class="gall_text_href">
<?php if ($is_category && $list[$i]['ca_name']) { ?>
<a href="<?php echo $list[$i]['ca_name_href'] ?>" class="bo_cate_link"><?php echo $list[$i]['ca_name'] ?></a>
<?php } ?>
<a href="<?php echo $list[$i]['href'] ?>" class="bo_tit_link">
<?php echo $list[$i]['subject'] ?>
<?php if ($list[$i]['comment_cnt']) { ?><span class="cnt_cmt">+ <?php echo $list[$i]['comment_cnt']; ?></span><?php } ?>
<?php if (isset($list[$i]['icon_new']) && $list[$i]['icon_new'] !='') echo $list[$i]['icon_new']; ?>
<?php if (isset($list[$i]['icon_hot']) && $list[$i]['icon_hot'] !='') echo $list[$i]['icon_hot']; ?>
</a>
</div>
<div class="gall_name">
<span class="profile_img"><?php echo $list[$i]['name'] ?></span>
</div>
<div class="gall_info">
<span><i class="far fa-eye" aria-hidden="true"></i> <?php echo $list[$i]['wr_hit'] ?></span>
<?php if ($is_admin) { ?>
<div class="status-toggle-wrap">
<span class="status-label">노출</span>
<div class="status-toggle-switch <?php echo ($list[$i]['wr_10'] == '1') ? 'off' : 'on'; ?>" data-wr-id="<?php echo $list[$i]['wr_id']; ?>" data-status="<?php echo ($list[$i]['wr_10'] == '1') ? '1' : '0'; ?>">
<div class="switch-handle"></div>
</div>
</div>
<?php } ?>
<span><i class="far fa-clock" aria-hidden="true"></i> <?php echo $list[$i]['datetime2'] ?></span>
</div>
</div>
</div>
</li>
<?php } ?>
<?php if (count($list) == 0) { echo "<li class=\"empty_list\">게시물이 없습니다.</li>"; } ?>
</ul>
</div>
<!-- 리스트형 목록 -->
<div class="list-view">
<ul class="list-group">
<li class="list-group-header">
<div class="list-cell num">번호</div>
<div class="list-cell title">제목</div>
<div class="list-cell name">글쓴이</div>
<div class="list-cell date">날짜</div>
<div class="list-cell hit">조회</div>
<?php if ($is_admin) { ?><div class="list-cell status">노출</div><?php } ?>
</li>
<?php for ($i=0; $i<count($list); $i++) { ?>
<li class="list-group-item">
<div class="list-cell num">
<?php if ($is_checkbox) { ?>
<input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_list_<?php echo $i ?>">
<?php } ?>
<?php echo $list[$i]['num']; ?>
</div>
<div class="list-cell title">
<?php if ($is_category && $list[$i]['ca_name']) { ?>
<a href="<?php echo $list[$i]['ca_name_href'] ?>" class="bo_cate_link"><?php echo $list[$i]['ca_name'] ?></a>
<?php } ?>
<a href="<?php echo $list[$i]['href']; ?>">
<?php echo $list[$i]['subject']; ?>
<?php if ($list[$i]['comment_cnt']) { ?><span class="cnt_cmt">+ <?php echo $list[$i]['comment_cnt']; ?></span><?php } ?>
<?php if (isset($list[$i]['icon_new'])) echo $list[$i]['icon_new']; ?>
</a>
</div>
<div class="list-cell name"><?php echo $list[$i]['name']; ?></div>
<div class="list-cell date"><?php echo $list[$i]['datetime2']; ?></div>
<div class="list-cell hit"><?php echo $list[$i]['wr_hit']; ?></div>
<?php if ($is_admin) { ?>
<div class="list-cell status">
<div class="status-toggle-switch <?php echo ($list[$i]['wr_10'] == '1') ? 'off' : 'on'; ?>" data-wr-id="<?php echo $list[$i]['wr_id']; ?>" data-status="<?php echo ($list[$i]['wr_10'] == '1') ? '1' : '0'; ?>">
<div class="switch-handle"></div>
</div>
</div>
<?php } ?>
</li>
<?php } ?>
<?php if (count($list) == 0) { echo "<li class=\"empty_list\">게시물이 없습니다.</li>"; } ?>
</ul>
</div>
<?php if ($list_href || $is_checkbox || $write_href) { ?>
<div class="bo_fx">
<div class="bo_fx_left">
<?php if ($is_checkbox) { ?>
<ul class="btn_bo_user">
<li><button type="submit" name="btn_submit" value="선택삭제" onclick="document.pressed=this.value" class="btn btn_admin"><i class="far fa-trash-alt" aria-hidden="true"></i> 선택삭제</button></li>
<li><button type="submit" name="btn_submit" value="선택복사" onclick="document.pressed=this.value" class="btn btn_admin"><i class="far fa-copy" aria-hidden="true"></i> 선택복사</button></li>
<li><button type="submit" name="btn_submit" value="선택이동" onclick="document.pressed=this.value" class="btn btn_admin"><i class="fas fa-arrows-alt" aria-hidden="true"></i> 선택이동</button></li>
</ul>
<?php } ?>
</div>
<div class="bo_fx_right">
<ul class="btn_bo_user">
<?php if ($list_href) { ?><li><a href="<?php echo $list_href ?>" class="btn_b01 btn"><i class="fas fa-list" aria-hidden="true"></i> 목록</a></li><?php } ?>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b02 btn"><i class="fas fa-pencil-alt" aria-hidden="true"></i> 글쓰기</a></li><?php } ?>
</ul>
</div>
</div>
<?php } ?>
</form>
<!-- 💡 [수정] 페이지네이션 & 더보기 버튼 -->
<div class="pagination_wrap">
<div class="list-pagination">
<?php echo $write_pages; ?>
</div>
<div class="card-more-btn">
<?php if ($page < $total_page) { ?>
<button type="button" id="btn_more_list" class="btn_b01 btn" data-page="<?php echo $page; ?>">더보기</button>
<?php } ?>
</div>
</div>
<fieldset id="bo_sch">
<legend>게시물 검색</legend>
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="sop" value="and">
<label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl">
<option value="wr_subject"<?php echo get_selected($sfl, 'wr_subject', true); ?>>제목</option>
<option value="wr_content"<?php echo get_selected($sfl, 'wr_content'); ?>>내용</option>
<option value="wr_subject||wr_content"<?php echo get_selected($sfl, 'wr_subject||wr_content'); ?>>제목+내용</option>
<option value="mb_id,1"<?php echo get_selected($sfl, 'mb_id,1'); ?>>회원아이디</option>
<option value="wr_name,1"<?php echo get_selected($sfl, 'wr_name,1'); ?>>이름</option>
</select>
<label for="stx" class="sound_only">검색어</label>
<input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx" class="sch_input" size="25" maxlength="20" placeholder="검색어를 입력해주세요">
<button type="submit" value="검색" class="sch_btn"><i class="fas fa-search" aria-hidden="true"></i> 검색</button>
</form>
</fieldset>
</div>
<?php if($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우<br>별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>
</noscript>
<?php } ?>
<script>
// PHP 변수를 JavaScript로 전달
var gallery_general_config = {
bo_table: "<?php echo $bo_table; ?>",
is_checkbox: <?php echo $is_checkbox ? 'true' : 'false'; ?>,
total_page: <?php echo (int)$total_page; ?>
};
</script>
<!-- } 게시판 목록 끝 -->