SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Liferay 6.2を使ったWebコンテンツの作り方

Liferayの標準機能を使った検索機能の実装

Liferay 6.2を使ったWebコンテンツの作り方 第2回

Hookを作る

 さて、いよいよ検索機能を作りましょう。今回はWeb Contentsのみの検索を行うので、標準機能の「Web コンテンツの検索」機能を拡張することにします。Liferayでは標準機能を拡張するのに、Hook(フック)という仕組みがあります。これにより、Liferayが搭載する基本機能のポートレットに、追加機能を加えたり、変更することができます。

 該当のパースペクティブを開きますか、というダイアログがでるのでYesと答えると、Web Content Search-hookというプロジェクトがPackage Exploreに表示されます。それを右クリックして、Hookを作成します。

Hook設定

 次にCustom JSP’sを選択しNextを押下

Hook設定選択

 Add from Liferayボタンを選択します。

Hook新規設定

 Liferay Custom JSPというダイアログが表示されるので、ここで今回

/html/taglib/ui/journal_content_search/start.jsp

を指定してください。そうすると、custom_jspというディレクトリがdocroot以下に作成され、該当のjspが作成されます。このcustom_jsp以下のjspファイルが、Liferay本体のポートレットの動作をオーバーライド(上書き)します。

カスタムJSP作成

 start.jspの中身は、添付ファイルのstart.jspで上書きしてください。上書き後、start.jsp内の#REPLACE_THIS_TO_YOUR_STRUCTURE_IDを、使用しているストラクチャーIDに置換してください。

 次に、メッセージの表示が英語のままになってしまうので、言語ファイルを作成します。再び、Package Explore 内のWeb Content Search-hookの上で右クリックして、「Liferay Hook Configuration」を選択します。

Hook設定

 次にLanguage Propertiesを選択しNextを押下、「Add」ボタンを押下して、Language.propertiesと、Language_ja.propertiesという2つのファイル名を追加、Finishボタンを押下すると、ファイルが生成されます。次に、その中身を、添付ファイルのLanguage.propertiesと、Language_ja.propertiesの中身をそれぞれ同名のファイルの中にコピーします。

言語ファイル生成

 次に、Package ExplorerのWeb Content Search-hookをServersに作成してあるサーバー(筆者の場合はLiferay v6.2 CE Server (Tomcat 7) at localhost)にドラッグ&ドロップします。するとHookがサーバーにデプロイされます。

Hookをサーバにデプロイ

 いったんデプロイされた後は、ファイルを変更するたびに、Liferayのホットデプロイ機構が変更を感知して自動的にデプロイしてくれるのですが、変更が反映されなかったりする時があるので、その際はLiferay v6.2 CE Server (Tomcat 7) at localhostの下にデプロイされたWeb Content Search-hookの上で右クリックして、Redeployを選択すると、強制的にデプロイされます。

Hookの強制デプロイ

 デプロイし終わると、以下のような画面になるはずです。

コンテンツ作成

 Liferayにはもう一つ、Extプラグインという、Liferayのほぼ全機能を変更可能なプラグインがあります。しかし、このプラグインはバージョンアップを考慮していないため、バージョンアップの際にコードの不整合が発生します。よほどのことがない限り使用は避けてください。拡張性、メンテナンス性を考えても、Hookを使うことを最初に考えるのがベストプラクティスです。

次のページ
start.jspの変更についての説明

修正履歴

この記事は参考になりましたか?

Liferay 6.2を使ったWebコンテンツの作り方連載記事一覧

もっと読む

この記事の著者

竹生 泰之(日本ライフレイ株式会社)(タケオ ヤスユキ)

日本ライフレイ勤務。官公庁向け制御系システム開発、複合機のユーザーインターフェース開発、CRMのWebアプリケーションエンジニアを経て、現在はWebポータル/イントラネットのオープンソースアプリケーション、Liferayのコミュニティマネージャ/コンサルタントとして活動中。BMX(バイシクルモトクロス、20インチのレース/トリック用自転車)のフラットランド全日本選手権、King of Groundを1998年から運営し、BMX専門誌、Encounter Magazineの編集長も務め、撮影、執筆、翻訳、DTP全てを自ら手掛けるなど、プライベートでもマルチに動いている。・日本ライフレイユーザー会ライフレイ

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7769 2014/05/28 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー