261 lines
15 KiB
PHP
261 lines
15 KiB
PHP
<?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>
|
|
<!-- } 게시판 목록 끝 -->
|