인외동맹
Twemoji © Twitter · CC-BY 4.0
READ_DATA_MODE :: 2026.10.05 01:10 ● REC [█████] BAT
[배포]

메리 님 라공 에디션 호환 영화 리뷰 게시판 순서 오류 코드 수정

> AUTHOR_ 영원홈페이지 아이디로 검색 > SOURCE_ https://x.com/MG7_skin/status/2068604516962898248 > RATING_ [♥♡♡♡♡]

image.png 

해당 문제가 해결이 된 파일이 업데이트 되었습니다!

 메리 님 트위터에서 받아주세요. 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('/(&amp;|&)media_rating=[^&]*/', '', $qstr);
    $media_rating_qstr .= '&amp;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 . '&amp;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();


수정하기 편하게 앞 뒤로 어떤 코드 있는지까지 따로 붙여둔 거라 수정된 부분만 복사해서 수정하셔도 됩니다. /ㅎㅎ


기존 배포 파일 업데이트 시 게시글은 비공개 됩니다! (저도 그거 쓸 거라서요.)

예쁘고 편리하고 실용적인 스킨 배포해주신 메리 님께서 만수무강하시기를….

댓글목록

등록된 댓글이 없습니다.