Help us understand the problem. What is going on with this article?

Liferay 7 / DXPでのテーマの作り方

More than 3 years have passed since last update.

はじめに

 Liferayでは画面の見栄えを制御するのに、Theme(テーマ)という仕組みが備わっている。テーマを切り替えることによって、サイトの見栄えを切り替えることができる。

 またLiferayではWordpressなどと異なり、カラムの制御も独立してLayoutという仕組みで制御することができる。それにより同じThemeで、異なるレイアウトという組み合わせも容易に作成することができる。

開発ツールのインストール

Theme開発には一般的なフロントエンド開発で利用するyoやgulpといったツールを利用している。以下はMacでの設定方法になる。

Nodeのインストール(homebrewをインストール済みの前提)

El capitanだとhomebrew経由でのnodeのインストールがうまくいかないため、すでにインストールしているnode.jsをアンインストール、以下の方法でnodebrewを先にインストールの上、node.jsを再インストールする。

curl -L git.io/nodebrew | perl - setup

.bash_profileに以下の行を追加

.bash_profile
export PATH=$HOME/.nodebrew/current/bin:$PATH

nodeのインストール

(nodebrew install stableだと、ソースからコンパイルするので時間がかかるので、バイナリーをインストールする)

nodebrew install-binary stable

Yeoman, gulpをインストール

npm install -g yo gulp

Liferay theme generatorをインストール

npm install -g generator-liferay-theme

SASS, compassをインストール

gem install sass compass

Bladeツールインストール

公式ドキュメント:INSTALLING BLADE CLIを参照

Liferayワークスペースの作成

公式ドキュメント:CREATING A LIFERAY WORKSPACE WITH BLADE CLIを参照

(自分の記事Liferay DXP / 7におけるサービスビルダーポートレットの作成方法でもbladeのインストール、Liferayワークスペースの作成について触れているのでそちらも参照にしてください。)

テーマ作成

作成したLiferayワークスペースを、liferay_workspaceとした場合、liferay_workspace/themesまで移動する。Themeのプロジェクト名はここではliferay-themeとして、以下のコマンドを実行する。

yo liferay-theme

プロンプトが出るので、指示に従って入力。続いて、ターゲットとするtomcatと、アクセス先のURLを以下のように入力。

? Enter the path to your app server directory: /Users/yasuflatland/project/70ce/tomcat-8.0.32
? Enter the url to your production or development site: http://localhost:8080

実際のプロジェクトでは、Lexicon(Liferay7 / DXPから採用されたBootstrapベースのデザインガイドライン)をベースにテーマを作成していくのがベストプラクティスとなる。その際、

DXP(EE版)のデフォルトテーマと同様のテーマの作成方法
1. yo liferay-themeで普通にテーマを作成する。
2. /osgi/marketplace/Liferay CE Foundation.lpkgを解凍、classic-theme-1.0.5.warを展開。(DXPのバージョンによって、1.0.5の部分のバージョン名は変わる)
3. classic-theme-1.0.5直下のcss,images,js,templatesを、1で作成したThemeのsrcに展開、結合する。
4. gulp deployでデプロイ。

クラシックテーマ(CE版のデザインになる)の適用
gulp kickstartとタイプすると、CE版のclassicテーマをベースにテーマを初期化してくれる。

デプロイ

デプロイは以下のgulpコマンドで、theme作成時に指定したサーバーに大してデプロイされる。デプロイ先を変更するにはliferay-theme.jsonの内容を変更すること。

gulp deploy

Liferay側でキャッシュが効いて、更新が反映されないことが多いので、Liferayのportal-ext.propertiesとGUI上にて以下を追加、編集すること

portal-ext.properties
theme.css.fast.load=false
layout.template.cache.enabled=false
minifier.enabled=false
LiferayGUI
・コントロールパネル > 設定> システム設定 > Velocityエンジン > 編集
Resource modification check interval=0 
・コントロールパネル > 設定> システム設定 > FreeMarker エンジン > 編集 
Resource modification check=0

Gitなどでのコード管理時

yoコマンドで生成されるThemeテンプレートにはnode_modulesが入っていないので、gitからクローンしてきた後に、

npm install

でnodeモジュールをインストールすること。

各種コマンド

現在のテーマの状態を確認

gulp status 

テーマのベーステーマを変更などする場合

gulp extend

デプロイ

gulp deploy

レイアウトの作り方

以下のコマンドでレイアウトのテンプレートも作れる。複雑な入れ子にするには、手作業が必要だが、スケルトンは以下のコマンドで作成できる。

yo liferay-theme:layout
yasuflatland-lf
オープンソースのJavaベースポータルプラットフォーム、Liferayの日本支社でエンジニアをやっています。Githubアカウント https://github.com/yasuflatland-lf
http://www.liferay.com
liferay_co
オープンソースで、JavaベースのWebシステム開発プラットフォームを提供しています。
https://www.liferay.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした