1

フォームのファイル フィールドからフォルダにファイル オブジェクトを追加するために、PloneFormGen カスタム アクション アダプタを作成しています。スクリプトは次のとおりです。

target = context.filefolder   
form = request.form    
uid = str(DateTime().millis())

target.invokeFactory("File", id=uid, file=form['arquivo-do-cv_file'])

obj = target[uid]

「filefolder」は、PFG FormFolder の親フォルダー内のフォルダーの名前です。このスクリプトは、マネージャー プロキシ ロールで実行するように構成されています。

問題は、この方法で作成されたファイル オブジェクトを表示したときに、[ここをクリックしてファイルをダウンロード] リンクが表示されないことです。ただし、URL の末尾の「/view」の部分を省略すれば、ファイルをダウンロードできます。File オブジェクトを作成するために invokeFactory を呼び出すときに何が欠けていますか?

更新:私が意味したのは、署名の下のドキュメントのfilename - filetypesize in KBs ( size in bytes )」リンクが表示されないということです。通常の Plone UI を使用して File オブジェクトを作成すると、それが表示されます。

4

2 に答える 2

2

私は何も疑わない。これが Plone 4 のデフォルトの動作だと思います。

ファイルを追加しましたが、「ここをクリックしてファイルをダウンロードしてください」というメッセージが表示されません。

ここに画像の説明を入力

また、クイック検索では「ここをクリックしてダウンロード」という文字列が見つかりません。

aclark@Alex-Clarks-MacBook-Pro:~/Developer/test-4.1/ > grep -ir "Click here to download" parts/omelette
parts/omelette/plone/app/jquerytools/browser/jquery.tools.plugins.js:                   (root.tagName == 'A' ? "<p>Click here to download latest version</p>" : 
parts/omelette/plone/app/jquerytools/browser/jquery.tools.plugins.min.js:" or greater is required</h2><h3>"+(g[0]>0?"Your version is "+g:"You have no flash plugin installed")+"</h3>"+(a.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='"+k+"'>here</a></p>");if(a.tagName=="A")a.onclick=function(){location.href=k}}if(b.onFail){var d=b.onFail.call(this);if(typeof d=="string")a.innerHTML=d}}if(i)window[b.id]=document.getElementById(b.id);f(this,{getRoot:function(){return a},getOptions:function(){return b},getConf:function(){return c},
于 2011-05-24T22:10:23.477 に答える
0

私はそれをテストするための Plone インスタンスを持っていませんが、後で呼び出してみてprocessForm()くださいinvokeFactory。そうなる:

  • 作成フラグのマークを解除します。
  • タイトルに従ってオブジェクトの名前を変更します。
  • オブジェクトのインデックスを再作成します。
  • after_creation スクリプトを呼び出して、ObjectInitialized イベントを発生させます。

これらのアクションは、オブジェクト構築ライフサイクルで詳しく説明されています。おそらく、これらのアクションのいくつかは、あなたが求めている KB 情報を作成するために必要です (それがインデックスであることを願っています)。

于 2011-11-11T14:42:28.400 に答える