そのため、管理メニューを追加する古い方法は、コントローラーを作成してから adminmenu ファイルを作成し、以下のようにメニュー項目に番号を付けることでした。
public void GetNavigation(NavigationBuilder builder) {
var themeName = _siteThemeService.GetSiteTheme();
if (themeName.Name == Constants.THEME_NAME) {
builder.AddImageSet("themes")
.Add(T("Themes"), "10", BuildMenu);
}
}
private void BuildMenu(NavigationItemBuilder menu) {
menu.Add(T("SomeMenu"), "3", item => item.Action("Index", "Admin", new { area = Constants.ROUTES_AREA_NAME }).Permission(StandardPermissions.SiteOwner).LocalNav());
}
しかし、ハンドラーを使用した新しい方法では、必要な場所に管理メニューを配置する方法を見つけようとしています。以下のように。
public class SomeMenuPartHandler : ContentHandler {
public SomeMenuSettingsPartHandler() {
T = NullLocalizer.Instance;
Filters.Add(new ActivatingFilter<SomeMenuSettingsPart>("Site"));
Filters.Add(new TemplateFilterForPart<SomeMenuSettingsPart>("SomeMenuSettings", "Parts/SomeMenuSettings", "Theme-Bootstrap"));
}
public Localizer T { get; set; }
protected override void GetItemMetadata(GetContentItemMetadataContext context) {
if (context.ContentItem.ContentType != "Site")
return;
base.GetItemMetadata(context);
context.Metadata.EditorGroupInfo.Add(new GroupInfo(T("SomeMenu")));
}
}
これに対する答えを見つけたいです。ハンドラを使用してテーマの下のタブにメニュー項目を実際に配置する方法を教えてください。