Malheureusement, ces informations ne sont pas directement accessibles depuis la variable $f
qui a été injectée dans votre modèle par Liferay. Pour Liferay 6.1, le $f.data
contient l'URL du document sous la forme suivante:
/documents/[group-id]/[folder-id]/[file-name]
Heureusement, nous pouvons pirater notre chemin à travers cela et mettre la main sur le fichier réel en utilisant l'API de service, qui est accessible dans Modèles de vélocité grâce au $serviceLocator
. Pour cette variable soit disponible, vous devez l'activer dans portal-ext.properties
en configurant la propriété suivante:
#
# Input a comma delimited list of variables which are restricted from the
# context in Velocity based Journal templates.
#
journal.template.velocity.restricted.variables=
Une fois que nous avons ce permis, nous pouvons appeler le service droit de récupérer un objet FileEntry
sur la base des parties du document URL Et puis nous avons la taille aussi:
#set($url = $f.data)
#set($parts = $stringUtil.split($url, "/"))
#set($group_id = $getterUtil.getLong($parts.get(2)))
#set($folder_id = $getterUtil.getLong($parts.get(3)))
#set($doc_name = $parts.get(4))
#set($docService = $serviceLocator.findService("com.liferay.portlet.documentlibrary.service.DLAppLocalService"))
#set($fileEntry = $docService.getFileEntry($group_id, $folder_id, $doc_name))
The file size is: $fileEntry.size