목록 갯수

Lv3
Extra Form
PHP PHP 7.4
CMS Rhymix 2.1

블로그 형식의 게시판을 만들고 있습니다.

어느정도 제가 원하는 모양으로 만들긴 했습니다.

그런데 하나가 해결이 안되네요.

 

코어를 안 건드리고 목록갯수를 유동적으로 바꾸고 싶습니다.

스킨에서 가능한가요?

 

예를 들면 게시판 설정에는 목록수가 20 이지만,

스킨에서 수치를 입력해서 원하는 숫자만큼 목록을 가져오게 되는 기능입니다.

 

이게 가능한가요?

 

  • Lv19
    가능하기는 한데 고려해야 할 사항들이 좀 있습니다.

    1. 코어에서 실행하는 목록 작업 외에 스킨에서 목록 작업을 한번 더 거치게 되므로 방문자수에 따라 서버에 부하를 줄 수 있습니다.

    2. 따로 목록을 만들 때 board.view.php나 document.model.php 등을 뜯어보고 코어에서 실행하는 방법을 참고하면 도움이 될 수 있습니다. list_count(목록수), page_count, page, total_count, total_page 등을 구해서 페이지 핸들러를 적용시키주면 될 겁니다. 그 결과를 목록 변수($document_list)와 페이지 내비게이션 변수($page_navigation)에 덮어쓰면 됩니다.

    3. 만약 본문 읽기 모드인데 해당 본문이 목록의 1페이지가 아니라 2 이상의 다른 페이지에 있다면, 문서 번호만으로 페이지를 찾아주는 작업도 해야 할 겁니다. 코어에서는 왠지 게시판 설정에서 입력된 목록수를 기준으로 찾을 것 같은데요. 마찬가지로 코어에서 document page를 찾아주는 방식을 참조해서 새로운 page값을 알아낸 뒤 Context::set(~, ~) 등의 구문으로 덮어쓰기하면 될 겁니다. 그러고 나서 위의 2번 과정을 시도하면 되겠네요.

    그 외에 추가적인 고려사항이 있다면 다른 분들께서 알려주실 겁니다 😎
  • Lv5
    게시판 스킨 단독으로는 구현하기 곤란하고, 필요에 의해 애드온으로 제작해본 적은 있습니다.
    윤삼님이 제기한 문제 이외에도, 누군가 99999 같이 엄청 큰 값을 임의로 입력한다면 서버 부하로 이어질 수도 있습니다.
  • Lv15
    아마 방식이 얼핏 생각해본다면,
    게시판 모듈을 실행하기 이전 시점에서 모듈 정보를 가져올 때
    게시판 설정의 20이란 숫자를 임의로 변경하는 스킨과 연동되는 애드온으로 만든다거나,

    혹은 쿼리문을 직접 만들어서 별도의 문서수 카운트를 할 수 있도록 한다거나 하면 가능할거 같습니다.
  • Lv3

    두분 모두 감사드립니다.

     

    제대로 구현하는건 간단한 문제가 아니네요.

    윤삼이 말씀 주신 파일을 밤새 보긴했는데

    제 능력을 벗어나는 부분인듯 합니다.

     

    두분이 걱정해 주신 서버 부하는 특정한 사람들만(관리자라던지) 할 수 있게 하려던 부분도 있어서

    크게 걱정은 하지 않았는데 생각해 보니 그것도 문제가 될 소지가 있네요.

     

    단순히 페이징이나 기타 조건없이 원하는 목록 갯수만큼 불러오게 하려던게 목적이다 보니 

    질문에는 목록갯수만 언급했었는데

    제가 질문을 두리뭉실하게 잘못 드린것 같네요.

     

    조금더 공부를 해 봐야 겠습니다.

    두분 모두 감사합니다.

     

  • Lv3 Lv19

    그렇다면 스킨단만으로는 어렵겠네요ㅜ
    역시 아래 클라드룹님 말씀처럼 애드온이나 모듈 제작을 하는 게 어떻까 싶네요.
    url에 user_list_count=4 같은 파라미터가 들어가 있으면,
    애드온이나 모듈을 통해 list_count를 user_list_count값으로 가로채는 거죠.
    (더불어 SimpleCode님이 말씀하신 문제도 있으니 권한 체크를 하거나 숫자 최대값 제한을 해주면 좋겠고요)

  • Lv3

    트리거를 활용하면 구현 가능할것 같긴합니다.
    moduleHandler.init - before 에서 페이지수나 목록 변수를 조절 해보세요.

  • Lv3 Lv36

    애드온 실행 시점이 아니라 트리거를 활용한다면 document.getDocumentList before 시점이 가장 확실합니다.

     

    다른 시점에 list_count나 page_count를 변경하더라도 게시판 실행 과정에서 게시판 설정값으로 다시 덮어씌워지거나, 위에서 누가 말씀하신 것처럼 목록 페이지수가 안 맞는 부작용이 발생할 수 있으니 목록 추출 직전에 정확하게 변조해야지요.

  • Lv36 Lv3
    document.getDocumentList 트리거가 존재하는군요.
    예전 문서만 보다보니 ㅠㅠ 감사합니다!

    스킨 수정만으로는 힘들고 코어 수정없이 하려면 애드온이나 모듈의 트리거 document.getDocumentList before 를 이용해서 구현하시면 되겠습니다.
  • Lv3

    말씀 주신 부분은 스킨만 제작하는 저로써는 미지의 영역이라 한참을 공부해야 할것 같습니다.

    예시 들어 주신 부분도 계속 들여다 보고, 구글 검색도 해 보고 있는데 

    역시나 어렵네요. 

    혹시나 성공하게 되면 자랑하러 올께요.

    모두 감사 드립니다.

  • Lv9

    질문과 상관없는 댓글 죄송합니다...만..
    스킨이 너무 아름다워서 댓글을 안 쓸수가 없네요.
    레이아웃, 게시판, 위젯 할거 없이 최고 퀄리티군요!
    쓸만한 레이아웃 만들어 배포해 보겠다고 맘 먹은게 벌써 십년이 다 되어 가는데 ㅠㅠ

    저한테는 꿈만 같은 스킨들이네요!

  • Lv9 Lv3
    앗 이런 칭찬을...
    마음의빈자리님 감사합니다.
    저도 여러 고수님들 해 놓은거 가져다 하는거라 쑥스럽네요.
    아직 정리 중이긴 하지만
    이런 반응이라면 공개할 용기가 조금씩 생기네요.
  • Lv3 Lv9
    우와! 지금 상태만으로도 쓰고 싶은 사람 수두룩 할 것 같은데요?? ㅎㅎㅎ
    저도 쓸만한 스킨 배포할 수 있음 참 좋겠네요 ㅠㅠ