session.js文件(OOB)覆盖Liferay 7.

时间:2017-04-21 05:47:38

标签: java liferay liferay-6 liferay-aui liferay-7

我正在努力将我的项目从liferay 6x迁移到7x生命周期。任务是覆盖OOB(开箱即用)文件session.js并自定义会话警告/错误消息。我已经覆盖了Language_en.properties,用于错误/警告的文本​​自定义工作正常。但无法覆盖会话。用于定制的js文件.conssion.js文件的github位置是 liferay-portal / modules / apps / foundation / frontend -js / frontend-js-web / src / main / resources / META-INF / resources / liferay /session.js 即可。我们知道在Lifeary 7中不推荐使用钩子功能,也尝试使用jsp override但是没有成功。请帮我解决如何在liferay 7平台中覆盖session.js文件的步骤。

谢谢&提前欣赏。

1 个答案:

答案 0 :(得分:2)

有点晚了,但我刚刚解决了这个问题。

您需要做的就是使用bnd.bnd描述符,config.js配置文件和您自己的session-custom.js创建JAR模块

对于Maven,我有这个项目结构:

module-name
    |- src.main.resources.META-INF.resources.js
    |      |- config.js
    |      |- session-custom.js
    |- bnd.bnd
    |- pom.xml

bnd.bnd

Liferay-JS-Config: /META-INF/resources/js/config.js
Web-ContextPath: /session-custom

config.js

;(function() {
    console.log('Loading custom AUI modules configuration');

    var base = MODULE_PATH + '/js/';

    AUI().applyConfig(
        {
            groups: {
                mymodulesoverride: {
                    base: base,
                    combine: Liferay.AUI.getCombine(),
                    filter: Liferay.AUI.getFilterConfig(),
                    modules: {
                        'liferay-session-customized': {
                            path: 'session-custom.js',
                            condition: {
                                name: 'liferay-session-customized',
                                trigger: 'liferay-session',
                                when: 'instead'
                            },
                            requires: [
                                'aui-io-request',
                                'aui-timer',
                                'cookie',
                                'liferay-notification'
                            ]
                        }
                    },
                    root: base
                }
            }
        }
    );
})();

的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd"
>

    <!-- ... -->

    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>biz.aQute.bnd</groupId>
            <artifactId>biz.aQute.bndlib</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.5</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

有用的链接:

Overriding AUI module

CONFIGURING MODULES FOR LIFERAY PORTAL’S LOADERS