2013-03-31 26 views
1

我目前正在向plone網站添加一些功能,我希望能夠使用內容規則運行python腳本。例如,我寫了一篇文章,我想發佈它:使用由條件觸發的規則我想運行與該對象無關的特定腳本。使用條件規則執行隨機python腳本Zope/Plone

我已經安裝了Runscript但問題是,腳本顯然必須與觸發操作的對象相關。

我有一個簡單的腳本,僅僅打開一個文本文件中寫入的「Hello World」在它:

with open("hello.txt", "w") as fichier: 
    fichier.write("Hello world") 

和Plone就我的腳本下面的錯誤(工作Plone的以外):

Module script, line 1, in hello
<FSPythonScript at /Plone2/hello used for /Plone2/news/azertyazert> Line 1
NameError: global name 'open' is not defined

在其他腳本我也得到我沒有足夠的權限來修改文章的狀態的頁面(從而觸發條件規則)。

無論如何,這是與Runscript,有沒有人知道另一種方式來執行腳本時觸發規則或如何讓腳本任何腳本?

回答

4

Zope/Plone內部的Python腳本運行在受限制的環境中。由於您無法從那裏的文件系統打開文件,因此引發錯誤。

如果您想執行不受限制的Python代碼,則可以使用External Method來指向文件系統存儲的腳本。

runscript操作僅使用object作爲上下文。您的腳本可以自由地忽略該上下文。

+0

非常感謝你,這正是我所期待的。對不起回答這麼晚,但真的很感謝你! – Florian