Plone
Up one levelPlone 2.1のアルバムビューをカスタマイズ
Plone 2.1のアルバムビューをカスタマイズして,サムネイル画像をクリックするとリロードせずに本体を表示するようにしてみた。どんな風になるかは,下にリンクされてるモーターショーのアルバムビューでどうぞ。IEで試してないけど,多分動くんじゃないかな。ただ単にinnerHTMLをモゲってるだけなのでajaxじゃないな。表示ももうちょっとファンシーにした方がいいと思うけど,ZPTだと面倒くさいのでこのへんで勘弁してくれよ。
具体的な方法は。。。このくらいHTMLのソース見れば分かるでしょ。30分でできるシリーズ。
- Category(s)
- 煮詰まったから2.0
- Plone
- The URL to Trackback this entry is:
- http://coreblog.org/ats/customizing-plone-album-view/tbping
関連オブジェクトのインライン表示
消しゴムに関する投票
あなたは消しゴムを使い切ったことがありますか?
| 使い切ったことがある | ||
| 使い切る前になくす | ||
| 小さくなったら捨てる | ||
| 覚えていない | ||
| Total number of votes: 830 | ||
COREBlog2の「関連オブジェクト」をインライン表示できるようにしてみた。オブジェクト側にinterfaceをimprementすると,「インライン表示するときにはこのプレゼンテーションを使ってね」と任意のmetalを指定できる。MPollというArchetypesベースのPollプロダクトをPlone 2.1で使えるようにちょっと改造したものを使用して,このプロダクトにinterfaceをimprementしてみた。エントリのテンプレート側では,関連オブジェクトのうちでこのinterfaceをimprementしてるものを判別して,インライン表示用のmetalを持っている場合はそれを呼び出すようにしてある。
Pollだけじゃなくて,Amazonのアレとか,Google Mapsのアレとか,外部のリッチメディアコンテンツをobject/embedタグで囲んでくれるプロダクトなんか作ったら面白いかも。
Plone 2.1対応のプロダクトはとても少ない。日本から有用なプロダクトがたくさん発信できたら面白いと思う。
- The URL to Trackback this entry is:
- http://coreblog.org/ats/inline-view/tbping
Ploneで「はてなブックマークに追加」アクションを追加する
Ploneは大変良くできたCMSである。機能がよく抽象化されている。
アクションアイコンの追加
- まずははてなブックマークのアイコンを拝借,portal_skins/custom以下などにImageとして登録しておく
- ZMI(Zopeの管理画面)を表示,Ploneインスタンス直下にあるportal_actioniconsをクリック
- 以下の要素でアクションアイコンを追加する
- Category
- plone
- Action ID
- hatebu
- Action Title
- Add to Hatena::Bookmark
- Priority
- 0
- Icon URL Expression
- append.gif(portal_skinsに取り込んだGIFのファイル名)
アクションの追加
次にportal_actionを追加する。
- 同じくZMI上のPloneインスタンスでportal_actionsをクリック
- 以下の要素でアクションを追加
- Title
- Add to Hatena::Bookmark
- Id
- hatebu
- URL (Expression)
- string:http://b.hatena.ne.jp/append?${object_url}
- Condition (Expression)
- [空にする]
- Permission
- "View"を選択
- Category
- document_actions
- Visible?
- チェック
これを応用すると,del.icio.usへの追加用アクションとか簡単にできる。5分で出来るシリーズ。
- Category(s)
- Plone
- The URL to Trackback this entry is:
- http://coreblog.org/ats/action-for-hatena-bookmark/tbping
EasyBlog 0.5b1
http://plone.org/products/easyblog/releases/0.5beta1
10分くらいで見てみた。ソース見ただけで動かしてないですけど,多分普通に動くはず。
- よくできている「若々しくてノリのよい」印象:-)
- 「MT互換」を意識している感じ
- コメント,トラックバック独自
- Quillsと同様,「ドラフト」と「エントリ」が別オブジェクト,公開時にオブジェクトの型が変わる
- 実体のあるarchivesフォルダに「エントリ」を保存
- エントリがFolderish
- その中にコメントとかトラックバックが入る(んだと思う,多分)
- InterfaceとかSchemaが別に定義されている
- テストコードみっちり(見習わないと)
- 独自ワークフロー,カスタマイズには弱い,かな
- エントリの日付を独自に持ってるけど,EffectiveDateとか使わないとPloneとの親和性が...
β以上のステージにあって,実働するPloneのBlogプロダクトとしては一番良くできていると思います。Quillsをかなり参考にしている様子。「Quillsが(パッチを宛てないと)Plone 2.1で動かないからつくっちゃった」系かなあ。XMLRPC-APIがないことが,Quillsと比べて「劣っている点」だと思いますが,必要な人は限られているわけで。
「コンテント」と「フォルダ」のオブジェクトとしての粒度差はけっこう大きいと思う。8ビットの頃からプログラミングしてる私は貧乏性なのか,サブオブジェクトが「無い場合もある」オブジェクトに「フォルダ」としての振る舞いを持たせる設計についてはちょっと抵抗がある。「そもそもPloneだし」と言われたら返す言葉がないけどね。
トラックバックはどのタイミングで送っているのかな。
- 追記
- ワークフローのスクリプトで,Draft -> Entryになるときに送信している。正しいとは思うが,COREBlog2的に目指すところとはちょっと違うような気がする。
あとで実際に動かしてみて,インターフェースの気の利き具合とか,確認してみたいと思います。
- Category(s)
- Plone
- The URL to Trackback this entry is:
- http://coreblog.org/ats/easy-blog-05b1/tbping
Plone 2.1のページ(ドキュメント)で扱えるフォーマットを追加する
メカニズムを知る
PloneにはPortalTransformsというツールがあります。PortalTransformsを使うと,reStructuredTextをHTMLやPlain Textにしたり,PDFをHTML化したりできます。MIME Type間のデータ変換は,このツールを使って行うのが礼儀です。
Plone 2.1からは,標準のコンテンツタイプがATContentTypes(以下ATCT)というものに置き換わっています。ATCTでは,ページ(ドキュメント)などの本文に記述できる「フォーマット」は,コンフィギュレーションファイルで設定できるようになっています。PortalTransformsを使ってtext/htmlに変換できるフォーマットを指定します。
ATContentTypes/etc/atcontenttypes.conf.inにサンプルがありますので,適宜編集した上でZopeインスタンスディレクトリのetc以下に設置するとよいでしょう。フォーマットの種類だけでなく,デフォルトのフォーマットもここでカスタマイズできるようですね。
Transformerを作る
PortalTransforms/transforms/以下に,変換を行うためのクラス定義があります。python.pyなどを参考に,適宜独自のTransformerを作りましょう。
MIME Type/Transformerを登録する
ZMIを使います。まず,作成したTransformerのMIME TypeをMIMETypesRegistryというツールに登録します。MIMETypesRegistryは,mimetypes_registoryというIDでPloneインスタンス直下にあります。
次に,PortalTransformsにTransformerを追加します。同じくZMIで,Ploneインスタンス直下にあるportal_transformsのコンテンツ(contents)タブで,Transformを追加(Add)します。このとき,作成したTransformerのIDやパスを入力します。
ここまで終わったら,atcontenttypes.conf.inから作った設定ファイルのATDocumentのセクションに,Transformerを追加します。あとはZopeを再起動すればOK。ページ(ドキュメント)の編集タブで,フォーマットのプルダウンメニューに,追加したフォーマットが見えていれば追加成功です。
Wikiマークアップ用のフォーマットを追加したかったんでちょっと調べてみました。30分でできるシリーズ。COREBlog2もconfigファイルでフォーマットをカスタマイズできるようにしたいなあ。でもZCML書くの面倒だなあ。
- Category(s)
- Plone
- The URL to Trackback this entry is:
- http://coreblog.org/ats/add-format-to-document/tbping
CentralCore(coreblog.org)をリニューアルした
Plone 2.1ベースでリニューアルした。一部移行できないサービスはそのまま残してある。
さて,Plone 2.1からエクスポートしたPloneインスタンスをインポートできないんだけど,どうしたもんか。デザイン破棄してコンテンツだけ移行するかなあ。Ploneを使うと便利になる反面,面倒が増えるのでこまったもんだ。
- The URL to Trackback this entry is:
- http://coreblog.org/ats/Central-Core-now-plone-based/tbping
このサイトをHTML lint Gatewayでチェックしてみる
Another HTML-lint gatewayを使って,このサイトをチェックしてみた。
Plone 2.0.xの頃は,素のPloneサイトをチェックするととても得点が低くて,「ヨーロッパの人ってこういうのあまり気にしないのかなあ」と思ったりした。Plone 2.1ではテンプレートやCSSにもリファクタリングが行われたようで,より仕様に近いマークアップを出力するようになっているようです。例えばポートレットの各要素にプレゼンテーションを適用するのにdivが多用されていたりしたのだけど,2.1ではdlを使うようになっていたり。素のPlone 2.1でもそこそこ高い点数が出るはずです。
このエントリを投稿する直前の状態でチェックしたところ,点数は「81点」でした。「Ploneデフォルトのテンプレートをなるべく生かしつつ」,「その上に標準のCOREBlog2をのせて」,という状況。以下寸評。
- XHTML1.0 では XML宣言をすることが強く求められています。
- Ploneのテンプレートがそうなっている。このエラーを解消しようとすると,WindowsのIEなどでページ上の方に「隙間」があいてしまう(確か)。痛し痒し。
- <h5> が 180行目の <h1> に続いていますが好ましくありません。
- これもPlone由来の部分だなあ。あと,PloneのPortalTransformsでreSTをHTMLに変換すると,セクションヘッダが3から始まるので,同じようなエラーが発生する。痛し痒し2.0。
- <div> の class の属性値に空の値を指定することはできません。
- ZPTで動的にclassを割り当てようとしている部分で,「空」の要素を指定するとこう(class=""みたいに)なる。「(ほぼ)すべてのWebブラウザがちゃんと解釈してくれるようなのでいいじゃん」,ということになっているはず。ZPTの仕様上しかたがないところ。痛し痒し3.0
あとは,Wikiパーサ由来と思われるエラーとか(うわ,直さないと),「Permalink何度も使うなや!」的なエラー。もうちょっとがんばると90点くらいまで行けそうだけど。そこそこ凝ったスタイルのサイトでこの点数なら,十分に合格点だと言えるのではないでしょうか:-)。
- Category(s)
- 煮詰まったから2.0
- Plone
- The URL to Trackback this entry is:
- http://coreblog.org/ats/html-lint-de-coreblog2/tbping
PloneにBlogは要らない?
Ploneの開発者用MLでの話。Ploneには標準のBlogツールがないよね,という話題を受けての,Alexander Limiの答え。
だいたいの内容を抜粋すると,
- Blogは人によって定義が違う
- オレはRSSがあればBlogだとおもう
- だから,顧客がPloneにBlog機能を求めるときは,Smart FolderとRSSで構築する
- トラックバックはスパムの温床になるから不要だね
- BlogPortalみたいなのを作りたい人はWordPressを使えばいい
Ploneは元来CMSを指向しているので,サイトの「構造」に制約を設けないような柔軟な作りになっている。
一方,Blogには「構造」がある。「ここにはエントリを置きます,ここはカテゴリ用の場所です」,みたいな。
Ploneが柔軟なCMSを目指しているのなら,決まった構造を持った「Blog」を標準で搭載しようと「しない」,という方向性はある程度納得できる。
COREBlogをリリースした直後,実はLimiからメールをもらっていて,そのときはPloneにBlog機能を搭載する気まんまんだったんだけどな。いつからか気が変わってしまったのかしら。ひとつ言えることがあるとしたら,Ploneに標準のBlogツールがあって欲しいと願っている人は沢山いて,数年来ずっと,その状況は変わってないってことだと思う。
- Category(s)
- Plone
- The URL to Trackback this entry is:
- http://coreblog.org/ats/smart-folder-is-enough-for-blog/tbping
Re:PloneにBlogは要らない?
Very nice site!Respect you!
My site:
http://buy-cheap-phentermine-online-4you.blogspot.com
COREBlog2 0.7bをリリース
Plone 2.1対応のBlogプロダクト,COREBlog2 0.7bをリリースしました。COREBlog2の最初の公開βとなります。これまでアルファ版のテストにご協力いただいたみなさま,ありがとうございました。
- 「高級車」のようなBlogツールを目指して開発しています
- Ploneの高度なCMS機能の多くを引き継いでいます。本格的なCMS志向
- Ploneの学習用に最適です
- 日本から世界へ
くわしいことはこちらなどを参考に。
本当はplone.orgのニュースに載ってからと思ったんだけど,取り急ぎ:-)。
- The URL to Trackback this entry is:
- http://coreblog.org/ats/coreblog2-07b-released/tbping
COREBlog kann nun Plone
plone.orgでプロダクトを公開する方法
細かな行き違いがあってちょっとてこずったけど,COREBlog2がめでたくplone.orgで公開されました。
他の人のために,plone.orgでプロダクトを公開する方法について簡単に解説したいと思います。
まずアカウントを取る
plone.orgにアカウントを作成します。
プロジェクトを登録,申請
plone.orgでプロダクトを公開するためには,まずプロジェクトを申請,承認を受ける必要があります。プロジェクトとリリースなどの関係は以下のようになっているようです。
- プロジェクト
- リリース
- リリースファイル(外部,内部)
アカウント作成,ログイン後,products タブをクリックします。add new project というボタンを押すと,プロジェクトの登録フォームが出てくるので,必要事項を記入。記入後,ワークフローのステータスを変更すると,審査を待ってプロジェクトが承認,公開されます。
リリース,リリースファイルを追加する
プロジェクトが承認されたら,リリース,およびリリースファイルを登録。編集が終わったらワークフローのステータスを変更するのをわすれずに。これで,トップページのポートレットなどに公開したプロダクトが表示されればOK。なお,リリースに関しては実体のない「予定」についても記述できるのがgoodですね:-)。
plone.orgのプロダクトマネジメントの機能を提供しているプロダクトが公開されています。Plone Software Centerというのがそれ。ソースを5秒みてみたらATCTベースっぽいし,プロジェクトを登録中にportal_factoryが見えたので,Plone 2.1で動くような気がするが詳細は不明。誰か試して!
- Category(s)
- Plone
- The URL to Trackback this entry is:
- http://coreblog.org/ats/publish-products-on-plone-org/tbping


Plone難しいです
by初心者
Web関連の技術,Python,Zopeの知識があると,かなり便利に使いこなせるんですけどねえ
Ploneはすばらしいですよ:-)
ウチではとても便利に活用させていただいています
研究したり活用した結果を,オープンソースのソフトとして反映しているわけです