Liferay启动后,控制台有如下的报错:
org.apache.http.conn.ConnectTimeoutException: Connect to www.google.com/216.58.221.100:80 timed out
之所以出现这个错误是因为Liferay有一个插件去下载了google服务器的一个JS库。我们在后台将这个插件删除即可。
第一种方法:
在第一次启动Liferay之前,进入Portal目录/tomcat/webapps,将下面的opensocial-portlet这个目录直接删除即可,在启动Liferay之后就...
基于hook让liferay支持用户ID屏幕名称地址登录
我们知道在Liferay中可以使用用户ID、屏幕名称、邮件地址等三种模式中的一种进行登录。进行选择可以控制面板-->Portal设置-->认证处进行修改,如下图:
但是在某些情况下我们可能有特殊需求,希望用户输入userId、邮件地址、屏幕名称任意的一种都可以实现登录,这个时候我们只需要写一个简单的hook就可以实现此功能。
第一步:新建一个Hook工程。
第二步:新建一个Liferay的Hook配置,在里面选择se...
Liferay弹出层如何将弹出页面的值返回
在前面写过两篇关于如何在Liferay中进行弹出层的文章:
《Liferay 6.1开发学习(十三):弹出层/弹出对话框的使用》
《Liferay 6.2弹出层》
弹出之后,有时候我们有需求需要将当前弹出层的内容,写到父页面上,然后并关闭当前的弹出层。
首页弹出层的写法
如果要写一个返回值,并执行关闭的弹出层,这个的写法也有区别:
Liferay.provide(
window,
'<portlet:namespace />editAnswer',
...
如何在网页内容模板中获取标题、版本、作者等信息
在Liferay的网页内容模板中,我们可以方便的获取自定义的结构的字段的内容,但是有时候我们想要获取作者、标题、发布日期、版本、缩略图等信息时,却感觉找不到信息,Liferay有内置的提供,只不过很少有文档说明。
在Velocity模板中
$reserved-article-id.data
$reserved-article-version.data
$reserved-article-title.data
$reserved-article-create-date.data
$reserved-article-modified-date.data...
Liferay7.0的变化
Liferay7.0目前还没有正式发布,已经发布到了7.0 RC1版本,基本要更新的功能已经差不多了,后续的还将有几个RC版,具体什么时候正式发布目前还难以确定。
重大变化
这里写的重大变化,是我个人感觉算是重大变化的哈,没有啥官方依据:
1、系统架构转向OSGI:全面的OSGI化,Liferay Portal本身也罢,以后开发的Portlet也罢,都将采用OSGI的组织,采用的是Apache Felix的实现http://felix.apache.org/
2、社...
Liferay 6.2弹出层/弹出框的实现
曾经写过一个6.1的弹出层的博客:《Liferay 6.1开发学习(十三):弹出层/弹出对话框的使用》。Liferay更新到6.2之后,在UI层采用了Bootstrap,所以很多写法有变化,弹出层的写法也是一样的。之前那篇博客里面的除了最后一个外,其他的都不能再使用。
在6.2里面如果要使用弹出层,需要使用如下的代码:
AUI().use('aui-modal',function(A) {
var modal = new A.Modal(
{
//bodyContent: ...
Liferay中CSS冲突的一般处理方法
经常碰到有人问在Liferay中的CSS冲突了,引入的第三方插件或者库样式不对,样式被liferay覆盖了等等问题,归结起来主要有两种情况:
第三库的样式被liferay中的样式给覆盖了;
第三库中某些地方不需要样式的被liferay添加了新的样式。
CSS的样式问题,相对是比较容易解决的问题,需要了解的是CSS的样式继承与优先级的基础知识。
CSS的样式优先级
首先来看一下典型的DOM结构图
我们写CSS样式的时候,一...
Liferay 6开发学习(三十一):定制用户的私有页与公有页
在Liferay中,默认情况下会为每一个用户添加一个公有站点和私有站点,也就右上角的我的个人资料(也就是用户的公有站点)和我的Dashbord(也就是用户的私有站点),这两个部分组成的是用户的个人站点,用户在个人站点里面拥有管理员权限,比如页面的创建、portlet增、删等。
我的个人资料:是用户对外展示的内容,其他用户或不登录用户都可以看到,为当前用户对其他人可见的活动内容,一般放置一些可以公开...
Liferay 6开发学习(三十):跨页面Portlet之间的调用与数据传递
Portlet之间的通信方法有多种,比如PortletSession,Public Render Parameter,Portlet event等。但是这些方法使用起来都很复杂,像Public Render Parameter和event等,在跨页上就力所不及。
在很多时候我们要想实现Portlet之间的参数传递和数据共享,我最常用的方法有两个:
1、通过URL传参:方法,见之前的博客《Liferay中通过URL传参数》
2、使用Portlet URL调用方法,见下文。
主要应用场景
Portlet UR...
服务器日志中出现大量异常:file:/wap/portal/status.jsp not found
Liferay版本:6.1.1
今天发现服务器portal/logs目录下面的日志中出现了大量的下面的的异常。分析解决思路如下:
1、正常的访问没有任何异常;
2、根据异常的堆栈信息可以看到里面有wap的字样,怀疑是移动设备访问时出现的,使用手机访问(Android设备),用手机版chrome、UC、QQ浏览器访问。之所以用这么多浏览器,是因为基于之前对Liferay的了解,liferay识别是否是移动设备,主要是根据头信息里面的accept...