- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是Tridion的新手,我必须实现一些功能,该功能将允许内容编辑器创建组件并为其分配多个日期范围(可用日期)。这些将需要从代理查询以提供搜索功能。
最初,这仅需要一个开始和结束日期,因此被实现为单独的元数据字段。
我建议在模式的“可用日期”元数据字段中使用嵌入式模式,以允许分配多个开始日期和结束日期。
但是,由于该字段现在允许多个值,因此数据以逗号分隔的值存储在代理中,位于“KEY_STRING_VALUE”列中,而不是作为日期值存储在“KEY_DATE_VALUE”列中,就像只允许单个值存储时一样起始值和结束值。
例如。
KEY_NAME | KEY_STRING_VALUE
结束日期| 2012-04-30T13:41:00,2012-06-30T13:41:00
开始日期| 2012-04-21T13:41:00,2012-06-01T13:41:00
现在,这导致我的经纪人查询出现问题,因为我不再可以使用简单的查询逻辑来根据日期检索我进行搜索所需的项目。
在开始编写C#逻辑以解析这些逗号分隔的日期并基于这些日期进行搜索之前,我想知道是否有人在过去有类似的要求/经验,并以不同的方式实现了这一点,从而减少了所需的代码解析量,并且使用代理查询来完成搜索。
我正在Tridion 2009上进行开发,但是使用5.3 Broker(出于遗留原因),因此查询当前看起来像这样(对于单个开始/结束日期):
query.SetCustomMetaQuery((KEY_NAME='end_date' AND KEY_DATE_VALUE>'" + startDateStr + "') AND (ITEM_ID IN(SELECT ITEM_ID FROM CUSTOM_META WHERE KEY_NAME='start_date' AND KEY_DATE_VALUE<'" + endDateStr + "')))";
最佳答案
这是一个复杂的场景,因为您将必须遍历所有DCP并解析这些字符串以确定是否符合搜索条件
有一种方法可以在代理中将元数据(逗号分隔)转换为单个值,但是字段名称必须不同Range1,Range2,....,RangeN
您可以使用一个部署程序扩展来做到这一点,在该扩展程序中,您可以更改程序包的XML结构并以不同的值(1,2,..,n)转换每个字符串。
如果您不熟悉部署程序扩展,并且不能100%解决您的情况,那么此扩展可能会花费一些时间。
这样的问题是,您仍然必须应用多个条件来检索这些值,并且始终必须设置一个限制(与可以根据需要添加任意值的用户相对)
样本:
query.SetCustomMetaQuery((KEY_NAME='end_date1'
query.SetCustomMetaQuery((KEY_NAME='end_date2'
query.SetCustomMetaQuery((KEY_NAME='end_date3'
query.SetCustomMetaQuery((KEY_NAME='end_date4'
关于tridion2009 - 代理中的Tridion 2009嵌入式元数据存储格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10316439/
Tridion 的用户界面允许您扩展特定命令,这是修改某些现有命令的行为的好方法。在编辑器的配置文件中,这是通过如下部分完成的: 我正在研究一个通用命令扩展类,可用于修改许多命令的行为:
是否可以在事件系统中将项目放置在工作流中?我面临的问题是,我们想根据组件所在的文件夹(而不是使用的架构)将组件定向到两个不同的工作流,而Tridion UI似乎不支持。我希望编写一个在 checkin
是否可以在 Tridion 2011 TOM.NET 中获取字段类型? ItemField 类有名称和定义,但我没有看到旧的受信任 ItemType 属性。 我感觉我需要使用 Definition 属
我正在使用核心服务创建组件以连接到 Tridion 2011 SP1。我在服务器机器上编写了代码,通过核心服务创建一个组件,并且运行良好。代码是从服务器计算机执行的。 现在我想从客户端机器上执行相同的
我正在 SDL Tridion 2011 SP1 中创建架构。我突然发现了一件事。 我必须向用户显示三个下拉列表。 列表:国家 列表:州 列表:位置 如果用户在下拉列表中选择一个国家/地区,则需要根据
是否可以从 CMS 卸载 Tridion SP1 HR#1 修补程序并保留数据库更新?自应用修补程序以来,我们的 GUI 行为非常缓慢(可能与 TMS 服务失败有关?)并且需要返回到 SP1 - 但是
我正在通过在 TRIDION 2011 SP1 版本中添加按钮来自定义功能区工具栏。当我单击该按钮时,它将打开一个 aspx 页面。在该 aspx 页面内,我需要在创建组件本身之前访问用于创建该组件的
将现有的 Tridion 2009 事件 DLL(在 2011 服务器上编译)添加到 bin 目录并在 Content Manager 配置文件中注册 DLL 后,GUI 现在返回以下错误。我检查了事
将内容从 Tridion 5.2 导入到 Tridion 2011 SP1 的最佳方式是什么?内容搬运工?或卡波 最佳答案 要升级数据库,您必须遵循以下路径:5.2 => 5.2 SP1 => 5.3
我在 Tridion 2011 SP1 的功能区工具栏中添加了一个按钮。当我单击按钮时,它将打开一个 aspx 页面。在该 aspx 页面内,我需要访问光标当前所在的当前字段名称。请提供我要使用的对象
如何获取所选项目的版本号(组件/页面) 我正在使用下面的代码 VersionedItemData verinfo=csClient.Read(, new ReadOptions())
作为对功能区工具栏实现按钮的一部分。我需要按钮 java 脚本文件中的模式名称。所以我试图使用以下命令来获取架构对象。 $display.getView().getItem().getSchema()
我是 Tridion 的新手,并且面临分类问题。 作为存储,我们使用文件系统,对于分类,我们使用 sql db。 现在,我们创建了 状态 作为其中包含少量关键字的类别。我已经创建了模式和组件,并选择了
我正在尝试使用以下代码在 Tridion 模板类中创建一个多媒体组件。 MemoryStream stringInMemoryStream = new MemoryStream(ASCIIEncodi
当我们从 tridion 发布一些页面/动态组件时,是否可以在发布时将一些外部多媒体文件/内容(例如:jpg 图像)添加到当前执行/渲染包中。因此,最终的传输包具有此二进制文件以及原始发布的内容? 这
我想知道是否有人为脚注提出了一个好的解决方案。 我希望在具有多个组件的页面上在 Tridion 中实现脚注,并且我希望所有脚注都显示在页面底部,并在内容部分生成正确的脚注编号。 http://i.st
事件系统处理程序代码: [TcmExtension("My Handler")] public sealed class EventSystem : TcmExtension { public
确定哪些 Tridion 修补程序已应用于系统的最可靠方法是什么(除了正确的先前版本文档)? 具体来说,我想了解 SDL Tridion 2009,但也有兴趣了解 SDL Tridion 2011 是
如何水平放置多个自定义按钮 - 在 tridion 功能区中一个在另一个下方。 就像我们有 checkin 、 checkout 、撤消 checkout 按钮一样。 我尝试通过将它们放在一组中来创建
我们有一个应用程序,它具有通过动态组件演示文稿的发布动态生成的菜单。 menu.xml 是由基于结构组的组件模板写出的,并且该组件模板通过事件系统触发以在结构组时发布已发布。 在从 Tridion 2
我是一名优秀的程序员,十分优秀!