我们使用的是 SDL Tridion 2009 SP1。我们已经实现了一项新功能,即 CMS 中的一个扩展,它允许我们锁定页面。如果页面被锁定,则无法再发布(锁定页面的信息保存在为此扩展创建的数据库中)。
我们想添加一个新图标,它将通知用户页面的新状态。
现在有 4 个图标组合(无操作、已检查、已发布、已检查和已发布)
由于我没有长期使用 CMS 界面的经验,因此我需要一些帮助来找到对性能没有影响的解决方案,并且在不进行大量修改的情况下易于实施。
以下是我对此的调查:
我注意到在 cms 中呈现图标的方式并不是一个可以轻松更新的简单机制。每次我们单击 CMS 左侧的项目时,为了从右侧呈现列表,都会对 WebGUIResponder.aspx 进行 ajax 调用(带有 xml 请求)。页。
我们将得到的响应是一个包含属性字段 Icon 的 xml
<tcm:ListItems xmlns:tcm="http://www.tridion.com/ContentManager/5.0"
ID="tcm:yyy-zzzz-4" Managed="68" ItemType="4">
<tcm:Item ID="tcm:yyy-zzzzz-64" Type="64" Title="NotificationTest"
Modified="2011-05-09T09:42:27" FromPub="400 YYYY Website Master (EN-GB)"
IsNew="false" Icon="T64L0P1"/>
</tcm:ListItems>
基于此字段图标属性 (Icon="T64L0P1) 开始处理图像名称。
- T64 = 表示它是一个页面
- L0 = 未检查
- P1 = 已经发布
对于此类字段,图像名称结果将为 = T64.16x16.List.Published.gif
我找不到通过页面 xml 更新此字段的方法,不是保存在 xml 中的信息,而是在 xml 请求时在 dll 中构建的。(在某处基于其他字段,例如已发布以及此图标字段的其他内容。)
因此,如果无法修改此字段,我们可能有的选项是:为了在不修改其 .dll 的情况下将我们的更改集成到 CMS 中(为了与新版本的 SDL Trdion 兼容,在dll),并且没有改变我对这种方法的考虑太多的逻辑。
我们可以对新页面 WebGUICheckPageLocked.aspx 进行新的 Ajax 调用(需要测试对性能有什么影响)。在这个页面后面的代码中,我们可以确定页面是否被锁定(使用我们的内部函数来确定页面是否被锁定,这个功能已经完成)。在页面中,我们将图标字段更改为 T64L0P1E01(添加一些额外的信息,使我们能够确定页面的新状态)。我们还将修改在 GetPNGIconName javascript 函数中,然后我们可以根据新信息 E01 进行额外检查 ...)
请如果有人对此有更好的想法,也许这很容易做到,也许这是我们可以更新图标字段的一种方式。
亲切的问候,克里斯蒂娜