1

我目前正在向 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,有没有人知道在触发规则时执行脚本的另一种方法或如何使 runscript 任何脚本?

4

1 回答 1

4

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

如果要执行不受限制的 Python 代码,请改用外部方法来指向文件系统存储的脚本。

runscript操作仅将object用作上下文。您的脚本可以随意忽略该上下文。

于 2013-03-31T18:36:39.600 回答