Skip to main content

Posts

Disabling and Enabling Minfying of JS and CSS resources in Liferay

   Disabling minification of JS and CSS The minifiation and comibing all the JS and CSS resources is done at two levels or at two places. 1. First are the JS and CSS files which you have included in the portlet JSPs i.e by header portlet css or header portlet js flies or the script tags which you have included in the JSP files 2. Second JS and CSS files are the ones which Liferay uses like, jquery, lodash, alloy ui and all these resources also gets minfied and bundled into one JS or CSS file and loaded in a single HTTP call. Now there are two scenarios one is if you want to debug the Javascript code you have included in the Portlet View JSP, and the other one is when you load a page and you wan to see all the individual JS and CSS files getting loaded instead of a single mindifed bundle. Disabling minification of JS and CSS in portlet view JSPs When you include any JS files or CSS files inside the portlet jsps, by default they get minified when the JSP is rende...
Recent posts

Liferay UploadRequest getFiles does not create temp files which has size lessthan ~ 1.5 KB or ~ 1 KB

Hello, If you are using the UploadRequest.getFileNames(“testFiles”) and if you upload file size less than around 1.5 KB Liferay is not creating the temp files and the we can not use those files for saving it in the document library. So the solution would be using the below code. InputStream[] streams = uploadReq.getFilesAsStream(“testFiles”); for(InputStream is : streams){                 File file = FileUtil. createTempFile (inputStream); }

Adding custom Eh Cache entry and changing default time out in Liferay

Hello, By default all the cache objects specified in the liferay-multi-vm-clustered.xml or in the liferay-single-vm.xml are set to default idle time out for 600 seconds (5 mins). Which means if a key in the cahe is not accessed for 5 minutes will be removed from the cache.  If you want to extends the time out or want to add your your own cache you can follow the below steps. I am doing it for the liferay-multi-vm-clustered.xml 1.      Goto liferay-portal-6.2-ee-sp10\tomcat-7.0.42\webapps\ROOT\WEB-INF\classes 2.      Inside the classes create a folder, i have created a folder with the name ehcache. 3.      Now copy liferay-multi-vm-clustered.xml file from the portal source. If you don't have the poral source code available with you, you can download it from here.  https://github.com/agmip/liferay-portal-impl/blob/master/src/ehcache/liferay-multi-vm-clustered.xml 4.    ...

Dynamic Query with PortletClassLoader using PortletBeanLocatorUtil

Hello, Recently I faced some issue with dynamic query. Even though my service layer and Portlet are in the same war  I got class not found exception for the model class. Liferay could not able to load Model class while using the dynamic query So I used the Portlet Class loader like below.                Then my issue got resolved.

Checking in Liferay permissions for a User in JSON WS or in a normal Java Class

Hello, In this post we will see how to check if a user has a specific permission assigned to him. If you want to do it in a JSP you can use the below code. In JSP permissionChecker,layout and portletroot id objects are implicitly available. boolean showOwnerType = PortletPermissionUtil.contains(permissionChecker, layout, portletDisplay.getRootPortletId(), “your permission name”); Suppose if you want to do it in a class which does not have these implicit objects or it does not have access to HttpServletRequest or PortletRequest then you can use the below code. PermissionChecker permissionChecker =PermissionThreadLocal. getPermissionChecker (); boolean status = PortletPermissionUtil. contains ( permissionChecker , “your portlet root id”, “your permission” ); You can find the portlet root id from Liferay page. Goto the page where the portlet resides and click on Settings icon- > Look and Feel -> and goto Advanced Styling tab. There you can see the p...

Sending List and Map values to Liferay JSON WebService

If you want to pass a list object or map object to a Liferay JSON WebService use the below code Sending a List of String and getting it in the ServiceLayer: Use the below code in the ServiceImpl public List getList(List list ){        System. out .println( "list: " + list );        return list ; }        From browser use the link like below to send the list object http://localhost:8080/api/jsonws/MyPortlet.myview/get-list/list /["Liferay","WebSphere","SAP"] And you  can see the output like below Sending a Map of String,String object and getting it in the ServiceLayer: Use the below code in the ServiceImpl public Map getMap(Map map ){        System. out .println( map .size());        Set keySet = map .keySet();        Iterator itrtr = k...