2012-02-17 4 views
4

웹 콘텐츠 디스플레이를 사용하여 문서 라이브러리의 특정 폴더에있는 모든 파일을 표시하려고합니다.웹 콘텐츠가 문서 라이브러리의 모든 파일을 표시합니다.

폴더의 선택을 사용자 정의하고 싶습니다.

문서 라이브러리의 특정 필드가 아닌 폴더를 가리키는 템플릿의 동적 요소가 있는지 알고 있습니까?

누군가 다른 방법을 알고 계실 수 있습니다. 사전

사브리나

답변

1

"folderId"라는 folderId의 텍스트 필드를 보유하는 구조를 만들 수 있습니다.

템플릿을 생성보다

#set($service = $serviceLocator.findService("com.liferay.portlet.documentlibrary.service.DLFileEntryLocalService")) 
#set($gid = $getterUtil.getLong($request.get("theme-display").get("scope-group-id"))) 
#set($fid = $getterUtil.getLong($folderId.getData())) 

#set($files = $service.getFileEntries($gid, $fid)) 

#foreach($doc in $files) 
    #set($uet = $httpUtil.encodeURL($htmlUtil.unescape($doc.getTitle()))) 
    <a href="/documents/$gid/$fid/$uet">$doc.getTitle()</a><br /> 
#end 

해당 템플릿/구조에 의해 기사를 작성하고 표시 할 폴더 ID를 입력합니다. 이 기사를 표시하는 "웹 컨텐츠 표시"포틀렛을 추가하십시오.

UPDATE :

은을 Liferay 6.1 메소드 서명에 대한

변경 및

List<DLFileEntry> getFileEntries(long groupId, long folderId, int start, int end, OrderByComparator obc) 

그래서하는 Liferay 6.1 당신이 전화가 적어도

#set($files = $service.getFileEntries($gid, $fid, -1, -1, null)) 

수 또는 시작을 변경하는 변경해야합니다입니다했다/끝/정렬.

+0

안녕하세요 @Martin, 답변에 대한 감사합니다, 그것은 내가 필요하지만 난 여전히 문제가 정확히 무엇을 ... 내가 portal-ext.properties에서 "serviceLocator"를 활성화 : 는 journal.template.velocity.restricted. variables = 그래서 서비스가 "$ service.getBeanIdentifier()" 을 사용하여로드되었지만 $ files = $ service.getFileEntries ($ gid, $ fid) 변수는 항상 null 인 것으로 확인되었습니다. "/ documents/gid/fid/name"이라고 나와있는 경로가있는 파일을 호출하려고했는데 그 파일이 존재합니다. 아이디어가 있으십니까? 고마워요. Sabrina – Sabrina

+0

서비스 요청 후 템플릿에 folowing을 입력하십시오. "service = $ service
gid = $ gid
fid = $ fid
"따옴표없이. 나 지금 –

+0

서비스 = com.liferay.p[email protected]400ac3 GID = 19 FID = 13637 – Sabrina

-1

당신은이 작업을 수행하기 위해 문서 라이브러리 디스플레이 포틀릿을 사용할 수있는

감사합니다.

관련 문제