Sitecore:页面的基本模板项
Sitecore: base template item of a page
我在 Sitecore 中有一个页面项目,我知道它是从某个基本模板派生的。我有该基本模板 ID,但我想获取该基本模板的实例,它是我页面的一部分。我想要它作为一个项目,所以例如我可以获得页面内部模板的 ID。
更清楚:
- 名为模板 A 的 A1 的页面
- 模板 A 以模板 B 作为基础模板
- B 是页面 A1 的一部分,作为一个名为 B1 的实例(特定于页面 A1 的字段值)
如何才能将 B1 单独使用 Item/ID?
感谢任何帮助。
谢谢。
不太确定你的意思?为什么要获取继承模板的实例?该项目将具有您通过 item.fields[templateBFieldId].Value
继承的所有字段
你可以做一些事情,比如检查当前项目是否继承自那个模板..比如:
public static bool InheritsFrom(this Item item, ID templateId)
{
return item.Template.DoesTemplateInheritFrom(templateId);
}
public static bool DoesTemplateInheritFrom(this TemplateItem template, ID templateId)
{
if (template == null || templateId.IsNull)
return false;
if (!(template.ID == templateId))
return template.DoesTemplateInheritFrom(TemplateManager.GetTemplate(templateId, template.Database));
return true;
}
private static bool DoesTemplateInheritFrom(this TemplateItem template, Template baseTemplate)
{
if (baseTemplate == null)
return false;
return TemplateManager.GetTemplate(template.ID, template.Database).DescendsFromOrEquals(baseTemplate.ID);
}
我对''yml 的内容感到困惑。页面项目中没有基本模板的实例
我在 Sitecore 中有一个页面项目,我知道它是从某个基本模板派生的。我有该基本模板 ID,但我想获取该基本模板的实例,它是我页面的一部分。我想要它作为一个项目,所以例如我可以获得页面内部模板的 ID。
更清楚:
- 名为模板 A 的 A1 的页面
- 模板 A 以模板 B 作为基础模板
- B 是页面 A1 的一部分,作为一个名为 B1 的实例(特定于页面 A1 的字段值)
如何才能将 B1 单独使用 Item/ID?
感谢任何帮助。
谢谢。
不太确定你的意思?为什么要获取继承模板的实例?该项目将具有您通过 item.fields[templateBFieldId].Value
继承的所有字段你可以做一些事情,比如检查当前项目是否继承自那个模板..比如:
public static bool InheritsFrom(this Item item, ID templateId)
{
return item.Template.DoesTemplateInheritFrom(templateId);
}
public static bool DoesTemplateInheritFrom(this TemplateItem template, ID templateId)
{
if (template == null || templateId.IsNull)
return false;
if (!(template.ID == templateId))
return template.DoesTemplateInheritFrom(TemplateManager.GetTemplate(templateId, template.Database));
return true;
}
private static bool DoesTemplateInheritFrom(this TemplateItem template, Template baseTemplate)
{
if (baseTemplate == null)
return false;
return TemplateManager.GetTemplate(template.ID, template.Database).DescendsFromOrEquals(baseTemplate.ID);
}
我对''yml 的内容感到困惑。页面项目中没有基本模板的实例