Domanda

In Config File Imposta la voce Start per ciascun sito Web in Elemento (ad esempio Artitem="/ Home").E possiamo anche selezionare l'articolo di inizio nel codice.Ma quello che sto chiedendo è come determinare per qualsiasi elemento selezionato se è l'articolo di avvio o no?

Almeno possiamo selezionare Start elemento e confrontare con un articolo specificato, ma non è un codice elegante, penso

È stato utile?

Soluzione

In genere disponiamo di un metodo di estensione sulla classe SiteContext per ottenere la voce Home:

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

Con questo è possibile testare qualsiasi articolo (non solo l'elemento di contesto) per vedere se è l'elemento domestico.

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

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

Altri suggerimenti

Proprio dalla parte superiore della mia testa:

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

Supporto che ci può essere una soluzione più pulita ma questo funziona ed è veloce.

Ricorda che in soluzioni multiite per un sito il tuo articolo può essere un articolo di avvio mentre per un altro sito SANE L'elemento non deve essere un articolo di avvio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top