Ian*_*kem 4 tridion tridion-content-delivery tridion-2011
我正在尝试使用特定组件模板从代理数据库中呈现所有组件演示文稿.这是目前为止的查询代码:
using Tridion.ContentDelivery.DynamicContent;
using Tridion.ContentDelivery.DynamicContent.Query;
ItemTemplateCriteria CTCriteria = new ItemTemplateCriteria(1111);
PublicationCriteria pubCriteria = new PublicationCriteria(10);
AndCriteria finalCriteria = new AndCriteria(pubCriteria, CTCriteria);
Response.Write("<h1>START</h1>");
Query q = new Query();
q.Criteria = finalCriteria;
string[] result = q.ExecuteQuery();
if (result != null && result.Length > 0)
{
foreach (string r in result)
{
Response.Write("<h1>" + r + "</h1>");
}
}
else {
Response.Write("Result is null or 0-length.");
}
Response.Write("<h1>END</h1>");
Run Code Online (Sandbox Code Playgroud)
我不断得到null
结果.我确实cd_storage_conf.xml
在Broker数据库中发布了动态内容发布设置和一些组件演示.
我从该文档中了解到,我应该能够使用这种方法检索相关的组件URI.
我的问题:
Query
班级能力的理解是否正确?编辑:
附加信息:关于ItemTemplateCriteria
,我只假设它用于按组件模板搜索记录.我假设因为有另一个标准类叫做PageTemplateCriteria
.如果此假设无效,请更正我.
编辑:
附加信息:我检查了COMPONENTS
,SCHEMA
并且TEMPLATES
表中的代理数据库但没有找到发布的组件存在.默认情况下cd_storage_conf.xml
,已发布内容的规则必须转到代理.作为参考,这是我的配置:
<Publication Id="57" defaultStorageId="brokerdb" cached="false">
<Item typeMapping="ComponentPresentation" storageId="brokerdb" cached="false" />
<Item typeMapping="BinaryMeta" cached="true" storageId="brokerdb"/>
<Item typeMapping="BinaryVariant" cached="true" storageId="brokerdb"/>
<Item typeMapping="Binary" storageId="defaultFile" cached="true"/>
<Item typeMapping="ComponentMeta" cached="true" storageId="brokerdb"/>
<Item typeMapping="ComponentPresentationMeta" cached="true" storageId="brokerdb"/>
<Item typeMapping="ItemMeta" cached="true" storageId="brokerdb"/>
<Item typeMapping="LinkInfo" cached="true" storageId="defaultDataFile"/>
<Item typeMapping="DynamicLinkInfo" cached="true" storageId="defaultDataFile"/>
<Item typeMapping="Page" cached="true" storageId="defaultFile"/>
<Item typeMapping="PageMeta" cached="true" storageId="defaultDataFile"/>
<Item typeMapping="Reference" storageId="brokerdb"/>
<Item typeMapping="Schema" storageId="brokerdb"/>
</Publication>
Run Code Online (Sandbox Code Playgroud)
仔细检查您cd_storage_conf.xml
和数据库以检查项目是否存储在那里.如果您的数据进入文件系统,则无法查询.
具体来说,我认为ComponentPresentationMeta
必须转到数据库才能使此方案正常工作.
同时检查您的cd_licenses.xml
文件,如果它已过期,如果是(即使它cd_storage_conf.xml
是正确的),项目将最终在文件系统上.
归档时间: |
|
查看次数: |
602 次 |
最近记录: |