Пабудова ініцыялізацыі модуля EPiServer CMS 9 Сартаваць Карыстальніцкія мадэлі ўкладкі

Па-першае, я хачу даць крэдыт на кішках кода тут, каб Per Магне Skuseth, супрацоўнік EPiServer і частым EpiserverWorld укладчыкам. Першапачаткова ён адказваў код для сартавання карыстацкіх ўкладак у гэты пост EpiserverWorld. Я хацеў узяць яго на крок далей і паказаць вам код, каб абгарнуць яго ў карыстацкіх EPiServer ініцыялізацыі модуля. Я толькі нядаўна пачаў важдацца з EPiServer 9 і калі вы задаваліся пытаннем, пабудова модуля карыстацкага ініцыялізацыі не змяніўся з папярэдніх версій.

Такім чынам, перадумовай для гэтага сапраўды трэба сартаваць змест ўкладак будынка ў карыстацкай старонцы і тыпаў блокаў. Я хацеў бы пабудаваць серверны інтэрфейс для стварэння кантэнту ў шляху, які з'яўляецца простым ў выкарыстанні і проста для разумення. Звычайна гэта дасягаецца за кошт тармажэння раздзелы блока або старонкі ў закладкі. Адна рэч, якую я спрабую зрабіць усе артыкулы я адпраўляю коратка казаць пра наладу праекта Visual Studio. Я выкарыстоўваю Visual Studio 2015 і я ўсталяваў апошнюю версію CMS EPiServer 9 (версія: 9.3.1 па стане на час гэтага паста), праз пашырэнне Visual Studio EPiServer. Усярэдзіне бізнес тэчкі, якія ўсталёўваюцца па змаўчанні, стварыць тэчку з імем ініцыялізацыі, каб трымаць свае ўласныя модулі ініцыялізацыі. Для гэтага модуля, проста пстрыкніце правай кнопкай мышы на тэчку і стварыць уласны C # клас пад назвай TabSortOrder.

Код для стварэння карыстацкага модуля даволі лёгка. Усё, што вам трэба зрабіць, гэта зрабіць для: IInitializableModule і дадаць у пачатак аб'явы класа:

[ModuleDependency (TypeOf (EPiServer.Web.InitializationModule))]

Ўнутры прыватных несапраўдных RegisterTabs метад, дзе вы спіс карыстацкіх укладак і іх парадак сартавання. Астатняя частка кода кажа само за сябе.

выкарыстоўваючы EPiServer.Core; выкарыстоўваючы EPiServer.DataAbstraction; выкарыстоўваючы EPiServer.Framework; выкарыстоўваючы EPiServer.Framework.Initialization; выкарыстоўваючы EPiServer.Security; выкарыстоўваючы EPiServer.ServiceLocation; выкарыстоўваючы EPiServer.Shell.ObjectEditing; з выкарыстаннем сістэмы; выкарыстоўваючы System.Linq; Прастору імёнаў YourNamespace.Business.Initialization {/// /// модуль для ўстаноўкі парадку карыстацкіх ўкладак мадэлі /// [ModuleDependency (TypeOf (EPiServer.Web.InitializationModule))] клас TabSortOrder грамадскасці: IInitializableModule {грамадскага несапраўдны Initialize (InitializationEngine кантэкст ) {RegisterTabs (); калі (context.HostType == HostType.WebApplication) {вар рэестра = context.Locate.Advanced.GetInstance (); registry.RegisterMetadataHandler (TypeOf (ContentData), новы SiteMetadataExtender ()); }} Прыватны несапраўдны RegisterTabs () {вар tabDefinitionRepository = ServiceLocator.Current.GetInstance <ITabDefinitionRepository> (); this.AddTabToList (tabDefinitionRepository, новы TabDefinition () {Name = "герой", RequiredAccess = AccessLevel.Edit, SortIndex = 27}); this.AddTabToList (tabDefinitionRepository, новы TabDefinition () {Name = "SEO", RequiredAccess = AccessLevel.Edit, SortIndex = 28}); this.AddTabToList (tabDefinitionRepository, новы TabDefinition () {Name = "Налады сайта", RequiredAccess = AccessLevel.Edit, SortIndex = 29}); } Прыватная пустата AddTabToList (ITabDefinitionRepository tabDefinitionRepository, вызначэнне TabDefinition) {TabDefinition existingTab = GetExistingTabDefinition (tabDefinitionRepository, вызначэнне); калі (existingTab! = NULL) {definition.ID = existingTab.ID; } TabDefinitionRepository.Save (прысуд); } Прыватных статычнага TabDefinition GetExistingTabDefinition (ITabDefinitionRepository tabDefinitionRepository,
Вызначэнне TabDefinition) {вярнуць tabDefinitionRepository.List () .FirstOrDefault (т => t.Name.Equals (definition.Name, StringComparison.InvariantCultureIgnoreCase)); } Грамадскі несапраўдны (кантэкст InitializationEngine) Uninitialize {} грамадскія несапраўдныя преднатягом (радок [] Параметры) {}}}

Гэта ўсё ёсць на яго. Адна рэч, каб мець на ўвазе, што EPiServer захоўвае карыстацкі парадак сартавання на іх сістэмы ўкладак. Вось накшталт для даведкі:

SystemTabNames.Content = SortIndex 10
SystemTabNames.Scheduling = SortIndex 20
SystemTabNames.Settings = SortIndex 30
SystemTabNames.Shortcut = SortIndex 40
SystemTabNames.Categories = SortIndex 50

Спадзяюся, гэта дапаможа вам пачаць працаваць з упарадкавана карыстацкіх ўкладак у EPiServer 9. Я толькі нядаўна пачаў развівацца ў EPiServer і сапраўды, як гэта да гэтага часу. З усё вар'яцтва адбываецца ў свеце цяпер, я хацеў бы заклікаць усіх, каб заўсёды працягваць вучыцца і рабіць тое, што вы любіце. Я сапраўды люблю пісаць код і думаць аб / вырашэнні праграмавання лагічных задач. Стукні мяне, калі ў вас ёсць якія-небудзь пытанні ці каментары. Акрамя таго, праверыць некаторыя з маіх публічных здзелак РЭПО GitHub тут ,