我编写了一个Data Extender类和编辑器扩展,可以在浏览CME(文件夹和结构组)中的列表时正确显示项目的其他几列.我必须注册我的类来处理GetList,GetListSearch,GetListUserFavorites和GetListCheckedOutItems等命令.
我已经注意到的是,即使说的列表,模式被加载在CME下拉列表中的代码被执行(创建一个新的组件时一样,你会得到架构的下拉列表) .所以,即使在那种情况下不需要我的附加数据列,代码仍然被执行并且它减慢了速度.
看来这是在这些情况下调用的GetList命令.所以,我不能只根据命令跳过处理.所以,我开始查看类接收列表的XML,并且我注意到为下拉列表运行代码时Managed="0",XML中有一个.例如:
<tcm:ListItems Managed="64" ID="tcm:103-546-4"><tcm:ListItems Managed="16" ID="tcm:103-411-2"><tcm:ListItems ID="tcm:0-103-1" Managed="0"><tcm:ListItems Managed="0" ID="tcm:103-506-512">那么,我可以使用此Managed ="0"作为标志来指示正在处理的列表不会显示我的其他列,我可以退出处理吗?
Managedvalue表示可以在其中创建的项目OrganizationItem:
非组织项的值为0.
值取决于项目本身(例如,您不能在文件夹中创建页面),以及您在发布和组织项目上的安全设置
不幸的是,CME现在无法提供那种粒度级别,以允许您在数据扩展器中告知特定WCF API调用的来源.我们的WCF API尚未识别上下文.它可能在将来发生变化.
信任管理="0"不是一个好主意.原因是模型列表是每个过滤器缓存的客户端.在当前设计中,过滤器具有CM相关数据,并且与发出请求的上下文无关.通常,客户端用户界面尽可能重用缓存的模型数据.例如,可以在CME仪表板中使用相同的模型列表,并将下拉控件放置在某个项目视图中,但使用不同的xml列表定义:第一个列表定义中列出的列数多于后者.它们基本上是相同数据的不同视图.
因此,您可能想要为您的问题考虑不同的解决方案.现在......这些附加列背后的数据来自哪里?是Tridion CM还是第三方提供商?有时,Web服务器缓存可以提供一种可接受的方式来改善响应时间.但那是你应该评估和决定的那种设计.
| 归档时间: |
|
| 查看次数: |
256 次 |
| 最近记录: |