35 lines
859 B
Plaintext
35 lines
859 B
Plaintext
@namespace Oqtane.Themes.Controls
|
|
@inherits ThemeControlBase
|
|
|
|
@if (BreadCrumbPages.Any())
|
|
{
|
|
<ol class="breadcrumb">
|
|
@foreach (var p in BreadCrumbPages)
|
|
{
|
|
<li class="breadcrumb-item @ActiveClass(p)">
|
|
<a href="@NavigateUrl(p.Path)">@p.Name</a>
|
|
</li>
|
|
}
|
|
</ol>
|
|
}
|
|
|
|
@code {
|
|
|
|
protected IEnumerable<Page> BreadCrumbPages => GetBreadCrumbPages().Reverse().ToList();
|
|
|
|
protected string ActiveClass(Page page)
|
|
{
|
|
return (page.PageId == PageState.Page.PageId) ? " active" : string.Empty;
|
|
}
|
|
|
|
private IEnumerable<Page> GetBreadCrumbPages()
|
|
{
|
|
var page = PageState.Page;
|
|
do
|
|
{
|
|
yield return page;
|
|
page = PageState.Pages.FirstOrDefault(p => page != null && p.PageId == page.ParentId);
|
|
} while (page != null);
|
|
}
|
|
}
|