Pregunta

En el archivo de configuración establecimos el elemento de inicio para cada sitio web en el elemento (por ejemplo, StartItem="/ Home").Y también podemos seleccionar el artículo de inicio en el código.Pero, ¿qué estoy preguntando es cómo determinar para cualquier artículo seleccionado, ya sea que se inicie el artículo o no?

Al menos podemos seleccionar el elemento de inicio y comparar con el artículo dado, pero no es un código elegante, creo

¿Fue útil?

Solución

Típicamente tenemos un método de extensión en la clase SiteContext para obtener el artículo de inicio:

public static class SiteExtensions
{
    public static Item GetHomeItem(this SiteContext site)
    {
        return Sitecore.Context.Database.GetItem(site.StartPath);
    }
}

Con esto puede probar cualquier artículo (no solo el elemento de contexto) para ver si es el elemento de inicio.

Item home = Sitecore.Context.Site.GetHomeItem();

if (Sitecore.Context.Item.ID == home.ID) 
{
    // Context item is the home item
}

Otros consejos

solo desde la parte superior de mi cabeza:

bool isStartItem = item.Paths.FullPath.Equals(
    Sitecore.Context.Site.StartPath, StringComparison.OrdinalIgnoreCase)

Apoyo Puede haber una solución más limpia, pero este funciona y es rápido.

Recuerde que en soluciones multisitondas para un sitio, su artículo puede ser un elemento de inicio mientras que para otro elemento SANE SANE no tiene que ser un elemento de inicio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top