Ploneboardを使って掲示板を設置する
社内サイトを作るなら昔ながらの掲示板っぽいのが良いって人もいるんじゃないかなー…(希望的観測)。
iPod! 逆さにしても iPod!
Zope/Ploneアドベントカレンダー からいらした方もそうでない方も、どうもこんにちは。
社内のイントラネット上でサイトを作る時なんかには需要があるんじゃないかと思い、 Ploneboard というプロダクトを使って掲示板を設置してみます。
インストール
下準備はUnifiedInstallerで手を抜きます。:
moro@Lau:~/tmp$ wget http://launchpad.net/plone/3.3/3.3.2/+download/Plone-3.3.2-UnifiedInstaller.tgz moro@Lau:~/tmp$ tar -zxvf Plone-3.3.2-UnifiedInstaller.tgz moro@Lau:~/tmp$ cd Plone-3.3.2-UnifiedInstaller/ moro@Lau:~/tmp/Plone-3.3.2-UnifiedInstaller$ sudo ./install.sh --target=/home/moro/tmp/Plone standalone moro@Lau:~/tmp/Plone-3.3.2-UnifiedInstaller$ cd ../Plone/zinstance moro@Lau:~/tmp/Plone/zinstance$ sudo ./bin/plonectl start
- デフォルトのPloneができたよー。
- http://localhost:8080/Plone
最後のを sudo ./bin/instance fg にするとエラー時のTracebackがチェックしやすいです。開発中はこっちが良いかも。(@jhotta さん情報)
Ploneboardを導入
moro@Lau:~/tmp/Plone/zinstance$ sudo vim buildout.cfg
65 eggs = 66 Plone 67 Products.Ploneboard <- この一行を追加
今日(2009-12-21)バージョン指定をせずに試してみたところ、2.1betaが入っていました。アドオンプロダクトのインストール画面でインストールしてみるとエラーを吐いたので、 Plone.org に載っている最新バージョン(2.0)を指定しました。:
moro@Lau:~/tmp/Plone/zinstance$ sudo vim versions.cfg
50 Products.Ploneboard = 2.0
変更を反映。:
moro@Lau:~/tmp/Plone/zinstance$ sudo ./bin/buildout moro@Lau:~/tmp/Plone/zinstance$ sudo ./bin/plonectl restart
「サイト設定」→「アドオンプロダクト」(Site SetUp -> Add-on Products) でPloneboard 2.0をチェックしてインストール(Install)ボタンを押せば導入完了です。
レイアウトをいじくる
しかしこのプロダクト、新しい発言が下にきます(しかも複数ページに渡る場合は最後のページになる)。やはりこれが嫌な人は私以外にもいるみたいです。
- こんな話もされています。
- #188 — List comments in reverse order
getCommentsのソース(/home/moro/tmp/Plone/buildout-cache/eggs/Products.Ploneboard-2.0-py2.4.egg/Products/Ploneboard/content/PloneboardConversation.py )を見るとこう書いてあるので:
144 def getComments(self, limit=30, offset=0, **kw): 145 """ 146 Retrieves the specified number of comments with offset 'offset'. 147 In addition there are kw args for sorting and retrieval options. 148 """
sort_orderを渡してあげたら並び方が変わります。(/home/moro//tmp/Plone/buildout-cache/eggs/Products.Ploneboard-2.0-py2.4.egg/Products/Ploneboard/browser/comment.py 119行目 ConversationView):
- return [self._buildDict(ob) for ob in self.context.getComments(limit=limit, offset=offset)] + return [self._buildDict(ob) for ob in self.context.getComments(limit=limit, offset=offset, sort_order='reverse')]
しかし残念ながらスレッド表示にするとソートが反映されません。TODO.txt曰くなんかいろいろまだみたいです。:
7 - How/where/whether should threaded_conversation_view be enabled 8 - per user preference? per forum? 9 - does it cause confusion if different users have different views?
なにはともあれ、これでひとまずは新しい発言が上にくる単純な掲示板ができました。
(インストールしただけで終わったらTipsにならないから無理に手を加えた、ですって? シー! シー!)
さらに付け焼き刃ですがconversation_view.pt(/home/moro/tmp/Plone/buildout-cache/eggs/Products.Ploneboard-2.0-py2.4.egg/Products/Ploneboard/skins/ploneboard_templates/conversation_view.pt)70-91行目を55行目へ移せば入力欄を上に持ってこれます。
ついでですが、発言の一つ一つに公開状態が設定されているので、公開範囲を限定して使う場合は誤って全体に公開されていないかなどの注意が必要です。
まさか自分に回ってくるとは思っていなかったので微妙なネタかとは思いますが、誰か一人にでも役に立てば幸いです。
次は…まだ決まっていません。
次は本文にちらりと登場もした @jhotta さんが準備中ということです。
ちなみに最初にお願いした時にはこんな返事が来ていました。:
@NaotoMorooka Don't ask me why. But, I can't write an article on 22th. http://twitter.com/jhotta/status/6917041234
なかなか決まらず困っていたところを見るに見かねてでしょう。無理を通して助けていただいて感謝感激であります。
ところで本日12/21は回文の日だそうですね。ものすごい回文も盛りだくさんのこちらをどうぞ。
- ロリコン外科医いい加減懲りろ
- http://vipvipblogblog.blog119.fc2.com/blog-entry-234.html
