2012-02-17 6 views
4

Webコンテンツディスプレイを使用して、ドキュメントライブラリの特定のフォルダ内のすべてのファイルを表示しようとしています。Webコンテンツドキュメントライブラリ内のすべてのファイルを表示

フォルダのカスタマイズをカスタマイズしておきたいと思います。

ドキュメントライブラリ内の特定のフィールドではないフォルダを指すテンプレート内の動的要素が存在するかどうかは分かりますか?

誰かがそれを行うための別の方法を知ることができない場合には?

おかげで事前に

サブリナ

答えて

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を入力してくださいを作成するよりも

。この記事を表示する「Webコンテンツ表示」ポートレットを追加します。

UPDATE:Liferayの6.1メソッドのシグネチャの場合

が変更されたので、Liferayの6.1のためにあなたが/開始のための少なくとも

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

または変更する呼び出す

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

を変更する必要がありますされます終了/並べ替え。

+0

こんにちは@Martin、あなたの答えのための ありがとうございます、それは私が必要とする正確に何ですが、私はまだ問題を抱えている... 私はportal-ext.propertiesで「のServiceLocatorを」有効: はjournal.template.velocity.restricted。変数= だから、サービスが "$ service.getBeanIdentifier()" を使ってロードされていることを確認しましたが、$ files = $ service.getFileEntries($ gid、$ fid)変数は常にnullです。 "/ documents/gid/fid/name"と書かれたパスを使ってファイルを呼び出そうとしました。 アイデア ありがとうございます。 Sabrina – Sabrina

+0

サービスコール後にテンプレートに入力してください: "service = $ service
gid = $ gid
fid = $ fid
"引用符なし。 はそれだけで、あなたのフォルダが別のグループに存在するか、あるいないことをできるように、私は今、[OK]を –

+0

サービス= com.liferay.p[email protected]400ac3 GID = 19 FID = 13637 – Sabrina

-1

あなたはこれを実現するために、ドキュメントライブラリの表示ポートレットを使用することができます。

関連する問題