Pregunta

Estoy tratando de usar una pantalla de contenido web para mostrar todos los archivos en una carpeta particular de la biblioteca de documentos.

Me gustaría mantener personalizar la elección de la carpeta.

¿Sabes si existe un elemento dinámico en la plantilla que apunta a una carpeta no a un campo específico en la biblioteca de documentos?

¿Si no es posible, alguien sabe una forma diferente de hacerlo?

gracias de antemano

Sabrina

¿Fue útil?

Solución

Puede crear una estructura que contiene el campo de texto para la carpeta llamada "carpeta".

Que crear plantilla

#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

Cree un artículo por esa plantilla/estructura e ingrese la ID de carpeta que desea mostrar. Agregue el portlet de "Pantalla de contenido web" que muestra este artículo.

ACTUALIZAR:

Para el método de Liferay 6.1 se cambió la firma y es

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

Entonces, para Liferay 6.1 debe cambiar la llamada para ser al menos

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

o cambiar para inicio/finalización/sort.

Otros consejos

Puede usar el portlet de la biblioteca de documentos para lograr esto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top