Customizing Liferay's Look and Feel
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

テーマスプライトマップクライアント拡張機能の使用

Liferay DXP 2023.Q4+/ポータル GA100+

テーマ スプライト マップ クライアント拡張機能を使用すると、ページ上のアイコンに使用されるデフォルトの Clay スプライト マップをオーバーライドできます。 クライアント拡張機能をビルドしてデプロイするには、 サンプル ワークスペース から開始します。

SVG スプライト マップは、それぞれ一意の ID を持つ複数のアイコンがグループ化された画像です。 SVG を読み込み、個々のアイコンを ID で参照できます。 これにより、スプライト マップを 1 回ダウンロードしてキャッシュするだけですべてのサイト アイコンを表示できるため、パフォーマンスがわずかに向上します。

前提条件

クライアント拡張の開発を開始するには、

  1. サポートされているバージョンの Javaをインストールします。

    サポートされている JDK、データベース、環境については、 互換性マトリックス を確認してください。 推奨される JVM 設定については、 JVM 構成 を参照してください。

  2. サンプルワークスペースをダウンロードし、解凍します。

    curl -o com.liferay.sample.workspace-latest.zip https://repository.liferay.com/nexus/service/local/artifact/maven/content\?r\=liferay-public-releases\&g\=com.liferay.workspace\&a\=com.liferay.sample.workspace\&\v\=LATEST\&p\=zip
    
    unzip com.liferay.sample.workspace-latest.zip
    

これで、最初のテーマ スプライト マップ クライアント拡張機能を展開するためのツールが手に入りました。

テーマスプライトマッププロジェクトを調べる

テーマスプライトマップクライアント拡張機能は、サンプルワークスペースの client-extensions/liferay-sample-theme-spritemap-1/ フォルダーにあります。 client-extension.yaml ファイルに定義されています。

liferay-sample-theme-spritemap-1:
   name: Liferay Sample Theme Spritemap 1
   type: themeSpritemap
   url: spritemap.svg

クライアント拡張機能のIDは liferay-sample-theme-spritemap-1 で、追加するタイプやスプライトマップファイルなど、テーマスプライトマップクライアント拡張機能の主要な構成が含まれています。 利用可能なプロパティの詳細については、 テーマ スプライト マップ YAML 構成リファレンス を参照してください。

また、以下のassemble YAMLブロックも含まれています。

assemble:
    - from: assets
      into: static

これは、 assets/ フォルダ内のすべてを、ビルドされたクライアント拡張.zip ファイルに静的リソースとして含めることを指定します。 テーマスプライトマップクライアント拡張機能の SVG スプライト マップは、Liferay の静的リソースとして使用されます。

重要

サンプル プロジェクトの assets/spritemap.svg は、Liferay で使用される Clay icons スプライト マップのコピーです。 Liferay で使用されるすべてのアイコンがサンプルのスプライト マップに存在するため、UI の変更に気付くことはありません。

スプライト マップ クライアント拡張機能は、選択したページのスプライト マップ全体を置き換えるため、アイコンが欠落しないように、必要なすべてのアイコンとそれに対応する ID があることを確認してください。

スプライトマップを変更する

特定のアイコンを変更するには、アイコンの ID を見つける必要があります。 これを見つけるには、HTML 要素を調べることができます。

ナビゲーション バーには 9 個のアイコンが含まれています。

以下に、上部のナビゲーション バーで使用されるアイコンの ID を示します。

数字アイコンID
1編集アイコン鉛筆
2歯車アイコン歯車
3シミュレーションアイコンシミュレーションメニューが閉じられました
4アナリティクスアイコンAnalytics
5ABテストアイコン試験
6情報アイコン情報サークル
7グローバルメニューアイコングリッド
8検索アイコン検索
9ユーザーアイコンユーザー

鉛筆アイコンを魚に置き換えるには、

  1. assets/spritemap.svg内の 鉛筆 の ID に対応する <symbol> タグを見つけます。 これを表示するには、テキスト エディターで SVG ファイルを開く必要があります。

    <symbol id="pencil" viewBox="0 0 512 512">
       <path class="lexicon-icon-body" d="M490.9,363.4l-2.8-5.1C468.3,322.4,359.9,304,358.9,304l-2.4-0.1l-10.8,1.5c-16.9,3.9-31,15.7-50.5,33.8c-25.2-14.7-52.4-37.6-68.7-54.3c-16.7-17.1-39.9-47.7-52.4-71.6c22-21.6,37.4-38.7,38.4-61.7c0-1-13.8-110.1-48.9-131.7l0,0l-5.1-3.1c-9.6-5.7-27.5-16.4-49.3-16.4c-5.4,0-10.8,0.7-17,2.3c-6.9,2-13.3,4.8-20,9.1C55.9,23,26.2,46.7,11.7,78c-13.5,30.8-4.4,187.9,113.4,311c111.6,116.8,241.2,122.7,266.1,122.7c6.4,0,15.1-0.3,22.4-1.6l2.8-0.1l6.7-2.5c32.2-13.2,56.9-41.7,68.4-57.2C518.4,415.5,497.8,376.6,490.9,363.4L490.9,363.4z" fill="none"></path>
       <path class="lexicon-icon-outline" d="M490.9,363.4l-2.8-5.1C468.3,322.4,359.9,304,358.9,304l-2.4-0.1l-10.8,1.5c-16.9,3.9-31,15.7-50.5,33.8c-25.2-14.7-52.4-37.6-68.7-54.3c-16.7-17.1-39.9-47.7-52.4-71.6c22-21.6,37.4-38.7,38.4-61.7c0-1-13.8-110.1-48.9-131.7l0,0l-5.1-3.1c-9.6-5.7-27.5-16.4-49.3-16.4c-5.4,0-10.8,0.7-17,2.3c-6.9,2-13.3,4.8-20,9.1C55.9,23,26.2,46.7,11.7,78c-13.5,30.8-4.4,187.9,113.4,311c111.6,116.8,241.2,122.7,266.1,122.7c6.4,0,15.1-0.3,22.4-1.6l2.8-0.1l6.7-2.5c32.2-13.2,56.9-41.7,68.4-57.2C518.4,415.5,497.8,376.6,490.9,363.4L490.9,363.4z M445.4,415.1c-10.5,14-27.3,31.3-42.6,38c-1.5,0.2-5.4,0.6-11.6,0.6c-20.7,0-128.8-5.1-224.1-104.8C67,244.3,62.6,119,65.5,100c6.6-12.7,21.2-27.7,38.7-39.8c0.5-0.3,1.9-1.1,3.4-1.6c5.5-1.4,15.6,4.6,21,7.8l2.4,1.5c8.1,13.5,20.6,63.6,23.3,81.2c-3.8,6.4-19.2,21.4-27.7,29.8l-1,1.1c-11.9,12.8-15.5,31.2-8.9,47.3c14.2,32.9,45.9,75.3,68.4,98.3c22.1,22.8,59.4,53.4,93.2,70.6c16.3,8.1,36.3,4.8,49.1-7.5c10.1-9.4,25-23.4,30.6-26.3c17.6,3.4,67.7,18.2,80.8,26.7l1.1,2C446.9,404.3,448.5,411,445.4,415.1L445.4,415.1z"></path>
    </symbol>
    
  2. これをカスタム アイコンに置き換えて、同じ ID (鉛筆) を付けます。 魚のアイコンには、以下の シンボル を使用します。

    <symbol id="pencil" viewBox="0 26 100 48">
       <path d="M98.5,47.5C96.5,45.5,81,35,62,35c-2.1,0-4.2,0.1-6.2,0.3L39,26c0,4.5,1.3,9,2.4,12.1C31.7,40.7,23.3,44,16,44L0,34
       c0,8,4,16,4,16s-4,8-4,16l16-10c7.3,0,15.7,3.3,25.4,5.9C40.3,65,39,69.5,39,74l16.8-9.3c2,0.2,4.1,0.3,6.2,0.3
       c19,0,34.5-10.5,36.5-12.5S100.5,49.5,98.5,47.5z M85.5,50c-1.4,0-2.5-1.1-2.5-2.5s1.1-2.5,2.5-2.5s2.5,1.1,2.5,2.5
       C88,48.9,86.9,50,85.5,50z"/>
    </symbol>
    

スプライトマップクライアント拡張機能をデプロイする

新しいLiferay インスタンスを起動し、以下を実行します。

docker run -it -m 8g -p 8080:8080 liferay/portal:7.4.3.132-ga132

http://localhost:8080でLiferayにサインインします。 メールアドレス test@liferay.com とパスワード testを使用してください。 プロンプトが表示されたら、パスワードを learnに変更します。

次に、サンプル ワークスペース内のクライアント拡張プロジェクトのフォルダーから次のコマンドを実行します。

../../gradlew clean deploy -Ddeploy.docker.container.id=$(docker ps -lq)

これにより、クライアント拡張が構築され、Liferayのdeploy/フォルダにzipをデプロイします。

クライアント拡張機能をLiferay SaaSにデプロイするには、Liferay Cloud コマンドラインツール を使用して lcp deployを実行します。

ヒント

ワークスペース内のすべてのクライアント拡張機能を同時にデプロイするには、 client-extensions/ フォルダーからコマンドを実行します。

Liferayインスタンスのコンソールでデプロイメントを確認します。

STARTED liferay-sample-theme-spritemap-1_1.0.0

ページで新しいスプライトマップを使用する

デプロイされたクライアント拡張機能を使用するようにページを構成します。

  1. ページに移動し、上部にある 編集 (Edit icon) をクリックします。

  2. サイドバーで、「ページ デザイン オプション」メニュー (Page Design Options icon) に移動し、メニューの上部にある 構成 (Configuration icon) をクリックします。

  3. テーマスプライトマップクライアント拡張セクションで、 追加 (Add) をクリックします。

  4. 新しくデプロイされたスプライトマップ Liferay Sample Theme Spritemap 1を選択します。

    Liferay サンプルテーマ Spritemap 1 クライアント拡張機能を選択し、「保存」をクリックします。

  5. 下にスクロールして、 「保存」をクリックします。

  6. ページに戻ります。 ナビゲーション バーでは、編集機能の鉛筆 (Edit icon) が魚のアイコンに置き換えられました。

スプライト マップからの新しいアイコンがナビゲーション バーに表示されます。

今後の流れ

テーマ スプライト マップ クライアント拡張機能を正常に使用しました。 次は他のクライアント拡張タイプのデプロイメントを試してみましょう。

テーマスプライトマップYAML設定リファレンス