liferay的本地化及优化

来源:互联网 发布:大转盘抽奖源码 编辑:程序博客网 时间:2024/05/13 08:59
本人研究了liferay4.3和5.0,发现它存在着不少问题,而且许多东西比较顽固,以下是我的一些解决方案,请大家分享:
1.解决ldap同步时数据没有插入数据库。
修改portal-impl.jar中portal-impl.jar/com/liferay/portal/security/ldap、PortalLDAPUtil.class
-------------------------------------
把enu.hasMore()改为enu.hasMoreElements()方法。
把enu.next()改为enu.nextElement();
这是由于hasMore方法已经失效无法找到下一结点。
2.解决徽标问题。
portal-impl.jar/com/liferay/portal/dependencies中图片company_logo.png换为需要的。
一般情况下,你也可通过修改社区的徽标来定义不同社区,以上方法是修改默认的徽标。
3。如何让所有人都有“我的社区”。
将人员加入到角色power user中。
4、控制台中文乱码。
这没有问题,如果不是乱码可能会引起编码格式的错误,只是由于liferay本身的对中文的支持。
5.改变company_name,这个名字就是浏览使上面的title,通过更改模板来定义名称。
liferay-portal-tomcat-5.5-5.0.1/webapps/ROOT/html/themes/classic/templates/init_custom.vm
添加

#if ($layout)
#set ($group = $layout.getGroup())
#set ($organizationCommunity = $group.isOrganization())
#set ($regularCommunity = $group.isCommunity())
#set ($userCommunity = $group.isUser())
#if ($organizationCommunity)
#set($organizationLocalService =$serviceLocator.findService("com.liferay.portal.service.OrganizationLocalService"))
#set ($organization =$organizationLocalService.getOrganization($group.getClassPK()))
#set ($company_name = $organization.getName())
#elseif($regularCommunity)
#set ($company_name = $group.getName())
#elseif($userCommunity)
#set ($company_name = $languageUtil.get($company_id, $locale,"my-community"))
#end
#end

直接定义

#if ($layout)
#set ($company_name ="test.cn")//此处为所要
#end
但是这种方法需要修改所有模板,因此不可取,最好在liferay初始化时设定。具体在system-ext.properties设定company.default.web.id=test.com。

6.显示名称问题,只是由于liferay是按照外国人的名字规则,如果采用AD同步用户时名称显示就会有问题(liferay5.0)。
ContactImpl
public static String getFullName(
        String firstName, String middleName, String lastName) {

        StringMaker sm = new StringMaker();

        if (Validator.isNull(middleName)) {
            sm.append(firstName);
            //sm.append(StringPool.SPACE);
            sm.append(lastName);
        }
        else {
            sm.append(firstName);
            //sm.append(StringPool.SPACE);
            sm.append(middleName);
            //sm.append(StringPool.SPACE);
            sm.append(lastName);
        }

        return sm.toString();
    }
7.在liferay中一个新用户登录后会进入到选择“同意”“不同意”的页面,这个可以去掉.

在portal.properties中将

terms.of.use.required=true

设置为

terms.of.use.required=false

8.在企业管理中要规范姓名(liferay5.0)。
主要考虑liferay-portal-tomcat-5.5-5.0.1/webapps/ROOT/html/portlet/enterprise_admin/view-users.jsp
其中    //row.addText(user2.getLastName(), rowURL);为结果集的规范。
List headerNames = searchContainer.getHeaderNames();为标题的规范,headerNames为简单数组。

以上内容还不完善,如果大家有问题或不同意见都提出来,共同研究。