Liferay의 게시판에있는 메시지에 만료일을 추가하는 것이 합리적이고 중간에 가능한 방법이 있습니까?Liferay : 메시지 (게시판)의 만료일
첫 번째 문제는 메시지 편집기에 만료일을 입력하는 방법입니다. 가장 확실한 해결책은 아마도 expando 속성이지만 날짜에 대한 expando 데이터 유형이없는 것 같습니다 (날짜는 & 시간 임) expando 속성에 계산 된 기본값을 설정할 방법이 없습니다 (예 : 오늘 + 6 개월). 기본값이 없어도 date + time 속성의 기본값은 Jan 1 1970, 0 : 00GMT이며 날짜 선택 도구를 사용하여 실제 유효 기한을 입력하면 다소 지루합니다. 만료일을 입력 한 후에는 유효성을 검사 할 수있는 확실한 방법이 없습니다 (예 : 오늘과 오늘 + 6 개월 사이의 날짜로 제한). 메시지보기에 날짜가 표시되면 현재 로캘은 날짜를 형식화하는 데 사용되지 않으며 시각.
만료일을 expando 속성으로 집어 넣을지라도 만료 날짜를 평가할 명확한 방법은 없습니다.
메시지는 계속 유지되지만 계산되지 않고 MB 포틀릿에 표시 될 수도 있습니다. 그러나 메시지에 액세스하는 MBThreadServiceUtil의 메소드는 추가 필터링 기준을 제공하지 않으므로 모든 메시지를로드하고 Java 코드에서 카운트/필터 연산을 수행해야합니다 (거의 영리한 솔루션이 아닙니다). 그렇지 않으면 전체를 다시 작성해야합니다. 서비스 스택을 "상향식 (bottom-up)"으로 설정하고 필터링을 데이터베이스로 전달할 수있는 get 또는 검색 메소드를 추가하십시오.
권장되는 솔루션은 정기적으로 만료 된 메시지를 완전히 삭제하는 예약 된 작업을 갖는 것입니다. MB 포틀릿은 범위를 지원하고 (메시지는 포틀릿의 범위와 관련되어 있음) 포틀릿 컨텍스트 내에서 예약 된 작업이 실행되지 않으므로 범위 ID에 어떻게 든 액세스해야합니다. 이 항목에 대한 설명서 및 사용 가능한 토론을 이해하는 경우 기본 범위는 페이지가 속한 커뮤니티 여야합니다. 반면에 우리의 "게시판 페이지"는 조직 수준에서 추가되었으며 메시지의 범위 ID는 조직 ID 또는 조직의 커뮤니티 ID와 일치하지 않습니다. 이 경우 범위 ID를 결정하는 방법에 대한 아이디어가있는 사람은 누구입니까?
6.0 또는 6.1을 사용하는 Liferay의 버전? 또한 구성 팝업 -> 범위 -> 선택 페이지 드롭 다운을 현재 페이지로 변경하여이 페이지의 포틀릿 범위를 지정했을 것입니다. –
우리는 6.0.5 CE를 사용하고 있습니다. 포틀릿의 범위는 페이지가 아닌 "기본 범위"입니다. – jarnbjo