我正在升级到 Plone 4.2(从 4.0.1)并将我的主题产品从 XDV 移动到 Diazo。
出现了一个错误,当我将表单从叠加层提交到自定义页面模板时,生成的页面是“普通”的。“普通”是指唯一可见的内容是主要内容区域,没有 plone 导航、徽标、没有样式表等。有一条“信息”消息传递到此页面,并且确实呈现在页面顶部(尽管没有任何 plone 或主题样式的样式)。就像目标页面完全呈现在 Plone 空间之外。
我尝试添加到我的 rules.xml 并将相应的 ajax_load = python: request.form.get('ajax_load') 添加到主题控制面板“高级设置”部分的参数中。然而,覆盖仍然是主题,表单目标页面仍然是“普通”(我不会说“非主题”,因为即使是非主题的 Plone 页面仍然具有基本徽标、导航等)。
我还尝试在我的叠加模板中添加并粘贴一个带有此 ID 的项目 - 叠加仍然是主题。
我正在使用主题规则
不知道为什么覆盖仍然是主题,如果这是问题的一部分?也不确定为什么表单目标页面模板呈现“普通”。
如果我正常提交相同的表单(不是来自覆盖),则目标页面呈现正确的主题......
任何调试这个的提示都会非常感谢。
我正在使用 Plone 4.2.0.1 和 plone.app.theming 1.1a2,我的主题是基于文件系统的。
编辑:好的,我的一些覆盖表单工作正常。不同之处似乎在于表单操作的位置:
form tal:attributes="action request/URL" - 工作正常
form tal:attributes="action string:${context/absolute_url}/@@view" - 当从覆盖表单调用时,在第一次渲染时给我“普通”页面(如上所述,当从同一个表单调用时很好,不是在叠加层中)
请注意,“普通”页面 html 是这样的(注意没有基本的 Plone 或主题头包含):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><base href="http://localhost:8080/Plone/sectionfoo/sectionbar/mypage" /><!--[if lt IE7]></base><![endif]--></head>
<body class="template-view portaltype-myCustomType site-Plone section-sectionfoo icons-on havePortlets haveLeftPortlets haveRightPortlets" dir="ltr">
<h1 class="documentFirstHeading">Why is this page plain?</h1>
...
我还尝试完全卸载我的主题产品 - 我仍然在 vanilla plone 中看到这些特定覆盖形式的相同行为......