问题标签 [plone-4.x]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
plone - 如何在 Zope 中通过覆盖来移动/重命名对象?
我正在尝试将对象(即图像文件)从一个文件夹移动到另一个文件夹,然后重命名它 - 用现有对象覆盖(即更新文件)。
我正在Zope
(我使用Plone 4.2
)以下列方式进行操作:
那段代码做了它应该做的事情,它将对象从一个文件夹移动到另一个文件夹,然后,由于manage_renameObject
过程不允许覆盖,我删除了将被替换的现有对象。但是如果我添加这行代码来达到最终的目标:
抛出异常,由提供的 IDexistingName
无效(因为具有该 ID 的对象已经存在,并且无论我之前是否已将其删除)。
看起来我需要一些提交或更新来完成对象移动(或等待等),但我找不到任何相关信息。
更新
我忘了补充:manage_renameObject
未应用在引发异常之前的所有更改(对象移动、对象删除)。现在,随着transaction.commit()
(由lewicki提出)应用了更改,但仍然发生异常。过程transaction.savepoint()
并没有太大帮助,仍然抛出异常并且没有应用更改。
解决
我最初对错误消息感到困惑:
当我试图重现该问题时,ZMI
我得到了:
我意识到我需要查看代码。我深入研究了已安装的代码,然后在程序中找到了我在模块中Plone
寻找的内容。这是我所有问题的根源:eggs/Zope2-2.13.18-py2.7.egg/OFS/ObjectManager.py
checkValidId()
所以,我严格输入对象名称(ID)str
,这一切都开始工作了......
commit()
甚至都不savepoint()
需要(但最初当我发现问题并观察ZMI
到我的文件既没有移动也没有删除时,这让我很困惑)。
谢谢您的帮助!
python - 如何允许通过网络控制器 Python 脚本导入其他受限模块?克隆4
我有一个控制器页面模板和一个控制器 Python 脚本来处理该操作。很高兴我能够通过网络添加此表单和操作脚本,因此每次对代码进行轻微更改时,我都不必构建和重新启动 Plone 实例。问题是我的 python 脚本应该将内容对象列表构建为一个数组,然后通过将 JSON 数组作为请求正文发送到远程服务器来与另一台服务器共享这些对象。我有一个名为 arrayOfObjects 的数组,它应该看起来像“[{'param1':val1, 'param2':val2},{'param1':val3, 'param2':val4}]”。
上面的代码可以在标准的 python 解释器中工作,但是 Plone 限制了许多模块用于在 ZMI 中管理的通过 web 的 Python 脚本。这是一个很棒的安全功能,但是我想继续通过网络开发脚本,并在完成后将其移动到我的附加产品中的文件系统存储中。我听说 AccessControl 包的 allow_module 功能应该启用导入,但听起来好像您仍然可能必须将它放在文件系统上。有什么方法可以同时通过网络编辑 Python 脚本和对我正在构建的功能至关重要的 JSON 模块?提前感谢您提供任何信息!
PS- 权限不足屏幕是我在导入 json 模块时看到的(预期行为 - 没有错误)
plone - 重置克隆以访问主题控制面板
我是 plone 4.3 主题的新手。我正在试验并设置了一个 rules.xml 文件来读取我拥有的现有 index.html 主题 - 它当然没有正确的主题,最糟糕的是 - 我找不到重新登录主题控制面板的方法。index.html 内容出现在 plone 页面上(不知何故没有 css),但我想返回并删除规则。我试图删除 rules.xml 文件,但这没有帮助 - 有什么建议吗?
indexing - 获取内容对象在父级中的位置的最佳方法是什么?克隆 4
我正在遍历其中包含内容项的文件夹。我使用 portal_catalog 在某些路径上搜索大脑。大脑可以访问元数据,brain.getObject() 将返回实际对象。我已经用 Brain.getObject().aq_parent 获得了一个对象的父级。现在我想获取对象在父对象中的位置。一开始我尝试了brain.getObject().getObjPositionInParent(),后来我意识到getObjPositionInParent()是一个可以从索引数据中访问的属性。
当我将它打印到屏幕上时,我看到了从 catalog.getIndexDataForRID 调用返回的字典中的所有项目。问题是对于所有对象,getObjPositionInParent() 是一个空数组 ([])。在此页面http://developer.plone.org/searching_and_indexing/query.html上,该值似乎应该是一个整数。这让我想知道我是否必须去创建索引数据,如果是这样,那么我可能会从对象向外太远以获取必须已经存在的数据(因为文件夹显然知道将每个孩子放在什么位置在)。获取内容对象在父级中的位置的最佳方法是什么?提前感谢您提供任何信息?
更多的:
我不确定为什么找不到适配器,但这可能与缺少注册有关。这是一个脚本,我构建 Zope 环境以直接从文件中读取 ZODB,而不是在运行的 Zope 实例之上。我是否有可能必须向 GlobalSiteManager 注册适配器?
谢谢你,马蒂亚斯。当我使用 sort_on="getObjPositionInParent" 时,出现以下错误:
add-on - plone 主题 ui zettwerk 使 plone 在安装后不可用
我刚刚开始使用 Plone。我想安装 zettwerk.ui,所以我可以轻松地编辑 plone 主题,但发生的事情是这样的(我尝试相应地遵循每一步):
在此处阅读 plone 产品的说明:http: //plone.org/products/zettwerk.ui
在此处下载 zettwerk.ui: https ://pypi.python.org/pypi/zettwerk.ui/1.1.1
我将 zettwerk zip 文件保存在 Plone/zeocluster/products 下
停止 plonectl,编辑 buildout.cfg,包括鸡蛋部分“zettwerk.ui”,再次运行 buildout,启动 plonectl。
我的期望是我可以通过网络配置产品,但结果是:localhost:8081 无法再访问 - 但在安装 zettwerk 之前一切正常。
构建输出是这样的 - 我不明白发生了什么,但最终它以某种方式正确安装了 zettwerk:
我做错了什么 - 欢迎任何帮助。
plone - 在plone站点创建新成员时如何激活INavigationRoot接口
我有一个包含许多用户的 Plone 站点。我试图使用户文件夹看起来尽可能自主。我认为collective.lineage包太多了,我正在尝试实现一个更简单的解决方案。所以每当我创建一个新用户时,我都会进入zmi并为用户文件夹激活以下界面。
这样用户就有了自己独立的导航栏。我还使用collective.folderlogo让用户轻松地用他们自己的替换plone 站点标识。
我想知道是否有一种方法可以在我创建新用户时自动激活 INavigationRoot 界面。
plone-4.x - 在两个 Plone 站点之间共享用户列表
我希望能够在两个 Plone 站点之间共享用户列表。是否有关于如何做到这一点的简单说明?我有几个网站会有重叠的用户,所以如果人们可以注册一个网站并注册其他网站,那就太好了。
tinymce - 如何将链接/图像快捷方式添加到 Plone 的 TinyMCE 内容浏览器?
在 PloneControlCenter => TinyMCE => Content Browser 下,我想添加我在我的 plone 站点上拥有的某个/Pictures文件夹。我该怎么做,我只能从“开始”和“当前文件夹”中选择?链接和图像快捷方式的快捷方式列表为空,请参见截图:
tinymce - Plones TinyMCE 内容浏览器中的项目覆盖在专辑视图中 - 如何解决这个问题?
我不知道这是一个错误还是源于任何自定义。我想知道如何解决这个问题:
如果我在 Plone 的“内容浏览器”中单击“添加图像”或“链接”,则默认查看模式为“相册”。在这种模式下,项目相互叠加,即在 4 个项目之后,下一个项目似乎没有放入新列中。
看截图:
克隆版本是 4.3.2。我怎样才能解决这个问题?欢迎使用指针(相关文件、部分代码)。
plone - OS X Mavericks 上的 Plone 4.3.x
在 OS X Mavericks(二进制或统一安装程序)上安装 4.3.x 是否存在任何已知问题?只是想知道是否有人对此进行了测试。我们为我们的设计师和开发人员准备了几台新的 Mac,并且需要知道是否会安装 Plone 4.3.x,因为二进制安装程序是特定于 Mountain Lion (10.8.x) 的。
谢谢。