collective.uploadifyの利用 [Plone4.0]

uploadify.jpgcollective.uploadify を利用することで複数ファイルの一括アップロードができる。jQuery のアップロードプラグイン uploadify が利用されている。

インストール

サーバへのインストール

一部ソースを修正するため、開発用ディレクトリにインストールする。http://plone.org/products/collective.uploadify よりダウンロードできる。

# tar zxvf collective.uploadify-1.1.tar.gz
# mv collective.uploadify-1.1 $PLONE_INSTANCE/src/collective.uploadify

次にインスタンス内の buildout.cfg を設定する。

  eggs =
      Plone
       :
+     collective.uploadify==1.1

   zcml =
       :
+     collective.uploadify


develop =
:
+ src/collective.uploadify

次に設定を反映する。

# bin/buildout
# bin/plonectl stop; bin/plonectl start

非表示フォルダにアップロードできるようにする

デフォルトでは非表示フォルダにアップロードできないため、collective/uploadify/browser/configure.zcml を次のように変更する。

  <browser:page
for="*"
name="upload_file"
class=".upload.UploadFile"
- permission="zope2.View"/>
+ permission="zope.Public"/>

アップロードしたファイルのOwnerを変更する

アップロードしたファイルのOwnerが "Anonymous User" となるためこれを削除しておく。collective/uploadify/browser/upload.py を次のように変更する。

  def __call__(self):

:

+ f.manage_delLocalRoles(['Anonymous User'])
logger.info("file url: %s" % f.absolute_url())
return f.absolute_url()

設定

Ploneへのインストール

Plone に管理者でログインし、「サイト設定→プロダクトを追加・削除」より collective.uploadify をインストールする。

パラメータ設定

ZMI で portal_properties/site_properties に必要なパラメータを追加すれば良い。例えばファイルサイズの制限をするには ul_size_limit パラメータを指定すればよい。

ul_size_limit : 2097152

他に次のパラメータが利用できる。

ul_auto_upload : true/false (デフォルト: false)
ファイルを選択後、自動アップロード

ul_allow_multi : true/false (デフォルト: true)
複数ファイルの同時アップロード

ul_sim_upload_limit -- number 1-n (デフォルト: 4)
同時アップロード数

ul_size_limit -- size in bytes (デフォルト: empty)
ファイルサイズの上限(バイト)

ul_file_description -- text (デフォルト: empty)
ファイル選択ダイアログのファイルの種類の指定

ul_file_extensions -- list of extensions (デフォルト: *.*;)
ファイルの拡張子

ul_button_text -- text (デフォルト: BROWSE)
ファイルブラウズボタンのテキスト

ul_button_image -- path to image (デフォルト: empty)
ボタンの画像パス

ul_hide_button -- true/false (デフォルト: false)
ボタンを隠す

ul_script_access -- always/sameDomain (デフォルト: sameDomain)
Flashからスクリプトへのアクセスモード。
always はローカルでテストする場合のみしか使わないこと。

フォルダのみにアップロードタブを表示

ZMI で portal_actions/object の upload を修正する。

id : upload
Title : Upload
URL (Expression) : string:${plone_context_state/canonical_object_url}/@@upload
Condition (Expression) : python:here.portal_type=='Folder'
Permissions : Modify portal content
Visible? : ON