Liferay DXPのデフォルトのYUIおよびAUIモジュールのオーバーライド

Liferay DXPには、いくつかのデフォルトのYUI/AUIモジュールが含まれています。場合によって、これらのモジュールのスクリプトによって提供される機能をオーバーライドする必要があります。これを行うには、次の3つを含むカスタムAUIモジュールを作成する必要があります。

  • 変更内容を含む元のモジュールのJavaScriptファイルのコピー
  • 変更されたJavaScriptファイルのパスとオーバーライドするモジュールを指定するconfig.jsファイル
  • OSGiコンテナにオリジナルをオーバーライドするように指示するbnd.bndファイル

次の手順を実行します。

  1. OSGiモジュールを作成して、元のモジュールをオーバーライドします。たとえば、session-js-override-webという名前のモジュールを作成して、Liferay DXPのsession.jsファイルをオーバーライドできます。

  2. ジュールにsrc/main/resources/META-INF/resources/jsフォルダを作成し、元のJavaScriptファイルをその中にコピーして、名前を変更します。たとえば、session.jsモジュールのコピーを作成し、session-override.jsという名前に変更します。

  3. 変更内容を適用し、ファイルを保存します。

  4. 次に、モジュールの構成ファイル(config.js)を記述して、オーバーライドを適用します。 config.jsファイルをモジュールのsrc/main/resources/META-INF/resources/jsフォルダに追加します。以下のconfig.jsファイルの例では、YUI/AUIローダーtriggerモジュール(liferay-session)の代わりに(instead)whenプロパティによる指示)、カスタムAUIモジュール(liferay-session-override)を読み込む条件(condition)を指定します。同じパターンに従って、モジュールのconfig.jsファイルを作成できます。

    ;(function() {
    
    var base = MODULE_PATH + '/js/';
    
    AUI().applyConfig(
    {
    groups: {
    mymodulesoverride: { //mymodulesoverride
    base: base,
    combine: Liferay.AUI.getCombine(),
    filter: Liferay.AUI.getFilterConfig(),
    modules: {
    'liferay-session-override': { //my-module-override
    path: 'session-override.js', //my-module.js
    condition: {
    name: 'liferay-session-override', //my-module-override
    trigger: 'liferay-session', //original module
    when: 'instead'
    }
    }
    },
    root: base
    }
    }
    }
    );
    })();
    
  5. 最後に、bnd.bndファイルを構成する必要があります。システムが変更内容を適用するには、Liferay-JS-Config BNDヘッダーでconfig.jsの場所を指定する必要があります。前述の例のliferay-session-overrideモジュールでは、bnd.bndファイルに次の構成が含まれています。

    Bundle-Name: session-js-override
    Bundle-SymbolicName: session.js.override.web
    Bundle-Version: 1.0.0
    Liferay-JS-Config:/META-INF/resources/js/config.js
    Web-ContextPath: /liferay-session-override-web
    

これで、Liferay DXPのデフォルトのYUI/AUIモジュールをオーバーライドする方法がわかりました。

関連トピック

Customizing JSPs

« MVCResourceCommandのオーバーライドlpkgファイルのオーバーライド »
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています