1. 이전글 document_srl 가져오기

@php
$document_srl = Context::get('document_srl');
$module_srl = $module_info->module_srl; //Context::get('module_srl')

exit(var_dump($module_srl));
$oDB = DB::getInstance();
// 이전글 조회
 $prev_query = "SELECT * FROM documents WHERE module_srl = ? AND document_srl < ? ORDER BY document_srl DESC LIMIT 1";
 $stmt = $oDB->query($prev_query, [$module_srl, $document_srl]);
 $prev_document = $stmt->fetch();
 exit(var_dump($prev_document->document_srl));


@endphp

2. list_order, update_order가 음수로 되어있음.

@php
    $document_srl = Context::get('document_srl');
    $module_srl = $module_info->module_srl;
    $oDB = DB::getInstance();

    // order_target이 list_order인지 update_order인지 확인
    $order_target = $module_info->order_target; // list_order, update_order

    // 현재 글의 절대값 order_target 필드 값 가져오기
    $current_query = "SELECT ABS($order_target) AS abs_order FROM documents WHERE document_srl = ?";
    $stmt = $oDB->query($current_query, [$document_srl]);

    // 현재 order_target 값 가져오기
    $current_order = $stmt->fetchAll(PDO::FETCH_ASSOC)[0]['abs_order']; // 첫 번째 행의 abs_order 값 가져오기

    // 이전글 조회
    $prev_query = "SELECT * FROM documents
                WHERE module_srl = ?
                AND ABS($order_target) < ?
                ORDER BY ABS($order_target) DESC
                LIMIT 1";
    $stmt = $oDB->query($prev_query, [$module_srl, $current_order]);

    // fetchAll()로 이전글을 가져오기
    $prev_documents = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // 이전글을 가져오기
    $prev_document = $prev_documents ? $prev_documents[0] : null;
    $prev_title = $prev_document['title'];
    $prev_document = $prev_document['document_srl']; // 이전글번호
    //echo $prev_document;

    // 다음글 조회 (수정된 부분)
$next_query = "SELECT * FROM documents
               WHERE module_srl = ?
               AND ABS($order_target) > ?
               ORDER BY ABS($order_target) ASC LIMIT 1"; // 오름차순으로 수정
$stmt = $oDB->query($next_query, [$module_srl, $current_order]);

    // fetchAll()로 다음글을 가져오기
    $next_documents = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // 다음글을 가져오기
    $next_document = $next_documents ? $next_documents[0] : null;
    $next_title = $next_document['title'];
    $next_document = $next_document['document_srl']; // 다음글번호
    //echo $next_document;
@endphp

<div style="display:flex;justify-content: space-between">
    <a id="prevPost" href="@url('document_srl',$prev_document)">이전글({$prev_title})</a>
    <a href="@url('document_srl',$document_srl)">현재글({$oDocument->getTitle()}})</a>
    <a id="nextPost" href="@url('document_srl',$next_document)">다음글({$next_title})</a>
</div>

<script>
    document.addEventListener("keydown", function (event) {
       if (event.key === "ArrowLeft") {  // 왼쪽 화살표 키
          let prevLink = document.getElementById("prevPost");
          if (prevLink && prevLink.href) {
             window.location.href = prevLink.href;
          }
       } else if (event.key === "ArrowRight") {  // 오른쪽 화살표 키
          let nextLink = document.getElementById("nextPost");
          if (nextLink && nextLink.href) {
             window.location.href = nextLink.href;
          }
       }
    });
</script>

3. 통합게시판은 위 소스가 안 먹음. 왜냐하면 게시판별로 순서를 가져오기 때문에.

order_target이 list_order인지 update_order인지는 넣어뒀음.