我看到了使用WCM插件标签[Plugin:SessionAttribute]的奇怪行为,并向上拉工具栏以使用编辑模式。我不确定我是否只是不了解该标签的工作原理,或者它是否与服务器上实施会话管理的方式有关,或者与之相关。
这是我在做什么:
我有一个页面,该页面接收查询字符串参数,该参数是特定内容的ID。该页面的Presentation Template查找该参数并将其存储在SessionAttribute“ cKey”中,只要该参数不为空,就像这样……
[Plugin:ifNotEmpty value="[Plugin:RenderParam key='cId' type='query']"]
[Plugin:SessionAttribute key="cKey" value="[Plugin:RenderParam key='cname' type='query']" mode="set" scope="application"]
[/Plugin:ifNotEmpty]
[Component name="agent_design/marketing/content/content details"]
此后加载的组件检查会话属性,并加载与“ cKey” SessionVariable中的ID匹配的内容。这是用于检查组件的“结果设计”中的标记的标签:
[Plugin:Equals text1="[Plugin:SessionAttribute key='cKey' mode='get'
scope='application']" text2="[Property field='id']"]
<!-- Render some stuff -->
[/Plugin:Equals]
这一切都很好,并且呈现了正确的内容,就像我想要的那样。直到您单击按钮以拉出工具栏并编辑该内容。第一次尝试编辑内容时,它也可以正常工作。
但是,如果您随后在页面上加载另一段内容并尝试对其进行编辑,则在调出工具栏时,页面将刷新回到您编辑的第一个广告系列。就像在打开编辑工具栏时,SessionAttribute返回到先前的值一样。
从那时起,当您打开工具栏时,拉起进行编辑的内容应“落后于”。同样,如果未拉起工具栏,并且您在正常浏览网站,则SessionVariable会正确更新,并且一切正常。
有什么想法吗?谢谢!