모듈

예약발행

추천 수 12 댓글 109
Extra Form
자료 소개 등록된 문서의 공개 및 발행을 대기(embargo) 상태로 전환하고, 정해진 일시에 또는 수동으로 공개 및 발행합니다
설치 경로 ./modules/prepub
테스트 환경 Rhymix 2.0
라이선스 GPL v2
이름 버전 날짜 다운수
prepub.0.1.1.zip 0.1.1 2023-11-26 45
prepub.0.1.0.zip 0.1.0 2022-12-22 559
prepub.0.0.4.zip 0.0.4 2022-11-24 503
prepub.0.0.3.zip 0.0.3 2022-11-23 479
prepub.0.0.2.zip 0.0.2 2022-11-23 481
prepub.0.0.1.zip 0.0.1 2022-11-20 494

0.1.1 업데이트 (2023.11.26)

1. 관리자 페이지에서 게시판 설정에 접근하여 예약발행 설정을 했을 때 예약발행 일시 확장변수가 생성되지 않는 문제 수정 (alrin님)

2. 통합게시판에서 module_srl이 배열로 넘어왔을 때 공지사항 목록이 반영되지 않는 문제 수정

3. 문서번호가 있는 url로 접속시 페이지 새로고침 후 문서 내용을 볼 수 있는 문제 수정 (톰캣님)

 

0.1.0 업데이트 (2022.12.22)

1. 라이믹스 코어 2.0.24 버전 업데이트에 대응

=> 이번 0.1.0 버전부터는 코어 2.0.24 이상에서만 정상 작동합니다.

... 단, 코어 업데이트를 하지 않았다면 이번 버전을 사용하시면 안 돼요!

: 공지글 목록 before 트리거 추가 (관리자 페이지에서 '모듈 업데이트' 필수)

: 공지글 목록 before 트리거에서 statusList에 '엠바고' 형식을 추가

: 공지글 목록 after 트리거에서는 '목록 쿼리를 추가 실행하지 않고' 기존 목록에서 엠바고 문서의 노출을 조정

2. 추가 개선

: 예약글 목록에서 '전체공지' 표기

: 예약글 목록에서 문서 카트 모달 팝업 띄울 때 ajax 경고에 대응

 

0.0.4 업데이트 (2022.11.24)

0. 잦은 업데이트여서 민망합니다;;;

1. 전체 공지 목록이 사라지는 문제 수정 (핑크두유님)

-> getNoticeList.xml 쿼리 제거

-> getNoticeList 트리거를 after 시점으로 잡고 엠바고 상태의 문서들을 목록에서 제외하는 방식

 

0.0.3 업데이트 (2022.11.23)

1. 기존 공지가 사라지는 문제 수정 (핑크두유님)

 

0.0.2 업데이트 (2022.11.23)

1. 통합게시판에도 적용

2. 비관리자가 일반 문서 수정시 예약이 신생/갱신되지 않는 문제 수정

3. 게시판에서도 작성자 및 관리자가 발행 대기 문서를 열람 가능 (산소아빠님)

4. getDocumentList, getNoticeList 트리거 호출 시점 변경 (기진곰님)

 

자료 소개

1. 게시글을 정해진 시점에 공개 및 발행할 수 있습니다.

2. 또한 발행 일시와 관계없이 무기한 대기시킬 수도 있습니다.

3. 발행 대기 상태의 문서는 관리자에 의해 수동으로 공개 및 발행할 수도 있습니다.

4. 아래의 환경 외에서는 오작동할 수 있습니다.

- 0.0.x 버전까지는 PHP 7.4 및 라이믹스 2.0.23 버전에서 제작되었습니다.

- 0.1.x 버전부터는 PHP 7.4 및 라이믹스 2.0.24 버전에서 제작되었습니다.

 

Special Thanks to ...

- 본 자료는 기존의 유료자료들과 기능적으로 겹치는 부분이 있지만, 개발자분들께서 흔쾌히 양해해주셔서 무료 배포를 할 수 있게 됐습니다. 람보님과 sejin7940님의 조언과 격려에 다시 한 번 감사 말씀 올립니다.

- 아울러 본 모듈은 코어에서 제공하는 트리거에 대부분 의존하고 있어서, getDocumentList 및 getNoticeList 트리거를 활용하는 다른 서드파티 자료와 충돌 가능성이 있는데(예. 확장변수 다중검색 애드온 같은 것들ㅜ), 혹시라도 이용에 불편하신 부분이 있다면 기존의 유료자료를 사용하시기를 권장합니다.

- 람보님의 예약게시글 모듈 : https://xetown.com/thirdparties/677337

- 세진님의 승인글/예약글 모듈 : http://sejin7940.co.kr/index.php?mid=sejin7940_work&category=102928

 

 

설치 및 사용 안내

 

1. ./modules/prepub에 모듈을 설치합니다.

 

2. 관리자 페이지 대시보드에서 모듈 관련 설정을 확인합니다.

00.png

 

3. 각 게시판의 설정/관리 페이지에서 '추가 설정' 탭으로 이동, 중하단쯤에서 '예약발행 설정'을 진행할 수 있습니다.

01.png

- 사용 안 함(기본값) : 예약발행 모듈을 사용하지 않습니다.

- 발행일시 지정 방식 : 게시판에 확장변수(prepub_datetime)를 자동 생성하고, 글쓴이는 글쓰기 화면에서 특정 일시를 지정하여 발행을 예약할 수 있습니다.

- 무조건 발행대기 방식 : 일시와 상관없이 게시물을 발행 대기 상태로 있게 합니다.

 

4. 발행 대기 상태의 문서들은 모듈 관리 페이지(./index.php?module=admin&act=dispPrepubAdminList)에서 일람할 수 있습니다. 여기서 '발행' 버튼을 통해 대기 상태의 문서들을 수동으로 발행하는 것도 가능합니다.

02.png

 

제작자 윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • ?
    라이믹스에서 예약발행 무조건 발행대기 방식 설정 상태에
    <게시물 수정 내역>에 체크한 후 사용 중에 예약발행 목록에서 상태부분이 빈 공란으로 나오고 발행이 안되는데 혹시 정상동작 하나요?
  • ? profile
    나중에 시간이 나면 테스트를 해볼 수 있을 것 같은데 지금으로서는 한참 후순위가 될 것 같습니다.
    혹시 긴급한 사안이라면 기존부터 판매되고 있는 유료 자료를 이용해보세요.
  • ?

    예약발행 글에 광고를 안 나오게 하고 싶은데 if조건문으로 안 나오게 할 수 있을까요?

  • ? profile
    글쎄요. 광고쪽은 저도 전혀 몰라요ㅜ
  • ?
    발행된 글은 수정시 예약 발행 날짜가 안 떠야될 것 같습니다
    이미 발행된 글을 수정하면 다시 예약글로 바꿀 수 있습니다
  • ? profile
    좋은 코멘트 감사합니다.
    근데 그건 옵션으로 두는 게 어떨까 싶습니다.
    경우에 따라선 이미 등록된 글을 수정해서 다시 예약글로 복구하고 싶을 때도 있을 테니까요.
    다음 버전 작업을 하게 된다면 모듈별 추가 설정에서 '이미 발행된 문서라도 수정시에 예약 문서로 복구 가능' 옵션(기본값은 '예')을 넣어보도록 할게요.
  • profile ?
    고맙습니다

    발행을 미래로 설정하고 글 작성 후 수정해서 예약일을 지우고 글 수정을 했을 때
    글은 바로 발행되지만 글 작성 시간이 첫 예약일로 설정 됩니다
  • ? profile
    그렇다면.. 버그겠군요. 이것도 다음 버전에서 잡아보겠습니다. 감사해요!
  • profile

    좋은 모듈을 제작해 주시어 잘 사용하고 있습니다. 고맙습니다.

    요즘 사용하다보니... 이는 오류 같아서 글 올립니다.
    카테고리까지 동일하게 설정한 2개의 게시판을 만들었습니다.
    여기서 1번 게시판에 [예약발행]으로 발행일정이 예약된 게시물을 2번 게시판으로 이동시키며,
    1번과 동일한 카테고리를 설정했습니다.

    위와 같이 1번에서 2번으로 옮기면,
    2번 게시판의 카테고리에는 정상적으로 옮겨진 게시물의 숫자가 +1 추가되어 표시되지만,
    해당 게시물은 게시판에서 보이지 않습니다.
    게시판에 직접 접촉해도, 해당 카테고리를 눌러 카테고리 내부로 이동해도 동일합니다.

    이렇듯 안 보이는 게시물을 보이도록 만들려면,
    해당 카테고리에서 1개의 게시물을 추가하면 바로 숨겨져 안보였던 게시물들이 모두 노출됩니다.
    숨겨져 안보였던 게시물의 예약일정을 삭제하며 취소하고 저장하면, 이후로는 잘 보입니다만...
    예약일정만 변경해서 저장하거나 임의로 추가했던 게시물을 삭제하면 다시 숨겨집니다.

    다만, 카테고리를 설정하지 않고 1번에서 2번으로 또는 2번에서 1번으로 이동하면 이상 없이 잘 노출됩니다.
    위와 같이 이동한 게시물이 숨겨지는 현상은 옮겨지는 대상 게시판의 카테고리로 들어가면 발생되는 것 같습니다.
    이렇다보니 지금으로썬 2번 게시물을 1번으로 이동할 때, 발행일정을 예약하지 않고 이동한 다음에 설정하거나,

    대상 게시판의 카테고리를 설정하지 않고 이동한 다음에 카테고리를 설정하는 방식으로 사용중입니다.

    ...
    이렇게하려니 복잡하고 불편하네요.
    혹시, 가능하시면... 정정 부탁드려요. ;;;

    -----

    사용중인 라이믹스는 일반버전의 최신판이고, 스케치북 게시판을 사용중입니다.

  • profile profile
    재연을 해볼까 했는데 치명적인 오류까지는 아닌 듯하여 일단 우선순위에서는 미뤄둬야 할 것 같습니다.
    근 1년 넘게 정신이가 없어요ㅡ 어지간한 동기가 아니면 에디터 열기가 쉽지 않네요;;;

    그나저나 말씀하신 커맨드는 제작 단계에서는 전혀 예상하기 어려웠던 방식인데요.
    예약발행을 적용한 게시판끼리 게시물을 이동할 필요가 있나요?
    어차피 공개 시점까지 2번 게시판의 목록에는 나오지 않을 텐데요.
  • profile profile

    필요성은 낮지만,
    저의 경우에는 유투브 채널과 홈페이지를 같이 운영하는데요.
    주로 시간이 될 때마다 다량으로 영상을 제작해서 유투브에 올려 예약 걸어 놓고,
    이와 동시에 홈페이지에도 게시물로 등록함과 동시에 보조 게시물도 같이 등록합니다.
    그리고 윤삼님께서 제작하신 예약발행 모듈로 일정을 예약해서 운영 중입니다.
    이 부분에서 예약발행 모듈로부터 아주 큰 도움을 받고 있습니다.

    제작해 주시어 대단히 고맙습니다. ^^

    제가 운영하는 유투브 채널의 일부 영상은 미리 제작해서 올려도 되기 때문에 이렇게하는데요.
    이에 보조 게시물에 발행일정을 예약해 놓고 운영하다, 계획이 변경되어 해당 날짜에는 다른 게시물을 공개하고,
    예약 걸어 놨던 게시물은 공개하지 않고 보류해야 되는 상황이 발생하기도 합니다.
    이때 보류된 게시물을 동일한 환경의 게시판으로 옮기면, 기존 게시판은 좀 더 깔끔하고 운영하기에도 좋아서,
    이렇듯 2개의 동일한 게시판을 만들어 운영하게 됐습니다.

    저처럼 운영하는 분들이 얼마나 될지는 모르지만,
    이런 오류가 있다는 점을 알려드리고 싶어, 남기게 됐습니다.

    언제나 건강하고 행복한 하루하루 되세요. 고맙습니다.

  • profile profile
    저도 오류를 발견했다가 동일한 증상이 발견된부분을 확인하였습니다. 일단 예약발행을 게시판에 복사하는이유는 A게시판 B게시판 C게시판 서로 다른 게시판에 매일 1개의 게시글이 올라가게되는데
    A게시판에 미리 2023년 12월까지 게시글을 작성해두고 있습니다.
    그런데 이게 날짜입력하는게 꽤나 ..귀차니즘이라
    A게시판에 2023년12월31일까지 입력하고
    이걸 B게시판과 C게시판에 복사만 해도
    날짜입력에 대한 시간이 매우 줄어들어 해당작업을 선호하는데 .. 이게 복사를하면 게시글리스트에 삭제가되어버리더라구요 ... 물론 위에 "대한국인" 님처럼 동일분류를 지정하여 게시글을 하나 작성하면 리스트가 다시 노출되기때문에 .. 당장급하게 해결하지않아도 될부분이긴하나 .. 이러한증상이 나타나긴합니다
  • profile profile

    여러 게시판을 이용하는 게 편의성이 있는 건가보군요.
    다만, 어디서부터 살펴봐야 할지 감이 잘 안 오는 이슈이기도 해서 시간이 좀 걸릴 것 같습니다.
    (이 모듈이 좀 코드가 복잡해요ㅡㅜ 상황 재연을 해봐야 오류도 검증할 수 있는데 제대로 된 재연을 할 수 있을지도...)

  • profile profile

    안녕하세요? @대한국인님 @원이아빠님
    혹시 앞에서 말씀하셨던 2번 게시판에 게시물 목록이 없는 상태였나요?
    현재 코어 버전에서는 빈 게시판에 게시물 이동/복사시 예약발행 문서의 목록이 구현되지 않는 이슈가 있거든요.

    2번 게시판에 새로운 글을 작성하면 예약게시물도 목록에 노출된다고 하셨잖아요?
    그리고 새로 작성한 글을 삭제하면 노출됐던 예약게시물이 또 사라진다고요.
    이 경우에도 게시물이 없는 빈 게시판인 걸까요?

     

    게시물 '이동/복사' 커맨드로 재연을 해본 결과, 이동 및 복사된 예약게시물이 빈 게시판에서는 목록 노출이 안 되지만 게시물이 있는 게시판에서는 잘 노출되는 것 같거든요.

     

    덧. 만약 제가 테스트해본 결과가 맞다면 코어의 다음 버전부터는 해당 문제가 자연히 해결될 것 같습니다. https://github.com/rhymix/rhymix/issues/2217

    급하신대로 ./modules/document/document.model.php 파일을 다음과 같이 수정해두셨다가 나중에 master 업데이트 버전 나오면 덮어써도 좋을 것 같아요. https://github.com/rhymix/rhymix/commit/c2311f88be209ff0c73de9c8f4c90efcddc42ad0

     

    덧덧. 코어 2.1.10 업데이트 버전이 공개됐네요. 한번 테스트해봐주시기를 부탁드립니다~

  • profile

    대기 상태의 글이 최신 글 추출에는 노출되어서 보여져 버리네요.
    링크도 타고 들어가져서 2회 접속시엔 비회원에게 본문 내용도 볼 수 있게끔 되어져서요.

     

    (혹시 해당 모듈만의 if 문같은게 있다면 최신글 추출 안되게 해주면 좋을것 같다는 생각이 듭니다.)

     

    다른 아이피로 접속했는데도 

    엠바고 문서인데 내용이 떠버리네요.

    검색엔진이 문서를 수집해 갈 수 있을것 같네요.

     

     

     

    1. 그냥 페이지 주소로 접속 비밀글 입니다 라고 내용이 나옴

    2. 최신글 추출 링크를 타고 접속시 본문이 보여져 버립니다.

     

    +++

    추가로 테스트 해보니 

    비회원으로 엠바고 글을 작성(회원으로 써도 마찬가지)

    다른 아이피로 접근

    403에러 뜨면서 비밀글 입니다. 라고 뜸

    그리고 한번더 같은 주소로 접속 시 내용이 다 떠버림.

     

    1. 최초 접속시 비밀글 입니다. 라고 잘 접근 제한됨

    2. 새로고침 혹은 같은주소로 재방문시 본문이 보여져버림

     

    치명적인 문제가 있는 것 같습니다.

     

    ++++++++++++++

     

    또 추가로 테스트 해보니 제사이트에서만 발현되는 문제네요.

  • profile

    원인 : 설정 - 시스템설정 - 고급 설정 - 캐시 사용 sqlite 로 설정하면 해당 증상 발현됩니다.

    캐시파일 삭제하면  안뜨는 경우도 있습니다.

     

    슈퍼캐시 및 라이믹스 기본 캐시설정에 따라 재현됩니다.

    기본으로 설치한 라이믹스에서 슈퍼캐시 사용안함으로 설정하니 증상이 발현됩니다.

     

     

    완전히 제거하고 최신버전 라이믹스 내려받고 막 설치한 라이믹스 최신버전에서 해당 증상 발현됩니다.

     

     

  • profile profile

    엠바고를 해제하는 트리거 조건이 있을 텐데 캐시 조작 과정 등에서 문제가 있는 모양이네요.
    시간이 꽤 소요될 것 같은데 그때까지 괜찮으실지 모르겠습니다;;;

     

    덧. 목록에선 계속 노출 안 되는 거 맞죠?

  • profile profile
    넵 저는 전혀 문제 없습니다! ㅎㅎ

    우선은 즉시 공개 글만 올리는 방향으로 해야겠네요.

    이거 그리고 특정 캐시같은거 설정 다르게 되어서 잘 가려졌었던 사이트
    (새로고침해도 엠바고 내용이 안보여지는 사이트) 에서도

    막 모바일보기 눌렀다 PC보기 눌렀다 폰 설정에서 데스크탑 모드로 보기도 해보고 이래저래 새로고침 하고 하다보면 내용이 보여지기도 했었습니다. ㅠㅠ
  • profile profile

    기본 라이믹스 환경에서는 목록에서 안보여지고 있습니다.
    왜 그런지 모르겠지만 관리자 아이디로 로그인 해도 그러네요
    새로 깔기 전의 환경에서는 기본 게시판에선 리스트가 잘보여졌습니다만
    라이믹스를 완전 지우고 다시 깔았더니 목록에서도 안보여지네요.

    최신글 추출 이런거에선 로그인 유무에 따르지 않고 대기상태도 무조건 보여집니다.

     

    ++++ a

    게시물이 1개라도 있어야지 글작성자 및 관리자에게 [대기] 게시물이보여지네요.

  • profile profile

    드디어 버그 잡고ㅠㅠ 0.1.1로 버전업했습니다;;;
    내용 노출되는 문제 한번 확인해보세요~
    (참고 : 문서번호가 있는 예약글의 url 직접 접속시 여전히 문서 제목이랑 글쓴이가 노출될 텐데 이건 일반적인 비밀글 처리와 동일한 방식이에요)

     

    덧. 그리고 빈 게시판에 예약글 목록이 구현되지 않는 문제는 코어에서 해당 코드의 개선이 제공되면 자연히 해결될 것 같습니다.

     

    덧덧. 코어 2.1.10에 바로 코드 반영이 됐네요. 이제 빈 게시판에서도 예약 글 목록이 잘 얹혀서 나올 겁니다 ;)

  • profile profile
    감사합니다. 윤삼님!!
  • profile
    안녕하세요 윤삼님
    예약발행 일시가 사용자들에게 굳이 노출 될 필요가 없을 것 같은데 이건 스킨딴에서 그냥 IF 문으로 처리하는게 맞을까요?
  • profile profile
    네, 확장변수 값 출력을 모듈에서 직접 막는 것보다는 스킨에서 하는 게 나을 것 같습니다.
    그런데 발행대기 상태면 게시판 목록에 노출이 안 되지 않나요?
  • profile profile
    아 미래로 대기시간을 걸면 대기시간이되면 저 발행 대기가 지워지는군요

    저는 즉시 글쓰고 싶은게 있어서
    과거 날짜로 예약발행 일시를 지정하였거든요 그러니깐

    예약발행 일시 : 2023-09-07T00:01

    이런식으로 표시되어서요
  • profile profile
    다른 댓글 타래에서 언급하셨듯이 즉시 발행을 하려면 예약발행 일시를 입력하지 않으면 될 것 같습니다.
    https://xetown.com/download/1721679#comment_1784247
  • profile profile
    네네 테스트 해보니 그렇네요.
    자바 스크립트 같은걸로 과거 날짜는 입력 못하게 해둬야겠네요. ㅎㅎ
    그리고 미래 1년뒤는 입력못하게도 추가해주면 좋겠어요.
  • profile
    정말 윤삼님의 자료는 최고인것 같습니다. 이번 자료도 잘 사용하겠습니다!
  • profile
    좋은자료 정말 감사합니다!! 그런데 예약 발행 권한을 관리자만 가지게 할수도 있을까요??
  • profile profile
    확장변수로 '발행일시를 직접 입력'하는 방식이면 해당 확장변수를 관리자에게만 노출하는 것도 좋은 꼼수일 것 같습니다.
    그게 아니라 '무조건 발행 대기" 방식이라면 모듈을 수정해야 할 것 같은데 그러려면 제작 의뢰를 하시거나 기존의 유료 자료를 통해 알아보시면 좋을 것 같습니다.
  • profile profile
    확장변수를 관리자에게만 노출하는 방식으로 해야겠습니다. 조언 감사합니다!!
  • profile
    블로그질 할때 예약 발행 기능이 정말 편했는데....
    아주 유용한 기능 감사합니다.^^
  • profile
    윤삼님 자료 감사합니다.
    글쓰기 시 예약 발행 or 즉시 작성 선택하는 곳이 있으면 더 유용하게 작성이 가능할 것 같습니다!
  • profile profile
    정말 좋은 아이디어네요.
    근데 제가 요즘 통 시간이 없어서ㅠㅠㅠ
    누군가 포크해서 따로 만들어도 좋을 듯합니다 :)
  • profile profile
    댓글 감사합니다.
    요즘 윤삼님이 안보여서 무슨일이 있으신가 했더니 많이 바쁘셨군요.
    얼른 여유가 생겨서 복귀하셨으면 좋겠습니다! ㅎㅎ
  • profile profile

    요거는
    테스트 해보니 예약발행하기 확장변수에 아무것도 입력하지 않으면 즉시 글작성이 되네요
    예약발행하기 버튼을 클릭했을 때만 확장변수가 나오게 처리하면될것 같다는 생각이드네요.

     

    글쓰기 스킨단에서 처리 완료하였습니다 ㅎㅎ

  • profile profile
    네, 그렇게 맞춤형으로 스킨에서 응용하시면 좋을 것 같아요. 나중에 구경이라도 시켜주세요. 구경뽕 들어가면 힘이 나더라구요ㅋㅋ
  • profile profile
    쪽지로 보내드렸어요 ㅎㅎ
  • profile profile
    뽕이 차오릅니다아아~
    저는 관리자용으로 대강 만들기만 한 셈이었는데,
    톰캣님처럼 토글 방식으로 예약 커맨드를 처리하면 일반 유저들도 쉽게 접근할 수 있겠어요!
  • profile profile
    워낙 잘만들어주셔서 저는 숫가락만 얹었죠!
    지금은 게시판으로 IF 문으로 토글 메뉴가 나오게했는데 if 문을 prepub_datetime로 해두면 설정한 모든 게시판에서 쓸 수도 있겠네요.
  • profile profile
    ㅎㅎ 언젠가 꿀팁도 기대해보겠습니다!
  • profile
    항상 감사합니다.
    엠바고 상태인 글이 조회수가 올라가길래 보니
    스케치북 스킨 상태에서 본문내 이전글 다음글에 엠바고 상태에 글이
    노출이 되는게 아닌가 싶은데 다른분들은 어떤가요??
  • profile profile

    스케치북에서 문서 목록을 구할 때 문서 상태를 필터링하지 않아서 생기는 문제 같네요.
    _read.html 파일의 209행 쯤($args = new stdClass();의 다음 줄)에
    $args->statusList = array('PUBLIC', 'SECRET');
    라고 넣어보세요.

  • profile profile

    피드백 감사합니다.

    조치 후 정상적으로 적용됩니다.

    감사합니다.

  • ?

    확장변수 자동 생성도 버전 문제인지 모르겠으나 일단 남깁니다.

    사이트/mid 접속 후 -> 설정 - > 예약발행 설정시 확장변수 생성 O
    admin-> 게시판 - > 설정 - > 예약발행 설정시 확장변수 생성 X

     

    +파이어폭스에서 날짜 설정만 뜨고 시간 설정은 안나옵니다

  • ? profile
    피드백 감사합니다.
    시간 되는대로 확인해보도록 할게요!
  • ? profile
    확장변수 생성 문제는 다음 버전에 패치될 예정입니다.

    그리고 파폭은 버전이 어떻게 되시나요?
    확장변수의 datetime-local 형식은 93 이후로 되는 걸로 알고 했던 거거든요. https://caniuse.com/?search=datetime-local
  • profile ?

    1.jpg

     

    파이어폭스 버전 108.0.1 입니다.

    파이어폭스에서만 이렇게 노출됩니다.

     

    예약발행 목록에서 예약발행을 사용하는 게시판 선택시 예약발행과 무관한 게시판 전체 글 수와 네비게이션이 나타납니다.

  • ? profile
    저건 원래 그렇습니다. 시간 부분을 클릭해야 시간 선택 창이 나옵니다.
    게다가 AM/PM을 따로 선택해야 하는 불편이... ㅠㅠ

    모바일 브라우저들은 날짜/시간 UI를 그나마 깔끔하게 제공하는데,
    PC용 브라우저들은 도대체 무슨 생각으로 저렇게 해놓은 건지 모르겠어요.
    <input type="date">까지만 적당히 구현하고 그 후에는 그냥 포기한 느낌이예요.
  • profile ?
    전 시간 선택창은 안 나오네요.
    시간은 숫자 또는 방향키 누르니 입력 됩니다.

    파폭은 문제가 많네요 ㅋㅋ
  • ? profile
    아, 방향키였군요. ㅡ.ㅡ

    크롬도 난감한 건 마찬가지입니다. 기본적으로 날짜, 시간 모두 방향키만 먹히고
    오른쪽에 있는 달력 아이콘을 클릭해야 마우스로 선택할 수 있어요.
    그냥 단체로 직무유기하기로 한 듯...
  • profile ?
    파폭에서 달력 아이콘이 안 떠서 크롬에서 달력만 클릭해서 테스트했었는데
    진짜 크롬은 달력 클릭해야만 날짜 설정이 나오네요.

    두개가 합쳐져야 편하겠어요!
  • ? profile
    파이어크롬 가즈아~~~ ㅋㅋㅋ
  • ? profile
    파폭은 어쨌든 해결(?)된 것 같네요;;;
    예약발행 목록은 저녁 귀가 후에 확인해보도록 하겠습니다.
    피드백 감사드려요~
  • ? profile
    1. "예약발행 목록에서 예약발행을 사용하는 게시판 선택"이라면 1) ./index.php?module=admin&act=dispPrepubAdminList의 셀렉트 메뉴로 된 부분에서 게시판 선택을 의미하시는 건가요? 2) 아니면 해당 페이지의 각 목록에 함께 나오는 게시판 링크를 의미하시는 건가요?

    2. 마찬가지로 "예약발행과 무관한 게시판 전체 글 수"라면 1) ./index.php?module=admin&act=dispPrepubAdminList 상단 좌측에 있는 전체(n) 부분의 숫자를 의미하시는 걸까요? 2) 아니면 게시판 들어가서 스킨에 따라 목록 페이지에 나타내는 전체 글 수를 의미하시는 걸까요?

    3. "예약발행과 무관한 (...) 네비게이션"이라는 게 어떤 부분을 가리키시는지 전혀 모르겠습니다.
  • profile ?

    ./index.php?module=admin&act=dispPrepubAdminList

     

    1.jpg

     

    예약발행 글 4개가 있습니다.

    셀렉트바로 게시판 선택 시 아래와 같이 뜹니다.

     

     

    2.jpg

     

    전체(n) 부분에 4개가 아니라 해당 게시판의 전체 글 수를 불러 오며 아래에 내비게이션 바도 생깁니다.

  • ? profile
    어떤 상황인지 이제 알겠습니다.
    유머/이슈 게시판에 현재글이 145,973개가 있는 거겠죠?
    그리고 그에 따라 아래 부분에 페이지네이션 부분이 나오는 거겠구요.

    다만, 이 문제가 저한테는 재연이 되지 않습니다.
    어제 말씀하셨던 php 버전 문제는 아닐까 싶기도 한데요.
    에러로그나 디버그 패널 등등에 에러메시지가 나오지는 않던가요?
  • profile ?
    네 안 나오네요.
    php 버전 문제인가 봅니다. ^^;
  • ? profile
    에러메시지가 없다면 php 버전 문제는 아닐 것 같아요.
    실제 예약발행 글 목록에 영향을 주지 않고 페이지네이션이 어그러진 걸 보면, url 쿼리 중에 module_srl이 파라미터로 들어왔을 때 어딘가 다른 자료에서 $total_count를 덮어쓰는 것은 아닐지 의심되기도 합니다. 페이지네이션이 보통 이 $total_count를 통해 정의되거든요.
  • ?
    글 등록시 오류가 뜹니다.
    Error #0 "Call to undefined function array_key_first()" in modules/prepub/prepub.controller.php on line 460
    기능은 정상 작동합니다.

    발행일시 지정 방식, 무조건 발행대기 방식 둘다 같은 오류가 납니다.

    환경 라이믹스 2.0.24, php : 7.2.34, prepub.0.1.0
  • ? profile

    해당 함수가 php 7.3.0 이상에서 지원되는 것이어서 그런 것 같네요;;;

     

    덧. 

    해당 부분 $max_no_of_document_list = array_key_first($output->data); 을

    $max_no_of_document_list = array_keys($output->data)[0]; 으로 해보시죠.

  • profile ?
    php 버전 문제였군요.
    알려주신 코드 잘 됩니다. 고맙습니다!
  • profile

    저는 설치하고 DB테이블 생성하며 3번까지 세팅했지만요.
    이상하게 3번에서와 같이 [확장변수]란에는 아무 것도 생성되지 않았습니다.
    prepub.0.1.0 / 라이믹스 2.0.24 / 카페24 웹호스팅 / PHP 7.4.5p1 환경입니다.
    수동으로 확장변수 생성하면 되는지요?
    그렇다면 어떻게 생성하면 되는지요?

  • profile profile

    제가 제작했던 환경보다 php 상위버전에서 잘 되지 않는 문제가 있는가 봅니다.

    수동으로 생성하려면 다음과 같이 해보세요.

     

    - 확장 변수 ID : prepub_datetime
    - 입력항목 이름 : 예약발행 일시
    - 형식 : 한줄 입력칸(text)
    - 필수항목 : 아니오
    - 기본값 : 
    - 설명 : 예약발행 일시를 지정합니다.
    - 검색 : 아니오

     

    0.png

  • profile profile
    잘 됩니다.
    좋고 뛰어난 기능의 모듈과 스킨을 공개해 주셔서 고맙습니다. ^^
  • ?

    항상 윤삼님의 자료는 훌륭합니다. Good~~

     

    한가지 질문사항입니다.

    나만의 문제인 것 같아서 그런데...

    예약발행을 한 후 content위젯에서는 정상적으로 설정 기간이 되어야 출력이 됩니다.(정상)

    그런데 예전 위젯을 기반으로 만든 위젯에서는 설정 기간전에도 출력이 됩니다.(비정상)

    클릭해서 들어가 보면 내용은 비밀글로 보호는 됩니다.

     

    2022-11-24 091807.jpg

    위의 이미지에서 왼쪽은 구형 위젯이고, 오른쪽은 content위젯입니다.

    왼쪽에는 예약발행글이 보이고(비정상), 오른쪽에는 정상적으로 보이지 않습니다.

    왼쪽에는 지금이 11월 24일인데 11월 25일 예약발행글이 보입니다. (미래에서 온 글입니다👍)  

     

    제 생각에 구형 위젯에서 어떤 조치를 취해야 할 것 같은데 제 실력으로는 어렵네요.    
     

  • ? profile

    위젯에서 문서를 수집하는 과정 때문일 것으로 짐작됩니다.
    아래 링크에서 보듯 content 위젯에서는 공개 또는 비밀 문서만 수집하는데요.
    https://github.com/rhymix/rhymix/blob/90d3766e5c6125b263eccc1ecd25a8dea7e1039e/widgets/content/content.class.php#L263-L270
    예약글은 기본적으로 엠바고(EMBARGO) 상태이기 때문에 수집대상에서 제외되고 목록에서 노출이 안 되는 거죠.

    구형 위젯은 소스를 까봐야 알겠지만 문서상태(status) 식별을 하지 않고 있을 가능성이 있어보입니다.

     

    특히나 공지글만 가져온다거나 하는 경우는 더더욱 애로사항이 있는데요.

    코어의 공지사항 목록 쿼리 자체가 문서상태와 상관없이 공지사항 전부를 수집하는 것이어서, 이 쿼리를 재사용하거나 응용한 위젯이라면 엠바고가 걸린 문서도 자동 수집하게 될 겁니다.

     

    관건은 위젯 쪽에서 문서상태를 제한해줄 수 있느냐 하는 데 있을 것으로 보입니다.

  • ? profile
    그 이후로 위젯 출력 제어는 잘 되셨나요?
    소식이 궁금합니다~
  • profile ?
    Contact 위젯에서 이리 저리 코드를 가져와 붙여보아도 정상 작동을 하지 않아서 포기한 상태입니다. 님 번거롭게 할까봐 답글 달지 않았습니다.
  • ? profile

    해당 위젯에서 문서 목록을 가져오는 쿼리에 status 조건이 없는 거 아닌가요?

  • profile ?
    님이 남겨주신 참고에 따라 status 부분을 추가해도 비정상 작동을 하더군요.
    그 이상은 저의 실력으로 무리라...

    PHP 파일에 아래 코드 넣고, info.xml파일까지 수정해 보았습니다.
    if($args->show_secret == 'Y')
    {
    $obj->statusList = array('PUBLIC', 'SECRET');
    }
    else
    {
    $obj->statusList = array('PUBLIC');
    }
  • ? profile
    네, 이 부분은 괜찮은 것 같은데요.
    그런데 info.xml 파일은 위젯 설정 정보를 담는 것이니 문서 목록과는 무관할 것 같습니다.

    위젯의 class.php 파일에서 문서목록을 생성하는 함수나 DB쿼리는 어떻게 되나요?
    기존 document 모듈의 함수를 활용하는지, document 모듈의 db 쿼리를 사용하는지, 아니면 위젯 자체적으로 db 쿼리를 실행하는지요?

    해당 부분의 코드도 알려주시면 좋겠습니다.
    이 부분에 따라서, 삽입하신 $obj가 제대로 전달되는지, 그리고 쿼리 실행에 반영되는지 알 수 있을 것 같습니다.
  • profile ?

    사용중인 php파일 첨부합니다.

    Atachment
    첨부
  • ? profile
    150~168행이 조건에 따라 쿼리를 실행시켜주는 것 같은데요.
    이들 쿼리 xml 파일에서 $obj->statusList = array('PUBLIC', 'SECRET'); 또는 $obj->statusList = array('PUBLIC'); 를 받아주는 조건이 있나요?

    content 위젯 기준으로 보면
    https://github.com/rhymix/rhymix/blob/90d3766e5c6125b263eccc1ecd25a8dea7e1039e/widgets/content/queries/getNewestDocuments.xml#L11 같은 부분이요.
    이렇게 쿼리 xml 파일에서 statusList를 받아줘야 위젯의 class.php에서 새로 넣을 $obj->statusList = array('PUBLIC', 'SECRET'); 같은 코드가 반영될 텐데요.
  • profile ?
    xml파일에 해당 조건 넣어주니 잟 작동합니다.
    힘써 주셔서 감사합니다.
  • ? profile
    잘 된다니 다행입니다!!!
  • profile

    이 모듈 쓰시고 게시판에 전체공지로 체크한 글들이 사라지는 현상 있으신분
    모듈 지우면 다시 보이고요~

  • profile profile
    헉 얼른 롤백하세요. 빠른 시일 내에 확인해보고 업데이트하겠습니다ㅜ
  • profile profile
    그냥 공지 체크는 영향 없는데 전체(게시판) 공지 체크 있는 게시판에서 사라지네요
    PHP 7.4 라이믹스 2.0.23 버전
  • profile profile
    긴급 패치해서 0.0.3으로 올렸습니다. 확인 부탁드릴게요~
  • profile profile
    똑같이 사라지네요
  • profile profile

    전체공지면 다른 서드파티 자료를 통해 지정되는 것인가요?

     

    덧. 개인적으로는 (일반문서와 달리) 코어의 공지사항 목록 쿼리와 함수에 이슈가 있다고 보고 있는데요(이런 문제입니다). 그 때문에 이 모듈에서도 공지사항 쪽은 목록을 따로 만들어서 대체해주는 방법을 쓰고 있습니다. 그러다보니 목록에서 전체공지가 누락되는 것 같아요.

  • profile profile
    넵 서드파티 게시판 스킨에 있는 기능이라
    그냥 공지는 잘 되니깐 스킨 문제인 듯해요~
  • profile profile
    헛 서드파티 호환성까지 신경써주시다니
    매우 잘됩니당~
  • profile profile
    서드파티 문제라기보다는 코어의 전체공지 기능을 캐치하지 못한 제 쪽의 문제였어요;;;
    잘 된다니 다행입니다!
  • profile
    0.0.2 버전으로 업데이트했습니다.
    절찬리ㅋ 확인 부탁드려요~ @산소아빠 @adlib @현님 @라이믹스촙
  • profile
    산삼보다 좋다는 윤삼님 신작 모듈 추천하고 갑니다
  • ?

    배포해 주셔서 감사합니다.

    2.x 대 사이트에서 아주 잘 동작합니다.

    주력 사이트(몇가지모듈때문에)가 1.9.9.8에 PHP7.4에 머물러 있는데 업로드 후 관리자 화면으로 들어갈 때 아래 에러가 나옵니다.

    20221121_100738.png

    코드를 잘 몰라서 에러메시지만 캡쳐했습니다. 1.x대 지원 계획이 있으신 지 여쭈어보고 없으시면

    안정화 버전 올려주실 때 의뢰게시판 이용해서 사용하겠습니다. 좋은 모듈 만들어 주셔서 감사합니다.

     

  • ? profile
    제보 감사합니다!
    다만, 2.x 이하의 버전에서는 개발 환경 때문에 지원이 어려울 것 같습니다ㅜ

    현재는 아래 댓글에 나온 기능개선 요청(작성자 및 관리자가 게시판 목록에서 엠바고 문서를 열람, getDocumentList 및 getNoticeList를 통한 목록 조작 최소화)에 따라 작업 중인데요.
    해당 작업이 완료되고, 추가적인 버그 제보 및 기능개선 요청을 검토하면 안정화 버전도 곧 나올 것으로 기대됩니다.
  • profile ?
    예~ 감사합니다.
  • profile ?
    작업하신다고 바쁘신데 한가지만 여쭈어보고 싶습니다.
    제가 self:: 이렇게 되어있는 부분 몇 군데를 $this-> 이런식으로 수정해서 어떻게 관리자 화면까지는 진도가 나갔는데(이렇게 수정하는 것이 맞는 방법인지도 모르고 이해없이 그냥 막 해보고 있습니다. 이 모듈 작동 방식이 업무 개선에 참 좋은 구조로 되어 있어서 조금 더 도전해보려고 합니다 ㅎ )

    관리자 메인 페이지에서 설정완료화면이 안나와서 그런건지 게시판 추가설정을 들어가보니 예약발행 설정화면이 보이지가 않습니다.

    이게 1.9 버전에서 원래 게시판 추가설정 화면이 안되는 건지, 아니면 설정완료화면이 나오지 않아 그런 것인지 알수 있을까요? 조금만 더 해보고 잘 안되면 포기하고 의뢰해 보도록 하겠습니다. 스스로 한번 해결해 보고 싶어서요^^ 문과 출신이라서 그런지 코드 대부분이 외계어로 느껴집니다. -,-
  • ? profile
    2.0 이전이라 하더라도 하위호환되는 소스라면 추가설정에 설정폼이 나오는 게 맞습니다.
    과거의 $lang 변수 대신 라이믹스 내장함수인 lang으로 바꿔쓴 부분도 있고 그러네요;;;
  • profile ?
    혹시 제가 타운 의뢰게시판에 1.9x 대로 사용 가능한지 개발자분들께 의뢰해도 괜찮은지 궁금합니다.
    저작권 때문에 불가하면 다른 방법을 찾아야 해서요. 미리 여쭈어봅니다.
  • ? profile
    네, 충분히 가능하죠~
    부디 잘 작동되기를 바라겠습니다 :)
  • profile
    윤삼님 매번 좋은 자료 감사합니다.
  • profile profile

    적용해보시고 의견 있으시면 남겨주세요~

  • profile profile
    넵 알겠습니다. 감사합니다. 윤삼님~!!!
  • profile
    좋은 자료 감사합니다.
    여기는 일요일 아침이라 성당 다녀와서 …,
  • profile profile
    어떻게... 적용 좀 해보셨습니까? ㅎㅎ
  • profile

    getDocumentList, getNoticeList 트리거에서 목록을 대체하려고 하면 동일한 트리거를 사용하는 다른 모듈들과 충돌할 가능성이 있지요. 슈퍼캐시나 타임라인도 작동하지 않게 될 위험이 있고요.

    목록을 대체하려고 시도하지 말고 해당 문서의 예약 상태만 풀어주면 (상태값을 PUBLIC으로 바꿔주면) 이후 실행 과정에서 자연스럽게 목록에 포함될 테니, 충돌 가능성이 크게 줄어들 것 같습니다.

  • profile profile
    네, 조언해주신 방향으로 생각을 해봐야겠습니다.
    EMBARGO 문서만 리스트로 따로 불러와서 현재일시와 비교대조해서 문서상태를 바꿔주는 방식이면 되겠죠?
  • profile profile

    네, 엠바고 걸어놓았던 문서의 상태만 바꿔주면 될 것 같습니다.

    단, 아랫분이 요청하신 것처럼 글쓴이나 관리자에게는 엠바고 기간에도 다 보여야 한다!! 라고 하시면 그건 좀 애매하겠네요. after 트리거 시점에서 작성시간 상관없이 맨 위에 무조건 추가해 준다면 몰라도... (실제 발행시간은 미래가 될 테니까 맨 위에 나오는 것이 정상이라고 우겨보세요! ㅋㅋㅋ)

  • profile profile
    좋은 방식인 것 같습니다ㅎㅎㅎ
    어차피 특별한 목록이니까, order_type에 상관없이 맨 위에 올리는 게 낫겠어요 😀
  • profile
    와... 감사합니다. 바로 적용해봐야겠네요~ 덕분에 즐거운 일요일밤이네요~
  • profile profile
    실제 테스트까지 해보지는 않았는데 확장변수 다중검색 애드온 등과 높은 확률로 충돌 가능성이 있어요.
    적용하실 때 감안해주세요~
  • profile profile

    적용해보았습니다. 예정시간에 잘 발행되고, 입력하지 않으면 즉시 작성되네요~
    헌데 작성글이 작성자에게도 보이지 않아, 예약 후 글을 수정하려고 하면, 회원 메뉴에서 작성글에서 확인해야 하네요~

    발행 전까지 작성자 또는 관리자에게 리스트에 (예약글)이라고 표기되어 볼 수 있게 표기되면 더 좋을 것 같습니다~^^

  • profile profile
    아 맞다. 회원 작성글 보기에서 볼 수 있게 했는데 그걸 소개글에서 뻬먹었네요ㅎㅎ

    예약글 표기는... 로그인 정보에 따라 리스트를 따로 생성을 해야 하고 표기 방식도 짜봐야 해서 연구를 좀 해야겠네요ㅎㅎ
  • profile profile
    스킨 단에서 예약일시를 판단하는 구문을 넣어 수정할 수 있도록 하면 될 것같습니다~ 좋은 모듈 정말 감사합니다^^
  • profile profile

    화면 캡처 2022-12-03 023630.png

     

    본문 아래 회원 작성글 보기에서 대기글들이 초과해서 뜨는 경우도 있네요 (본인, 관리자)

  • profile profile

    member 모듈 스킨에서 자체적으로 출력해주는 건가요?

    보통의 경우라면 목록의 list_count가 5일 리는 없을 텐데요.

    혹시 위젯에서 구현된 목록일까요? 암튼 해당 부분 소스 코드를 봐야 할 것 같습니다.