文書操作
ExternalExampleをいじって自分好みのプロダクトにする
以前、容量の大きなファイルをファイルシステム上に保存して利用するプロダクトとして、PloneLocalFolderNGというのを使ってみたのですが、Plone2.5になってどうも「@@plone」というグローバル変数が悪さをしているらしく使えなくなってしまっていました。私にはこれに手を入れるだけの技量が無いので、他のプロダクトをいじってみることにしました。候補は
です。
しかしこやつらは純粋なプロダクトではなく、ATフィールド(?)を提供してくれるだけの、開発者向けプロダクトなのです。ということはこれを利用したプロダクトを自分で用意せねばならない(あるいは既存のプロダクトを拡張する)というなかなかチャレンジングなことを要求してくれるプロダクトなわけです。
いや私はインプットするのは大好きなので別に何の問題もないといえばそうなのですが、なにせ今はやること・やりたいことが多い。否、多すぎる。Turbogearsもいじりたいし、COREBlogのMLで話題になったPlacefulWorkflowもいじってみたいし、PlonePASもいじりたいぞぅ。そういえばgmailAuthPluginでトラブったのを思い出してしまった。これも一度使えるようにしてみたい。なごすい関係のタスクもやってしまいたいぞぅ。
というわけで目の前にあるものがてんこ盛りなのですが、一度始めるといったんキリがつくまでは続けてしまうという悪い病気がぶり返してきて結局いじってしまったのでした。
で、二つの候補があるのですが、ExternalStorageの方には親切にもExternalExampleというサンプルプロダクトが同梱されていて(ExternalStorageのexampleフォルダ以下にあります)、これを利用するのが一番手っ取り早いだろうという推測から、ExternalExampleを自分の好みに編集して使ってしまおうという結論に至りました(でも実はFileSystemStorageの方も最近バージョンアップしたということがあって魅力的なのでした)。
とりあえずExternalExampleを通常のプロダクトのようにインストールして使ってみると、
- ComplexExample
- ExternalArticle
という二つのコンテンツタイプを追加できるようになりました。
ComplexSampleはこんな感じです。
ExternalArticleはこんな感じです。
どういう仕組みになっているのかExternalExampleのフォルダの中を見てみると
- __init__.py
- ComplexSample.py
- config.py
- ExternalArticle.py
- StreamingFile.py
- README
- refresh.txt
- Extensionsフォルダ
- skinsフォルダ
といった内容になっております。
予想以上の少なさなので結構らくちんかも~(と思っていつもどこかでハマるのですが、やっぱり今回もハマりました)。予想は立てやすいファイルの構成になっています。
というのも、ExternalExampleをインストールしたことによってComplexSampleおよびExternalArticleが追加できるようになり、しかもフォルダの中に「ComplexSample.py」とか「ExternalArticle.py」とか、いかにも私が担当してます的なファイルがあるので、これをいじればよろしいという予測が立つからです。
手を入れる方針としては、とりあえず今回はComplexSampleはいらないので削除し、ExternalArticleを編集するという感じでいきましょう。
(中略)
…で、すんごく眠いのでとりあえず動くところまではこぎつけましたので、ファイルシステム上のコンテンツはこんな感じでということで。いじったプロダクトはこんな感じ。あくまで動かす所までというだけで、skinをいじったり、もう少し中身を研究したりということはまた今度。おやすみなさい…。
- カテゴリ
-
Plone
- Plone Products
-
Zope
-
Python
- 固定リンク
- ¦
- コメント (2)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://nagosui.org:8080/Nagosui/COREBlog2/exmediafile/tbping

ExMediaFile 0.1

nyusukeさま、こんにちは。
私もLocalFolderNGを使っているのですが、こちらの記事を拝見して、再度Plone本拠地のProduct情報を確認したところ、今は誰もメンテナンスしてくれる人がいない状況なんですね?
Plone2.5に移行したとしても、同じように使いたいなあと思っていただけに、ショック...。
また、External Storageなんかも、今ひとつ使い方が判らなかったので、手を出せませんでした。これは、基本的にはLocalのファイルシステムをマウントしてくれるというものじゃなくて、保存先をローカルのファイルシステムに指定できる、という意味合いのものなんですね...。
でも、解説いただいているので、大変助かりました。サンプルがあるなどと言うのは、判りませんでしたから...。
やっぱりちゃんとPythonなりPloneなりを勉強してProductを作れるようにしたいですねぇ。