collective.uploadifyの利用 [Plone3.3]

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

インストール

$PLONE_INSTANCE : /usr/local/Plone/zinstance (Plone のインスタンス)

collective.uploadify のインストール

インストールは解凍後、開発用ソースディレクトリに collective.uploadify という名前で格納する。ダウンロードは http://pypi.python.org/pypi/collective.uploadify より行える。

# unzip collective.uploadify-0.9.zip
# mv collective.uploadify-0.9 $PLONE_INSTANCE/src/collective.uploadify

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

  eggs =
      Plone
       :
+     collective.uploadify

   zcml =
       :
+     collective.uploadify

   develop =
       :
+     src/collective.uploadify

  [versions]
       :
+ collective.uploadify = 0.9

最後に設定を反映する。

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

カタログに反映されない点を修正

カタログへの反映できておらずファイルタイトルが反映されないため、collective/uploadify/browser/atct.py を次のように修正する。

- obj.setTitle(name)
+ obj.reindexObject()

非公開フォルダにアップロードできない点を修正

非公開フォルダ内にファイルを作成できないため、collective/uploadify/browser/configure.zcml を次のように修正する。

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

アップロードテンプレートの日本語化

国際化対応されていないため直接ファイルを変更する。collective/uploadify/browser/upload.pt を変更する。

- <legend>Upload</legend>
+ <legend>アップロード</legend>

- href="javascript:jq('#uploader').uploadifyUpload();">Upload Files</a>
+ href="javascript:jq('#uploader').uploadifyUpload();">アップロード</a>

- href="javascript:jq('#uploader').uploadifyClearQueue();">Clear Queue</a>
+ href="javascript:jq('#uploader').uploadifyClearQueue();">クリア</a>

 

設定

パラメータ設定

下記のパラメータを指定できる。ZMI で portal_properties/site_properties に必要なパラメータを追加すれば良い。

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 はローカルでテストする場合のみしか使わないこと。

工学では次の点を設定する。

ul_size_limit : 2097152

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

ZMI で portal_actions/object に CMF Action を追加する。

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

アップロードタブの日本語化

システム上の plone.app.locales/plone/app/locales/i18n/plone-ja.po ファイルに次のように追加する。

msgid "Upload"
msgstr "アップロード"