[mayaa-user:748] Re: テンプレート機能のカスタマイズについて
suga
[E-MAIL ADDRESS DELETED]
2009年 2月 14日 (土) 15:33:12 JST
suga です。
2009/2/13 長島 正 <[E-MAIL ADDRESS DELETED]>:
> はじめまして、長島と申します。
> Mayaaについて質問があり、投稿させて頂きました。
>
> テンプレートの切り替えをフォルダで切り替えたいのですが
> 可能でしょうか。
Engine の実装を差し替えることで実現できます。
たとえばこんなクラスを作って
public class ExampleEngine extends EngineImpl {
@Override
public String getTemplateID(Page page, String suffix, String extension) {
String pageName = page.getPageName();
int lastSeparator = pageName.lastIndexOf('/');
StringBuffer nameBuffer =
new StringBuffer(pageName.substring(0, lastSeparator));
String subpath = suffix;
if (StringUtil.isEmpty(subpath)) {
subpath = "default";
}
nameBuffer.append("/");
nameBuffer.append(subpath);
nameBuffer.append(pageName.substring(lastSeparator));
if (StringUtil.hasValue(extension)) {
nameBuffer.append(".");
nameBuffer.append(extension);
}
return nameBuffer.toString();
}
}
ServiceProvider の設定ファイルにこのクラスを使う定義をします。
<engine class="example.ExampleEngine">
(省略。最低限、標準の EngineImpl の定義をそのままコピー)
</engine>
エラーページも含めすべて同じ指定になりますので、無指定のパスを
"default" にするなら、エラーページも同じように配置しなければ
いけませんので注意してください。
--
suga ( [E-MAIL ADDRESS DELETED] )
mayaa-user メーリングリストの案内