SiteCore에서 확인하는 방법 주어진 항목이 항목이 시작되는지 여부는 무엇입니까?
문제
구성 파일에서는 요소의 각 웹 사이트에 대한 시작 항목을 설정합니다 (예 : startItem="/ home").또한 코드에서 시작 항목을 선택할 수도 있습니다.그러나 제가 묻는 것은 선택 항목이 아닌지 여부가 선택 항목인지 여부를 결정하는 방법입니다.
적어도 우리는 시작 항목을 선택하고 주어진 항목과 비교할 수 있지만, 내가 생각하는 우아한 코드가 아닙니다
해결책
일반적으로 홈 항목을 얻기 위해 SiteContext 클래스에 확장 방법이 있습니다.
public static class SiteExtensions
{
public static Item GetHomeItem(this SiteContext site)
{
return Sitecore.Context.Database.GetItem(site.StartPath);
}
}
.
이를 사용하면 홈 항목이 있는지 확인하기 위해 모든 항목 (컨텍스트 항목뿐만 아니라)을 테스트 할 수 있습니다.
Item home = Sitecore.Context.Site.GetHomeItem();
if (Sitecore.Context.Item.ID == home.ID)
{
// Context item is the home item
}
. 다른 팁
내 머리 꼭대기에서 :
bool isStartItem = item.Paths.FullPath.Equals(
Sitecore.Context.Site.StartPath, StringComparison.OrdinalIgnoreCase)
.
I 지원이 클리너 해결책이있을 수 있지만이 하나의 작동은 빠릅니다.
한 사이트의 다중 사이트 솔루션에서 항목은 시작 항목이 될 수 있지만 다른 사이트 제출 항목의 경우 시작 항목이 아닙니다.
제휴하지 않습니다 StackOverflow