Pebble日本語化&改造ログ
  全カテゴリ | Blog News | Bugs | Changes | Other Blogware
 
<< カテゴリ選択時のエントリー数制限[FIXED] | Home | トラックバックする要約文にタグが残る[FIXED] >>
MultiUserで他人のテーマが見える[FIXED]

これは仕様なのかなと思いますが、ブログ設定やテーマの表示機能において、他のユーザのテーマファイルが見れたり設定できたりします。 複数ユーザにブログをホストする場合、都合が悪いこともあります。

方法はいくつかありますが、
ここではプロパティファイルで表示できるテーマを設定する方法を説明します。

まず、/WEB-INF/classes/pebble.propertiesに、
blog.validthemes=default,classic
を追加。(必要に応じて変更)

テーマのリストを取り込む部分は、
pebble.controller.actionのEditBlogPropertiesActionとViewThemeActionです。

どちらにも、List themes = new ArrayList();
の構文を見つけられると思います。

ここらあたりを以下のようなソースに変更します。

Properties properties = new Properties();
try {
 properties.load(getClass().getClassLoader().getResourceAsStream("pebble.properties"));
 String str = properties.getProperty("blog.validthemes");
 StringTokenizer st = new StringTokenizer(str, ",");
 while (st.hasMoreTokens()) {
  String tk = st.nextToken();
  if (tk.length()>0) themes.add(tk);
 }
} catch (IOException ex) {}

ここらあたりといういい加減な指定でスミマセン

List themes = new ArrayList();
themes.add(blog.getId());

は残す必要があります。

さもないと自分のオリジナルテーマが選べなくなります。
シングルユーザーモードは自身のテーマが「custom」という名前なので、

themes.add(blog.getId());
ではまずいです。

themes.add(blog.getEditableTheme().getName());
とする必要があります。
プロパティで編集する方法だとテーマを動的に追加できません。
したがって、プリセットのテーマファイルを「theme_XXXX」などとして判別するように変更しました。
コメント追加

タイトル
名前
E-mail
Webサイト
本文
情報保存 する  しない
  • 情報保存をすると次回からお名前等を入力する手間が省けます。
  • E-mailは公開されません - このエントリーの新規コメント通知が必要なら記入します。

このエントリーのトラックバックURLを表示