使用条件规则执行随机python脚本Zope / Plone

时间:2013-03-31 07:44:49

标签: python scripting plone zope run-script

我目前正在为plone网站添加一些功能,我希望能够使用内容规则运行python脚本。例如,我写了一篇文章,我想发布它:使用由条件触发的规则我想运行与该对象无关的某个脚本。

我已经安装了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,是否有人知道在触发规则时执行脚本的另一种方式或者如何使脚本运行任何脚本?

1 个答案:

答案 0 :(得分:4)

Zope / Plone中的Python脚本在受限环境中运行。抛出错误是因为您无法从那里的文件系统中打开文件。

如果要执行不受限制的Python代码,请使用External Method来指向文件系统存储的脚本。

runscript操作仅使用object作为上下文。您的脚本可以自由忽略该上下文。