SiteCore에서 확인하는 방법 주어진 항목이 항목이 시작되는지 여부는 무엇입니까?

StackOverflow https://stackoverflow.com//questions/25037501

  •  21-12-2019
  •  | 
  •  

문제

구성 파일에서는 요소의 각 웹 사이트에 대한 시작 항목을 설정합니다 (예 : 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 지원이 클리너 해결책이있을 수 있지만이 하나의 작동은 빠릅니다.

한 사이트의 다중 사이트 솔루션에서 항목은 시작 항목이 될 수 있지만 다른 사이트 제출 항목의 경우 시작 항목이 아닙니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top