COREBlog2になる前のCOREBlogでは、エントリidが1, 2, 3, ……のように連番になっていた。COREBlog2では、エントリidがタイトルから自動生成されるように変更された。
これはこれで何も問題はないのだが、
- COREBlogからエントリを引き継いだので、できればエントリidも連続したものにしたい
- エントリidはURLの一部にもなるので、できるだけ短いシンプルなものにしたい
という2点から以前のCOREBlogのようにエントリidを連番にすることにした。ショートネームの変更から、エントリidを手動で連番にすることも可能だが、やっぱりめんどくさいし、忘れがちだ。
たかのりさんがエントリ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 件のコメント:
コメントを投稿