タイトル、コメントを動的に変更する¶
タイトル、コメントを動的に変更することができます。以下の例は、サンプルとして提供されている内容を記載しています。
イベントフロー、質問、回答、ナビゲート結果およびリンクのタイトルおよびコメントに ${userCd}という文字列が存在した場合、ログインしているユーザコードに変換します。
コンバータクラスを作成します。jp.co.intra_mart.foundation.navigator.TitleInfoConverterを実装したクラスを作成します。引数で渡された、TitleInfoの内容を変更して、返却します。package jp.co.intra_mart.system.navigator; import jp.co.intra_mart.foundation.context.Contexts; import jp.co.intra_mart.foundation.context.model.AccountContext; import jp.co.intra_mart.foundation.navigator.EventNavigatorException; import jp.co.intra_mart.foundation.navigator.TitleInfo; import jp.co.intra_mart.foundation.navigator.TitleInfoConverter; /** * ユーザコードに置換するサンプルタイトルコンバータです。<br> * <br> * ${userCd}をログイン中のユーザコードに置き換えます。 * @author INTRAMART * @version 8.0.0 * @since 8.0.0 */ public class SampleTitleInfoConverter implements TitleInfoConverter{ private static final String TARGET = "\\$\\{userCd\\}"; /** * タイトル情報を変換します。<br> * <br> * ${userCd}をログイン中のユーザコードに置き換えます。 * @param titleInfo タイトル情報 * @return 変換後のタイトル情報 * @exception EventNavigatorException エラーが発生した場合にスローされます。 */ @Override public TitleInfo convert(final TitleInfo titleInfo) throws EventNavigatorException{ final AccountContext ctx = Contexts.get(AccountContext.class); titleInfo.setTitle(titleInfo.getTitle().replaceAll(TARGET, ctx.getUserCd())); titleInfo.setComment(titleInfo.getComment().replaceAll(TARGET, ctx.getUserCd())); return titleInfo; } }WEB-INF/plugin フォルダに任意のディレクトリを作成します。
作成したディレクトリにplugin.xmlを作成します。
作成したplugin.xmlを以下のように定義します。
<?xml version="1.0" encoding="UTF-8"?> <plugin> <extension point="jp.co.intra_mart.foundation.navigator.converter"> <converters name="Sample Title Converter" id="jp.co.intra_mart.foundation.navigator.converter.sample.title" version="8.0" rank="100"> <event-flow-converter class="jp.co.intra_mart.system.navigator.SampleTitleInfoConverter"/> <event-item-converter class="jp.co.intra_mart.system.navigator.SampleTitleInfoConverter"/> <select-item-converter class="jp.co.intra_mart.system.navigator.SampleTitleInfoConverter"/> <event-result-converter class="jp.co.intra_mart.system.navigator.SampleTitleInfoConverter"/> <result-page-converter class="jp.co.intra_mart.system.navigator.SampleTitleInfoConverter"/> </converters> </extension> </plugin>
コラム
それぞれのタグの意味は以下の通りです。
タグ 説明 event-flow-converter イベントフローのタイトルとコメント。 event-item-converter 質問のタイトルとコメント。 select-item-converter 回答のタイトルとコメント。 event-result-converter ナビゲート結果のタイトルとコメント。 result-page-converter ナビゲート結果のリンクのタイトルとコメント。 コラム
コンバータは複数設定することが可能です。PluginManagerによる設定順序ルールに基づき、すべてのコンバータを処理します。