Skip to content

Instantly share code, notes, and snippets.

@evaldeslacasa
Last active June 3, 2021 13:27
Show Gist options
  • Save evaldeslacasa/6ce2fd442e50d82918d7 to your computer and use it in GitHub Desktop.
Save evaldeslacasa/6ce2fd442e50d82918d7 to your computer and use it in GitHub Desktop.
ADT to display Document Library files' links in Asset Publisher - Liferay 6.2
#set($dlFileEntryService = $serviceLocator.findService("com.liferay.portlet.documentlibrary.service.DLFileEntryLocalService"))
#if (!$entries.isEmpty())
<div id="$portletInstance" class="documents-links">
#foreach ($entry in $entries)
#set($renderer = $entry.getAssetRenderer() )
#set($className = $renderer.getClassName() )
#if( $className == "com.liferay.portlet.documentlibrary.model.DLFileEntry" )
#set($classPk = $entry.getClassPK())
#set($fileEntry = $dlFileEntryService.getDLFileEntry($classPk))
#set($folderId = $fileEntry.getFolderId())
#set($fileNameUrl = $entry.getTitle().replaceAll(" ","+"))
#set($url = $themeDisplay.getPortalURL() + $themeDisplay.getPathContext() + "/documents/" +
$themeDisplay.getScopeGroupId() + "/" + $folderId + "/" + $fileNameUrl)
<p class="links"><a href=$url target="_blank"> $entry.getTitle()</a><br>
#*
##These lines would allow us to view files via a document library cool view:
#set($viewURL = $assetPublisherHelper.getAssetViewURL($renderRequest, $renderResponse, $entry))
#set($viewAsset = $renderer.getURLViewInContext($renderRequest, $renderResponse, $viewURL))
<a href=$viewAsset> View file</a>
*#
</p>
#end
#end
</div>
#end
@mramdhani
Copy link

how to get document size and document uploaded date?

@gsincick
Copy link

gsincick commented Aug 6, 2018

Thanks for posting this! I cannot understand why this isn't the default behavior out of the box, but I'm glad the work around is simple.
I've updated this adt for use with Liferay 7 below:

#set($dlFileEntryService = $serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService"))

#if (!$entries.isEmpty())
  <div id="$portletInstance" class="documents-links">
    #foreach ($entry in $entries)
    
      #set($renderer = $entry.getAssetRenderer() )
      #set($className = $renderer.getClassName() )

      #if( $className == "com.liferay.document.library.kernel.model.DLFileEntry" )
        #set($classPk = $entry.getClassPK())
        #set($fileEntry = $dlFileEntryService.getDLFileEntry($classPk))
        #set($folderId = $fileEntry.getFolderId())
        #set($fileNameUrl = $entry.getTitle().replaceAll(" ","+"))
        #set($url = $themeDisplay.getPortalURL() + $themeDisplay.getPathContext() + "/documents/" + 
        $themeDisplay.getScopeGroupId() + "/" + $folderId + "/" + $fileNameUrl)
        
        <p class="links"><a href=$url target="_blank"> $entry.getTitle()</a><br>
        
        #*
        ##These lines would allow us to view files via a document library cool view:
        #set($viewURL = $assetPublisherHelper.getAssetViewURL($renderRequest, $renderResponse, $entry))
        #set($viewAsset = $renderer.getURLViewInContext($renderRequest, $renderResponse, $viewURL))
        <a href=$viewAsset> View file</a>
        *#
        </p>
      #end
    #end
  </div>     
#end

@Manish0586
Copy link

How Get Folder From Documents and Media In Liferay Through Application Display Template In FreeMarker Language.I Have Attached A Pic Which Format I Get The Folders And Inside Data Also.
image
The Hierarchy of Folder In DMS Like
1.Our Fact File->1.Annual Reports->2019->data inside this folder
->2020->data inside this folder
2.Public Dislosure>2019->data inside this folder
->2020->data inside this folder

Plz Help If Anyone Know This Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment