최신글 최근게시물을 표시하는 게시판이나 추출에 대해 문의 드립니다
본문
제가 초보이다 보니 이렇게 글을 올립니다.
최신글을 볼 수 있도록 게시판이나 추출 방법을 알고 싶습니다.
작성된 new.php 내용은 아래와 같습니다.
그런데
1. 게시판에 표시되는 글들이 그룹내의 글들 모두가 표시되게 하고 싶은데 자유게시판 1개의 글만 표시됩니다.
2. 글쓴이를 가입시 등록된 닉네임으로 표시되게 하고 싶은데 실명이 표시됩니다.
3. 작성일자(2024-01-01)를 연도가 글어가게 쓰고 싶은데 작성 시간으로 뜨니 보기가 산만해 보입니다.
4. 테이블의 간격을 조정하려면 어떤 것을 손보아야 하나요?
5. 그룹란을 없애고 이름 뒤에 클릭된 수가 표시되도록 하려면 어떻게 해야 하나요?
고견을 기다리며 수정되면 사례하도록 하겠습니다.
잘 부탁드립니다.
<?php
include_once('./_common.php');
$g5['title'] = '새글';
include_once('./_head.php');
$sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = 1 ";
$gr_id = isset($_GET['gr_id']) ? substr(preg_replace('#[^a-z0-9_]#i', '', $_GET['gr_id']), 0, 10) : '';
if ($gr_id) {
$sql_common .= " and b.gr_id = '$gr_id' ";
}
$view = isset($_GET['view']) ? $_GET['view'] : "";
if ($view == "w")
$sql_common .= " and a.wr_id = a.wr_parent ";
else if ($view == "c")
$sql_common .= " and a.wr_id <> a.wr_parent ";
else
$view = '';
$mb_id = isset($_GET['mb_id']) ? ($_GET['mb_id']) : '';
$mb_id = substr(preg_replace('#[^a-z0-9_]#i', '', $mb_id), 0, 20);
if ($mb_id) {
$sql_common .= " and a.mb_id = '{$mb_id}' ";
}
$sql_order = " order by a.bn_id desc ";
$sql = " select count(*) as cnt {$sql_common} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
$rows = G5_IS_MOBILE ? $config['cf_mobile_page_rows'] : $config['cf_new_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$group_select = '<label for="gr_id" class="sound_only">그룹</label><select name="gr_id" id="gr_id"><option value="">전체그룹';
$sql = " select gr_id, gr_subject from {$g5['group_table']} order by gr_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$group_select .= "<option value=\"".$row['gr_id']."\">".$row['gr_subject'];
}
$group_select .= '</select>';
$list = array();
$sql = " select a.*, b.bo_subject, b.bo_mobile_subject, c.gr_subject, c.gr_id {$sql_common} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$tmp_write_table = $g5['write_prefix'].$row['bo_table'];
if ($row['wr_id'] == $row['wr_parent']) {
// 원글
$comment = "";
$comment_link = "";
$row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_id']}' ");
$list[$i] = $row2;
$name = get_sideview($row2['mb_id'], get_text(cut_str($row2['wr_name'], $config['cf_cut_name'])), $row2['wr_email'], $row2['wr_homepage']);
// 당일인 경우 시간으로 표시함
$datetime = substr($row2['wr_datetime'],0,10);
$datetime2 = $row2['wr_datetime'];
if ($datetime == G5_TIME_YMD) {
$datetime2 = substr($datetime2,11,5);
} else {
$datetime2 = substr($datetime2,5,5);
}
} else {
// 코멘트
$comment = '[코] ';
$comment_link = '#c_'.$row['wr_id'];
$row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_parent']}' ");
$row3 = sql_fetch(" select mb_id, wr_name, wr_email, wr_homepage, wr_datetime from {$tmp_write_table} where wr_id = '{$row['wr_id']}' ");
$list[$i] = $row2;
$list[$i]['wr_id'] = $row['wr_id'];
$list[$i]['mb_id'] = $row3['mb_id'];
$list[$i]['wr_name'] = $row3['wr_name'];
$list[$i]['wr_email'] = $row3['wr_email'];
$list[$i]['wr_homepage'] = $row3['wr_homepage'];
$name = get_sideview($row3['mb_id'], get_text(cut_str($row3['wr_name'], $config['cf_cut_name'])), $row3['wr_email'], $row3['wr_homepage']);
// 당일인 경우 시간으로 표시함
$datetime = substr($row3['wr_datetime'],0,10);
$datetime2 = $row3['wr_datetime'];
if ($datetime == G5_TIME_YMD) {
$datetime2 = substr($datetime2,11,5);
} else {
$datetime2 = substr($datetime2,5,5);
}
}
$list[$i]['gr_id'] = $row['gr_id'];
$list[$i]['bo_table'] = $row['bo_table'];
$list[$i]['name'] = $name;
$list[$i]['comment'] = $comment;
$list[$i]['href'] = get_pretty_url($row['bo_table'], $row2['wr_id'], $comment_link);
$list[$i]['datetime'] = $datetime;
$list[$i]['datetime2'] = $datetime2;
$list[$i]['gr_subject'] = $row['gr_subject'];
$list[$i]['bo_subject'] = ((G5_IS_MOBILE && $row['bo_mobile_subject']) ? $row['bo_mobile_subject'] : $row['bo_subject']);
$list[$i]['wr_subject'] = $row2['wr_subject'];
}
$write_pages = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "?gr_id=$gr_id&view=$view&mb_id=$mb_id&page=");
include_once($new_skin_path.'/new.skin.php');
include_once('./_tail.php');
답변 2
1.
게시판 설정 중 □ 검색사용에 체크되어 있어야 [새글]에 노출됩니다.
(현재 '자유게시판'만 체크되어 있는 것으로 보입니다.)
관리자 > 게시판 관리 - □ 검색사용에 체크 => [선택수정]
※ https://gnustudy.com/bbs/board.php?bo_table=skin_etc&wr_id=47
2.
관리자 > 게시판 관리 > '자유게시판' > □ 이름(실명) 사용
에 체크(V)가 되어있다면 체크를 해제해야 합니다.
아마도 변경 처리 이후부터 닉네임으로 글등록/노출이 될 가능성이 있습니다.
3. /bbs/new.php
$list[$i]['datetime2'] = $datetime2;
→
$list[$i]['datetime2'] = $datetime;
4. 5.
/skin/new/basic/new.skin.php or /theme/basic/skin/new/basic/new.skin.php 파일에서 수정
2. 이전글은 적용이 안되고, 새로 쓰는 글부터 적용됩니다.
4. '테이블의 간격'은 어디를 가리키는 것이고,
'테이블의 간격을 조정'은 어떻게 하고 싶다는 의미인지..
5.
* /skin/new/basic/new.skin.php
1)
<th scope="col">그룹</th>
<th scope="col">게시판</th>
<th scope="col">제목</th>
<th scope="col">이름</th>
→
<th scope="col">게시판</th>
<th scope="col">제목</th>
<th scope="col">이름</th>
<th scope="col">조회</th>
2)
<td class="td_group">~
<td class="td_board">~
<td>~
<td class="td_name">~</td>
→
<td class="td_board">~
<td>~
<td class="td_name">~</td>
<td class="td_name"><?php echo $list[$i]['wr_hit'] ?></td>