问题标签 [plone-5.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.

0 投票
2 回答
74 浏览

plone - 安装collective.autopublishing

我想使用collective.autopublish 将过时的Plone 页面设置为私有。目标是在到期日期后自动将 Plone 页面设置为私有。(类似于这里描述的问题)

我安装了collective.autopublish,我可以在网页界面中配置它。它应该使用collective.timedevents 扩展来触发。所以我也添加了它并尝试使用自述文件安装它。它告诉我添加一个触发事件的 zope 时钟服务器,这是我根据页面上的代码片段所做的。

我更改mysite为我的 Plone URL。时钟服务器似乎可以工作,因为我每 90 秒收到一次对 /mysite/@@tick 页面的 HTTP 调用,导致 404 错误,但collective.timedevents 没有触发任何内容。我是否遗漏了某些内容或从文档中得到了错误?这应该工作吗?

顺便说一句:我从collective.autopublish 为ITickEvent 注册了处理程序。

0 投票
4 回答
165 浏览

plone - 文件夹生成后克隆自动内容生成

我被要求在我的 Plone 安装中实施以下操作:

用户创建新文件夹后,他应该被转发到创建一个新页面,该页面应该是该文件夹的默认视图。

我尝试使用内容规则来实现这一点,但不幸的是,那里不支持这种行为。

你对实现这种行为有什么建议?

0 投票
3 回答
138 浏览

plone - 向用户建议页面标题

在新 Plone 页面的添加页面上,我想通过将文件夹标题添加到标题表单字段中来向用户建议一个标题。在我的 Plone 实例中实现该行为的最佳实践是什么?

0 投票
1 回答
277 浏览

plone - 如何覆盖整个 Plone 5 站点的 x-frame-options?

如何更改 Plone 5 中的“x-frame-options SAMEORIGIN”?它现在由 plone.protect 3 设置。我需要通过 iframe 为我们的在线教程系统加载整个站点,也就是所有页面。

我们确认我们的 apache 是正确的,因为我们可以将其他 plone 4 uwosh.edu 站点加载到其中。它只发生在 Plone 5 上。

我已经看过了:


我们的 Plone 5 网站: http ://www.uwosh.edu/library

使用 iframe 的损坏教程网站:http: //polk2.uwosh.edu/library/gots/tutorial/abiinform-complete

0 投票
1 回答
90 浏览

plone - 无法在 OS X 10.11.6 上的 Plone 5.0.5 上访问新创建的 plone 站点

在 OSX 10.11.6 上成功(?)新安装 Plone 5.0.5 后。为了开发目的,我可以在前台运行 plone。然后我可以创建一个克隆站点。但是,当我尝试访问该站点时,新创建的站点 plone 在控制台中崩溃并显示以下内容。有解决方法吗?

++++++++++++++++++++++++++++++++++++++++

0 投票
1 回答
303 浏览

drop-down-menu - Plone 5 中的 webcouturier.dropdownmenu

我在 Plone 5.0.4 中安装了 webcouturier.dropdownmenu

我按照以下说明进行操作:

http://quintagroup.com/services/support/tutorials/textnroll-theme/textnroll-plone5/drop-down

它可以工作,但是当我单击“设置”、“附加组件...”时出现错误,如下所示:

我怎样才能解决这个问题 ?

谢谢!

0 投票
2 回答
140 浏览

plone - 构建失败后克隆重新启动。如何找到错误

最近我一直在尝试通过我的 buildout.cfg 的鸡蛋部分添加有用的插件来自定义我的 Plone,运行buildout并重新启动 zeocluster plonectl restart。我已经以这种方式成功安装了几个插件。但是有些人阻止了 Plone 的工作。例如尝试添加plone.app.ldap: buildout 工作正常,并且服务器的重新启动最初也可以工作,但是在浏览器中访问 Plone 时它​​不会加载并plonectl status告诉我我的两个客户端与 zeoserver 失去了连接。事件日志讲述了同样的故事,但除此之外,我看不出是哪个错误导致了问题。当我删除插件时,一切正常。

我处理插件的方式是否正确?我错过了什么?我在哪里可以找到导致我的 zeocluster 崩溃的其他信息?

0 投票
1 回答
121 浏览

plone - 签入事件后的 HTTP 重定向

我将 Plone 5.0 与 plone.app.iterate 插件一起用于结帐选项和 Intranet/Extranet 工作流程。为了融合这两个概念,我的想法是:在每次工作流转换后,事件处理程序都会检查页面是否为工作副本以及是否为已发布页面。如果是这样,则应自动签入页面。因此,在审查工作副本后,将其签入。为了完成此操作,我编写了以下事件处理程序:

签入的代码几乎来自界面的源代码 这工作正常,直到用户触发事件的最后一行被重定向到页面的现在签入的主分支。用户被重定向到工作副本的页面(现在不再存在),告诉用户该页面不可用。我做错什么了?

0 投票
0 回答
118 浏览

session - 使用 Products.BeakerSessionDataManager 获取/设置 browser_id

使用 Products.BeakerSessionDataManager 时,我在将 browser_id 关联到会话时遇到问题。我正在开发 Plone 5。

据我了解 Zope 会话,一旦.getSessionData()在会话数据管理器上调用,如果会话数据容器不存在,则会创建它。此外,此数据将包含一个,与发出请求的浏览器关联token的相同。browser_id最后,在响应上设置一个 cookie,名称为_ZopeId(并且值与 相同token)。因此,当我使用 Zope 附带的默认会话数据管理器时,我得到以下信息:

ipdb> context.session_data_manager.getSessionData() id: 14737473151418102847, token: 38878600A7nh90DE9ao, content keys: []

但是,当我使用 Products.BeakerSessionDataManager 时,同样的调用给了我这个:

ipdb> context.session_data_manager.getSessionData() {'_accessed_time': 1473745441.437582, '_creation_time': 1473745441.437582}

此外,没有设置 cookie

仔细阅读一些旧的 Zope 文档,我找到了对 的引用getContainerKey(),所以我认为这可能会让我得到 browser_id。但是,每个请求的返回值都不同,因此不起作用。此外,调用.getBrowserIdManager().getBrowserId()session_data_manager引发错误,因为 Beaker 不支持浏览器 ID 管理器。

我想设置一个cookie,我想要一个令牌。我这样做是为了在投票应用程序中识别匿名客户,这样他们就不会投多票(至少不是在同一个会话中——只有在满足某些其他条件时才允许投票)。

我误解了机器,还是我错过了什么?

0 投票
1 回答
261 浏览

migration - Plone 5 资源注册表在生产中合并已编译的捆绑包

我和我的同事正在尝试调整我们为 Plone 4.1 开发的一些附加组件,以便在今年晚些时候将我们的 Plone 环境迁移到 Plone 5。在这样做的过程中,我们在尝试使我们的代码适应新的资源注册表策略时遇到了一些麻烦。在调查了一段时间后,我们决定在 vanilla Plone 环境中用最少的代码测试一个插件,看看我们是否做错了什么。

此插件中的文件结构如下:

my.package.configure.zcml 的内容如下:

my.package.profiles.registry.xml 的内容如下:

my.package.static.css.style.less 的内容如下:

在我看来,其他文件的内容与此事无关(如果我错了,请纠正我)。

如您所见,此附加组件尝试注册一个简单的 Bundle,其中包含仅由一个LESS文件组成的单个资源。(LESS文件非常简单:它只是将控制面板 Resource Registries 图标的颜色更改为红色,因此通过调用@@overview-controlpanel视图应该很容易查看样式是否生效)。按照http://docs.plone.org/adapt-and-extend/theming/resourceregistry.html的指示,我们尝试在“登录”捆绑包聚合中注册我们的捆绑包,以尽量减少发送的文件数量给客户。

在“开发模式”下一切正常。一旦我们点击构建我们的包,包就成功编译了(我们确认plone.bundles/my-package.csscompilation注册表项的值从 None 更改为++plone++static/my-package-compiled。 .css)。

然而,一旦我们切换到生产模式,我们注意到我们的包没有被合并到logged-in.css文件中,@@overview- controlpanel 中的图标的颜色不再变为红色。我们深入研究了 Products.CMFPlone 中的代码,试图找出发生了什么,发现在生产模式下编写logged-in.css文件时,所有带有merge_with属性的bundle都设置为logged-in并带有一些为合并到文件中的csscompilation属性设置的值(请参阅Products.CMFPlone.resources.browser.combine.write_css)。然而,即使我们的 bundle 有正确的merge_with属性,css编译一个是None,这就解释了为什么没有发生合并。

我们尝试了一些替代方案,但都没有奏效:

  • 当我们单击 bundles 的 Build 按钮时,构建发生并且plone.bundles/my-package.csscompilation的值设置正确。然而它没有用,因为生产文件没有被重写。如文档中所述,如果资源注册表中有用于生产的合并捆绑包按钮,则问题将得到解决,但是我们只是找不到此按钮(我们在这里遗漏了什么吗?)。我们甚至测试了一个自定义 BrowserView 来模拟这样一个按钮的操作,并确认它可以工作。
  • 如果我们尝试在生产模式下构建我们的包,然后切换到开发模式并返回生产模式以重写登录的.css 文件,我们注意到plone.bundles/my-package.csscompilation的值已设置返回无。再次查找 Products.CMFPlone 的源码,发现这个值是通过Products.CMFPlone.controlpanel.browser.resourceregistry.ResourceRegistryControlPanelView#save_registry方法修改的

    /li>

出于某种未知原因,该请求似乎将 None 值存储在其表单属性中。

我们首先在原版 Plone 5.0.6 中测试了我们的插件,然后在原版 Plone 5.1a2 中进行了测试。两者都表现出相同的行为。

在总结之前,让我首先强调一下,这只是一个简单的例子,试图调查我们是否在我们的程序中做错了什么。我们知道,在这种特定情况下,只使用CSS文件而不是LESS并在我们的 Generic Setup 配置文件中使用csscompilation属性会容易得多。但是,我们希望为这样一种情况做好准备,即我们将拥有各种LESS文件,这些文件实际上在捆绑中使用了 plone LESS变量,并且我们可以在生产中合并到logged-in.css文件(或默认的.css 文件)。与此相关的css文件)。

无论如何,我们想知道我们的程序是否做错了什么,或者这是否是 Products.CMFPlone 中的一个错误,我们应该打开一个报告它的票。任何意见或建议将不胜感激!