READ_DATA_MODE :: 2026.10.05 01:10
● REC [█████] BAT
메리 님 라공 에디션 호환 영화 리뷰 게시판 순서 오류 코드 수정
해당 문제가 해결이 된 파일이 업데이트 되었습니다!
메리 님 트위터에서 받아주세요. uu//♡
메리 님의 라공 에디션 호환 영화 리뷰 게시판 상에서 순서 지정 후
게시글 숫자가 페이지를 넘어가면 페이지를 넘어간 게시글의 순서 지정이 롤백되는 문제를 해결해둔 코드입니다.
(본 게시글은 메리 님의 허가 하에 작성되었습니다.)
수정할 파일: list.skin.php
▼ 아래의 이 코드 부분을
$media_rating_filter = null;
if (isset($_GET['media_rating'])) {
$media_rating_input = trim((string)$_GET['media_rating']);
if (in_array($media_rating_input, $media_rating_options, true)) {
$media_rating_filter = $media_rating_input;
}
}
if ($media_rating_filter !== null) {
$media_rating_number = round(max(0, min(5, (float)$media_rating_filter)) * 2) / 2;
$media_rating_sql = number_format($media_rating_number, 1, '.', '');
$media_where = "wr_is_comment = 0 AND CAST(wr_1 AS DECIMAL(3,1)) = '{$media_rating_sql}'";
if ($sca !== '') {
$media_where .= " AND ca_name = '" . sql_real_escape_string($sca) . "'";
}
if ($stx !== '' || $stx === '0') {
$media_where .= " AND (" . get_sql_search('', $sfl, $stx, $sop) . ")";
}
if (!$is_admin) {
$current_mb_id = sql_real_escape_string($member['mb_id'] ?? '');
$media_where .= " AND (wr_option NOT LIKE '%secret%' OR mb_id = '{$current_mb_id}')";
}
$media_count_row = sql_fetch("SELECT COUNT(*) AS cnt FROM {$write_table} WHERE {$media_where}");
$total_count = isset($media_count_row['cnt']) ? (int)$media_count_row['cnt'] : 0;
$page_rows = G5_IS_MOBILE && !empty($board['bo_mobile_page_rows']) ? (int)$board['bo_mobile_page_rows'] : (int)$board['bo_page_rows'];
if ($page_rows < 1) {
$page_rows = 15;
}
$total_page = $total_count > 0 ? (int)ceil($total_count / $page_rows) : 1;
if ($page < 1) {
$page = 1;
} else if ($page > $total_page) {
$page = $total_page;
}
$from_record = ($page - 1) * $page_rows;
$media_sql = "SELECT * FROM {$write_table}
WHERE {$media_where}
ORDER BY wr_order ASC, wr_num ASC, wr_reply ASC
LIMIT {$from_record}, {$page_rows}";
$media_result = sql_query($media_sql);
$list = array();
while ($media_row = sql_fetch_array($media_result)) {
$media_item = get_list($media_row, $board, $board_skin_url, $board['bo_subject_len']);
if (strstr($media_item['wr_option'], 'secret')) {
$media_item['wr_content'] = '';
}
$list[] = $media_item;
}
$media_rating_qstr = preg_replace('/(&|&)media_rating=[^&]*/', '', $qstr);
$media_rating_qstr .= '&media_rating=' . rawurlencode($media_rating_filter);
$write_pages = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, get_pretty_url($bo_table, '', $media_rating_qstr . '&page='));
}
$has_custom_order = false;
$list_wr_ids = array();▼ 이렇게 수정해주시면 됩니다. (수정 부분 표시해두었어요!)
$media_rating_filter = null;
if (isset($_GET['media_rating'])) {
$media_rating_input = trim((string)$_GET['media_rating']);
if (in_array($media_rating_input, $media_rating_options, true)) {
$media_rating_filter = $media_rating_input;
}
}
// === 여기서부터 덮어씌워 주세요 ===
$media_where = "wr_is_comment = 0";
if ($media_rating_filter !== null) {
$media_rating_number = round(max(0, min(5, (float)
$media_rating_filter)) * 2) / 2;
$media_rating_sql = number_format(
$media_rating_number, 1, '.', '');
$media_where .= " AND CAST(wr_1 AS DECIMAL(3,1)) = '" .
$media_rating_sql . "'";
}
if ($sca !== '') {
$media_where .= " AND ca_name = '" . sql_real_escape_string(
$sca) . "'";
}
if ($stx !== '' ||
$stx === '0') {
$media_where .= " AND (" . get_sql_search('',
$sfl,
$stx,
$sop) . ")";
}
if (!$is_admin) {
$current_mb_id = sql_real_escape_string(
$member['mb_id'] ?? '');
$media_where .= " AND (wr_option NOT LIKE '%secret%' OR mb_id = '" .
$current_mb_id . "')";
}
$media_count_row = sql_fetch("SELECT COUNT(*) AS cnt FROM " .
$write_table . " WHERE " .
$media_where);
$total_count = isset(
$media_count_row['cnt']) ? (int)
$media_count_row['cnt'] : 0;
$page_rows = G5_IS_MOBILE && !empty(
$board['bo_mobile_page_rows']) ? (int)
$board['bo_mobile_page_rows'] : (int)
$board['bo_page_rows'];
if ($page_rows < 1) {
$page_rows = 15;
}
$total_page =
$total_count > 0 ? (int)ceil(
$total_count /
$page_rows) : 1;
if ($page < 1) {
$page = 1;
} else if ($page >
$total_page) {
$page =
$total_page;
}
$from_record = (
$page - 1) *
$page_rows;
$media_sql = "SELECT * FROM " .
$write_table . " WHERE " .
$media_where . " ORDER BY wr_order ASC, wr_num ASC, wr_reply ASC LIMIT " .
$from_record . ", " .
$page_rows;
$media_result = sql_query(
$media_sql);
$list = array();
while ($media_row = sql_fetch_array(
$media_result)) {
$media_item = get_list(
$media_row,
$board,
$board_skin_url,
$board['bo_subject_len']);
if (strstr(
$media_item['wr_option'], 'secret')) {
$media_item['wr_content'] = '';
}
$list[] =
$media_item;
}
$media_paging_qstr = preg_replace('/(&|&)page=[^&]*/', '',
$qstr);
if ($media_rating_filter !== null) {
$media_paging_qstr = preg_replace('/(&|&)media_rating=[^&]*/', '',
$media_paging_qstr);
$media_paging_qstr .= '&media_rating=' . rawurlencode(
$media_rating_filter);
}
$write_pages = get_paging(G5_IS_MOBILE ?
$config['cf_mobile_pages'] :
$config['cf_write_pages'],
$page,
$total_page, get_pretty_url(
$bo_table, '',
$media_paging_qstr . '&page='));
// === 여기까지 덮어씌워 주시면 됩니다 ===
$has_custom_order = false;
$list_wr_ids = array();
수정하기 편하게 앞 뒤로 어떤 코드 있는지까지 따로 붙여둔 거라 수정된 부분만 복사해서 수정하셔도 됩니다.
기존 배포 파일 업데이트 시 게시글은 비공개 됩니다! (저도 그거 쓸 거라서요.)
예쁘고 편리하고 실용적인 스킨 배포해주신 메리 님께서 만수무강하시기를….

댓글목록
등록된 댓글이 없습니다.