collective.uploadifyの利用 [Plone3.3]
collective.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 "アップロード"