XE TOWN에 자료공유 게시판 혹은 포인트 마켓을 통해 배포할 예정입니다.

 

조건

글 목록 페이지당 10개만 출력 하도록 설정됨

10개의 글중 차단된 회원들의 글이 4개

 

결과

1.차단된 회원의 글을 제외하고 6개 출력

2.차단된 회원의 글을 제외하고 10개 출력

 

제가 생각한 결과물은 2번이 맞지 않을까 생각됩니다.

그런데 2번으로 할 경우 document , comment 모듈의 수정이 불가피할거 같아서 고민이 큽니다.

가능한 수정없이 모듈 설치만으로 작동되길 원하고 있습니다만;;

 

여러분들 생각은 어떠신가요?

1,2 혹은..

3.기본적으로 1번 기능으로 작동 .. 하지만, document,comment 모듈 수정이 가능하다면 2번까지 작동 되도록

사실 3은 싫습니다.

퀄리티를 위해 하나만 결정해서 밀고 나가고 싶어요.

  • ?
    2번도 기술적으로 가능합니다. 게시판 스킨을 보시면 $document_list 변수에 게시물이 전부 들어가 있습니다.

    차단한 회원을 제외한 게시물 목록을 $document_list에 넣고, 다시 Context::set()으로 덮어씌우면 됩니다. 전체 글 갯수나 전체 페이지 수도 마찬가지로 다시 덮어씌우면 됩니다.

    다만, 문제는 게시판을 두 번 호출하는 효과가 난다는 것이죠.
  • ? profile
    트리거 호출되면 Context::set() 이용해 덮어쓰길 해볼까 생각은 해봤습니다만, 요즘 이슈가 되고 있는 속도 저하가 신경 쓰이더라구요ㅠㅠ
  • profile ?
    2번이 가장 이상적인 방법이라고 봐요. 페이지별로 글 수가 안 맞으면 사용자 입장에서는 뭔가 이상하거든요.
    가능하다면 XE 1.8.25에 추가된 document.getDocumentList 트리거를 이용해보는 것도 좋을 것 같네요.
  • ? profile
    그렇지 않아도 기진곰님이 1.8.25 업데이트 내용을 알려 주셔서 알았습니다.
    감사합니다.
  • profile
    사실 차단게시물 때문에 목록 숫자가 줄어드는건 큰 문제는 아닐 수 있지만 갤러리형에서는 디자인 때문에 지정한 숫자가 출력되길 원하는 경우가 생길 수 있을거라 생각되어집니다.

    저와 같은 경우는 갤러리형의 경우 게시판 설정에서 PC와 모바일 목록 숫자를 각각 스킨의 특성에 따라 모든열의 숫자가 동일하게 유지되도록 세팅합니다.

    ***
    ***
    **

    이렇게 출력되는걸 좀 싫어하는 성격이라서요
  • profile profile
    차단이니..아예 나오지 않아야 됩니다.
    다시 보고 싶으면 회원 메뉴에서 차단 목록을 통해 풀면되니..
    ** 바꿔 버리면 별루죠.
  • profile profile
    차단을 빼고 나머지를 채우는 것을 선호한다는 거죠
  • profile profile
    저건 갤러리형 게시물 숫자를 표시한거에요. 1열 3개 2열 3개 3열 2개
    차단때문에 저렇게 되는걸 갤러리형 운영하는 곳에서는 선호하지 않을 수 있다는 거죠
  • profile profile
    네.. 맞아요..
    답은 2번입니다.

    코어 수정이 힘드신 분들이 사용을 못하는 모듈을 개발하기가 조금 그렇네요^^;
    코어 수정 따위 아무것도 아니신 분들도 코어 업데이트때 귀차니즘!!

    애물 단지 되어 버리는 모듈이 될수도 있겠고.. 차단 모듈 개발을 잠시 접어야 될런지 고민이네요 ㅠㅠ
  • profile profile
    라이믹스 전용으로 만드신다면 필요한 기능 팍팍 지원해 드리겠습니다 ㅋㅋ

    문서 검색 쿼리에 이미 특정 module_srl을 제외하는 기능이 있는데, 비슷한 방법으로 member_srl을 제외하는 기능을 추가하는 게 어렵지는 않을 테니까요...
  • profile profile
    라이믹스 전용 ! ㅎㅎ
    말씀 감사드립니다.
    이왕 하는거 XE & 라이믹스 둘다 작동 되었으면 좋겠습니다.
  • profile profile
    반드시 필요한 기능이 있다면 XE에 풀리퀘스트 넣어 보세요. 요즘 꽤 잘 받아주는 편입니다.
  • profile

    XE 1.8.25에서 추가된 document.getDocumentList(before) 트리거를 사용하면 문서 목록에 임의로 조건을 추가하거나 목록을 대체할 수 있습니다. 슈퍼 캐시 모듈에서 페이징 캐시 및 검색 결과 캐시를 위해 사용하는 트리거인데, 잘 사용하면 상상할 수 있는 거의 모든 기능을 구현할 수 있지만 잘못 사용하면 게시판 망가지는 지름길이지요.

     

    댓글은... 굳이 코어수정 없이 처리하자면 documentItem 클래스를 상속받아서 getComments() 메소드만 다시 정의하고, moduleObject.proc(after) 트리거에서  $oDocument를 이것으로 바꿔치기하는 방법이 있겠네요. 실제로 이 메소드를 호출하는 것은 스킨 실행 시점이니, 미리 바꿔치기하면 댓글을 두 번 불러오지 않아도 됩니다.

     

    물론 문서 목록도 같은 방법을 사용해서 $document_list를 바꿔치기하면 XE 1.8.25 미만 버전에서도 사용할 수 있겠지만, 목록을 두 번 불러오게 되니 슈퍼 캐시 모듈이 안 좋아할 겁니다 ㅋㅋㅋ

  • profile profile
    1.8.25 이상 에서만 작동되게 배포 해버릴까요? ㅎㅎ
    정말 진지하게 고민 해봐야겠네요.ㅋ
  • ?
    기술적인 내용은 모르지만 2번이 맞을듯 하고요. 만약에 속도 문제가 예상이 되어 1번으로 한다면

    지속적이고 지속적인 끊임없는 무한 반복 오브 무한 반복 같은 질문을 계속해서 매일 매일 받을거라 예상 합니다. ㅎㅎ
  • ? profile
    1,2번으로 하든 아마 질문은 꽤 있을듯 합니다.ㅠ
  • profile

    구름이님, 지나가다 궁금해서 질문 드리는데요.

    저는 그동안 스킨단에서 목록 필터링할 때 코어에 내장된 document_list 대신,
    $total_count로 $args->list_count를 잡고 getDocumentList로 $output을 얻어낸 다음,
    $output->data를 루프 돌리면서 필터링할 문서들을 unset($output->data[$key]) 처리하고,
    최종적으로 $document_list = array_slice($output->data, $module_info->list_count*($page-1), $module_info->list_count, true) 로 정의내려서 사용했었거든요.
    (물론 정말 최종적으로는 $page_navigation 변수를 다시 정리를 해줘야 하구요)

    이렇게 하면서 말씀하셨던 2번 방식을 해본 적이 있었는데, 이 경우에도 게시판을 두 번 호출하는 셈인가요?
    저도 하면서 좀 알딸딸하긴 했거든요.
    코어에서 만들어주는 $document_list를 바로 사용하는 게 아니니까 한 번만 호출하는 거 같기도 하고, 아닌 것 같기도 하고요.

  • profile profile
    스킨에서 getDocumentList 를 호출하시나요?
    스킨 출력전 코어에서 document_list 생성을 위해 getDocumentList를 사용하는걸로 알고 있어요.
    그렇다면 게시판 목록 쿼리를 두번 사용하는것 아닐까요?
  • ?
    재작년 공모전때 모듈로 작업하다가 시간 문제로 애드온으로 먼저 글/쪽지만 처리해서 냈던거군요. 모듈로 다시 작업하려고 했었는데 시간이 안나서 완성을 못시키고 있었던..
  • ? profile
    시간 괜찮으시면 이어서 완료 해주세요.
  • ?

    와 이런기능 기다렸는데... 비슷한 기능의 애드온이 있어 잠깐 썼다가 사진 첨부시 새로고침이 안되는 버그 때문에 못썼는데...기대 됩니다.

     

    2번도 좋지만 1번의 경우 모듈 수정이 없다면 유지관리를 위해 1번을 원하는 사람들도 많을거 같습니다.

     

    일단 1번 방법으로 하시고 추후 다른버전으로 만드는게 어떨까요?