Webコンテンツは、ドキュメントライブラリにすべてのファイルを表示します
質問
Webコンテンツディスプレイを使用して、ドキュメントライブラリの特定のフォルダーにすべてのファイルを表示しようとしています。
フォルダーの選択をカスタマイズし続けたいと思います。
ドキュメントライブラリの特定のフィールドにはないフォルダーを指すテンプレートに動的要素が存在するかどうかを知っていますか?
不可能な場合、誰かがそれを行う別の方法を知っていますか?
前もって感謝します
サブリナ
解決
「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を入力します。この記事を表示する「Webコンテンツディスプレイ」ポートレットを追加します。
アップデート:
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))
または、開始/終了/ソートの変更。
他のヒント
ドキュメントライブラリディスプレイポートレットを使用してこれを実現できます。
所属していません StackOverflow