Come determinare in sitecore se il dato oggetto è l'articolo iniziale?
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
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.