2006年9月4日月曜日

エントリidを連番にする

COREBlog2になる前のCOREBlogでは、エントリidが1, 2, 3, ……のように連番になっていた。COREBlog2では、エントリidがタイトルから自動生成されるように変更された。

これはこれで何も問題はないのだが、

  • COREBlogからエントリを引き継いだので、できればエントリidも連続したものにしたい
  • エントリidはURLの一部にもなるので、できるだけ短いシンプルなものにしたい

という2点から以前のCOREBlogのようにエントリidを連番にすることにした。ショートネームの変更から、エントリidを手動で連番にすることも可能だが、やっぱりめんどくさいし、忘れがちだ。

たかのりさんがエントリidを連番にするコードを公開してくれているので、これを導入した。

COREBlog 2 のエントリーの id に数値をセット

1. まずPloneのサイト設定からZMIに入り、portal_skins/COREBlog2/getEntryIdにアクセスする。ここで「Customize」ボタンをクリックし、表示されるコードから

return None

を削除する。次に、たかのりさんのサイトにある下記のコードを挿入する。

  coreblog = context.aq_parent
if coreblog.hasProperty('entryid'):
coreblog.manage_changeProperties(entryid=coreblog.entryid + 1)
else:
coreblog.manage_addProperty('entryid', 1, 'int')
return str(coreblog.entryid)

「Save Changes」をクリックしたところシンタックスエラーがあると言われてびっくりした。よく見ると、コピー&ペーストした際にインデントが狂っているではないですか!

ちょいちょいとインデントを修正して、再度「Save Changes」をクリックすればOK。

2. 次にZMIからCOREBlog2のインスタンスにアクセスし「Properties」タブを表示する。ここで、下記のような設定でentryidを追加する。

Name:entryid
Type:int
Value:一番新しいエントリのid番号(私の場合は145)

以上で、エントリidが連番で振られるようになる。




0 件のコメント:

コメントを投稿