skin.board.gallery_fix/list.skin.php

332 lines
12 KiB
PHP
Raw Permalink Normal View History

2024-10-19 10:45:56 +09:00
<?php
if (!defined('_GNUBOARD_'))
2024-10-21 11:31:08 +09:00
exit;
2024-10-19 10:45:56 +09:00
include_once G5_LIB_PATH . '/thumbnail.lib.php';
if ($board['bo_type'] == 'board')
$category_option = get_category_option($bo_table, $sca);
if ($board['bo_table_width'] == 0)
$width = "100%";
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="' . $board_skin_url . '/style.css">', 0);
$gall_size = array();
$gall_margin = array();
$gall_w = 240;
$gall_h = 240;
$gall_mw = 10;
$gall_mh = 10;
if ($board['bo_1']) {
$gall_size = explode("|", $board['bo_1']);
$gall_w = trim($gall_size[0]);
if (count($gall_size) > 1)
$gall_h = trim($gall_size[1]);
else
$gall_h = trim($gall_size[0]);
}
if ($board['bo_2']) {
$gall_margin = explode("|", $board['bo_2']);
$gall_mh = trim($gall_margin[0]);
if (count($gall_margin) > 1)
$gall_mw = trim($gall_margin[1]);
else
$gall_mw = trim($gall_margin[0]);
}
?>
<style>
#gall_ul .gall_li {
margin-bottom: <?= $gall_mh ?>px;
}
#gall_ul .gall_li:not(.bo_notice) {
width: <?= $gall_w ?>px;
height: <?= $gall_h ?>px;
}
</style>
<!-- 게시판 목록 시작 { -->
<div id="bo_gall" style="max-width:<?php echo $width; ?>">
<!-- 게시판 카테고리 시작 { -->
<?php if ($is_category) { ?>
<nav id="navi_category">
<?php if ($board['bo_type'] == 'board') { ?>
<select name="sca" id="sca" onchange="location.href='?bo_table=<?= $bo_table ?>&sca=' + this.value;">
<option value="">전체</option>
<?php echo $category_option ?>
</select>
<?php } else { ?>
<ul>
<?php echo $category_option ?>
</ul>
<?php } ?>
</nav>
<?php } ?>
<!-- } 게시판 카테고리 -->
<!-- 게시판 페이지 정보 버튼 시작 { -->
<div id="bo_btn_top">
<?php if ($rss_href || $write_href) { ?>
<ul class="btn_bo_user">
<?php if ($admin_href) { ?>
<li><a href="<?php echo $admin_href ?>" target="_black" class="admin ui-btn">게시판관리</a></li><?php } ?>
<?php if ($write_href) { ?>
<li><a href="<?php echo $write_href ?>" class="ui-btn point">글쓰기</a></li><?php } ?>
</ul>
<?php } ?>
</div>
<!-- } 게시판 페이지 정보 버튼 -->
<form name="fboardlist" id="fboardlist" action="./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="">
<ul id="gall_ul" class="gall_row">
<?php for ($i = 0; $i < count($list); $i++) {
$img_content = "none";
if (!$list[$i]['is_notice']) {
$thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], $gall_w, $gall_h, false, true);
if ($thumb['src'])
$img_content = "url('" . $thumb['src'] . "') center no-repeat;background-size:cover";
else
$img_content = "none";
}
?>
<li class="gall_li<?php if ($list[$i]['is_notice'])
echo " bo_notice"; ?>">
<div class="gall_box theme-box" style="background:<?= $img_content ?>;">
<div class="gall_chk">
<?php if ($is_checkbox) { ?>
<label for="chk_wr_id_<?php echo $i ?>"><span class="sound_only"><?php echo $list[$i]['subject'] ?></span>
<input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>"
id="chk_wr_id_<?php echo $i ?>"></label>
<?php } ?>
<span class="sound_only">
<?php
if ($wr_id == $list[$i]['wr_id'])
echo "<span class=\"bo_current\">열람중</span>";
else
echo $list[$i]['num'];
?>
</span>
</div>
<div class="gall_con">
<a href="#"
onclick="<?= $board['bo_read_level'] <= $member['mb_level'] ? "open_view('" . $bo_table . "','" . $list[$i]['wr_id'] . "');return false;" : "void(0);"; ?>"
class="bo_tit">
<?php if ($list[$i]['is_notice']) { // 공지사항 ?>
<i class="ui-btn point notice_icon">!</i>
<?php } ?>
<strong <?php if (!$list[$i]['is_notice']) { ?>class="sound_only" <?php } ?>>
<?php
// echo $list[$i]['icon_reply']; 갤러리는 reply 를 사용 안 할 것 같습니다. - 지운아빠 2013-03-04
if ($is_category && $list[$i]['ca_name']) {
?>
[<?php echo $list[$i]['ca_name'] ?>]
<?php } ?>
<?php echo $list[$i]['subject'] ?>
</strong>
</a>
</div>
</div>
</li>
<?php } ?>
<?php if (count($list) == 0) {
echo "<li class=\"empty_list\">게시물이 없습니다.</li>";
} ?>
</ul>
<?php if ($list_href || $is_checkbox || $write_href) { ?>
<div class="bo_fx">
<?php if ($list_href || $write_href) { ?>
<ul class="btn_bo_user">
<?php if ($is_checkbox) { ?>
<li><input type="checkbox" id="chkall" onclick="if (this.checked) all_checked(true); else all_checked(false);">
<label for="chkall"><span id="checkall" class="ui-btn etc">전체</span></label>
</li>
<li><input type="submit" name="btn_submit" value="선택삭제" onclick="document.pressed=this.value"
class="ui-btn admin"></li>
<li><input type="submit" name="btn_submit" value="선택복사" onclick="document.pressed=this.value"
class="ui-btn admin"></li>
<li><input type="submit" name="btn_submit" value="선택이동" onclick="document.pressed=this.value"
class="ui-btn admin"></li>
<?php } ?>
<?php if ($list_href) { ?>
<li><a href="<?php echo $list_href ?>" class="ui-btn">목록</a></li><?php } ?>
<?php if ($write_href) { ?>
<li><a href="<?php echo $write_href ?>" class="ui-btn point">글쓰기</a></li><?php } ?>
</ul>
<?php } ?>
</div>
<?php } ?>
</form>
<!-- 게시판 검색 시작 { -->
<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'); ?>>제목</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="mb_id,0"<?php echo get_selected($sfl, 'mb_id,0'); ?>>회원아이디(코)</option>-->
<option value="wr_name,1" <?php echo get_selected($sfl, 'wr_name,1'); ?>>글쓴이</option>
<!-- <option value="wr_name,0"<?php echo get_selected($sfl, 'wr_name,0'); ?>>글쓴이(코)</option>-->
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></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="ui-btn">검색</button>
</form>
</fieldset>
<!-- } 게시판 검색 -->
</div>
<div id="view_box">
<a href="#" id="close_area"><span class="sound_only">close</span></a>
<div class="fix-layout">
<div id="view_area" style="width:100%">
</div>
</div>
</div>
<?php if ($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우<br>별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>
</noscript>
<?php } ?>
<!-- 페이지 -->
<?php echo $write_pages; ?>
<script>
const gall_max = $("#gall_ul").width();
const gall_w = <?= $gall_w ?>;
const margin = <?= $gall_mw ?>;
let cols = Math.floor((gall_max + margin) / (gall_w + margin));
let new_w = (cols - 1) * (gall_w + margin) + gall_w;
$("#gall_ul").css("max-width", new_w + "px");
let html = [];
const items = $(".gall_li:not(.bo_notice)").length;
let leftover = cols - items % cols;
if (leftover == cols) leftover = 0;
for (i = 0; i < leftover; i++) {
html.push('<li class="gall_li empty"></li>');
}
$("#gall_ul").append(html.join(''));
$("#close_area").click(function () {
$("#view_box").removeClass('on');
$("#view_area").empty();
return false;
});
function open_view(table, idx) {
hlink = '<?= $board_skin_url ?>/view.php?bo_table=' + table + '&wr_id=' + idx;
$.ajax({
async: true
, url: hlink
, beforeSend: function () { }
, success: function (data) {
// Toss
var response = data;
$('#view_area').empty().append(response);
$('#view_box').addClass('on');
}
, error: function (data, status, err) {
$('#view_area').empty();
$('#view_box').removeClass('on');
}
, complete: function () {
// Complete
}
});
return false;
}
<?php if ($is_checkbox) { ?>
$("#checkall").click(function () {
$(this).toggleClass("on");
});
function all_checked(sw) {
var f = document.fboardlist;
for (var i = 0; i < f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]")
f.elements[i].checked = sw;
}
}
function fboardlist_submit(f) {
var chk_count = 0;
for (var i = 0; i < f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
chk_count++;
}
if (!chk_count) {
alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");
return false;
}
if (document.pressed == "선택복사") {
select_copy("copy");
return;
}
if (document.pressed == "선택이동") {
select_copy("move");
return;
}
if (document.pressed == "선택삭제") {
if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다\n\n답변글이 있는 게시글을 선택하신 경우\n답변글도 선택하셔야 게시글이 삭제됩니다."))
return false;
f.removeAttribute("target");
f.action = "./board_list_update.php";
}
return true;
}
// 선택한 게시물 복사 및 이동
function select_copy(sw) {
var f = document.fboardlist;
if (sw == 'copy')
str = "복사";
else
str = "이동";
var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");
f.sw.value = sw;
f.target = "move";
f.action = "./move.php";
f.submit();
}
<?php } ?>
</script>
<!-- } 게시판 목록 -->