2017-05-25 8 views
1

Plone 3.xでプログラム的にオブジェクト(ニュースなど)を作成すると、別のインスタンスのフォルダに保存することは可能ですか?Plone 3.xの別のインスタンスにオブジェクトを保存する

+0

私は13日前に私のフォーラムにhttps://community.plone.org/t/stack-overflow-save-objects-to-another-instance-inへのリンクを掲載しています。 -plone-3-x/4281 –

答えて

2

短い回答:一般的に可能で、設定に応じてさまざまなオプションがあります。

質問とセットアップが正しく理解されていれば、同じZODBで2つのPloneインスタンスが実行されています。

このような何か:

ipdb> self.context 
<Application at > 
ipdb> self.context.SiteA 
<PloneSite at /SiteA> 
ipdb> self.context.SiteB 
<PloneSite at /SiteB> 

このような場合は、次のデバッグセッションによって示されるように、新しいサイトにオブジェクトをコピーまたは移動することができます

ipdb> cpdata = self.context.SiteA.manage_copyObjects(['front-page']) 
ipdb> self.context.SiteB.manage_pasteObjects(cpdata) 
[{'new_id': 'copy_of_front-page', 'id': 'front-page'}] 
ipdb> self.context.SiteB['copy_of_front-page'].Title() 
'Welcome to Plone' 

のためにたとえば、イベント移動先を追加するコピー移動操作を実行できます。

もちろん、権限の設定をする必要があります。 私が貼り付けた例は、zopeアプリケーションのacl_usersフォルダで定義されているユーザadminを使用していたために働いていました。

しかし、技術的には、セキュリティマネージャを調整することでこの結果を達成できます。

2つのPloneサイトが同じZODBにない場合は、心配しないでください:) 2つのサイトのいずれか(またはその両方)がPloneを実行していない場合にも機能するソリューションがあります。あなたがサイトAにあなたが2つのサイト間でSSOを使用している場合はサイトB への投稿は、それが/SiteB/folder2/add_form/SiteA/folder1/add_formからaction属性のURLを変更するだけ些細なことかもしれというフォームを作成することができる。例えば

もう1つの方法として、SiteAがフォームデータを受信すると、urllibとurllib2を含むリクエストをSiteBに送信します。この場合、リクエストモジュール(Python2.4では利用できません)がたくさんあります。

関連する問題