рдирдорд╕реНрддреЗ!
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рд┐рдлрд╛рд░реЗ рдкрд░ рдПрдХ
рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реИ, рдФрд░ рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рдЗрд╕реЗ рдХрд╛рдлреА рд╢реНрд░рдорд╕рд╛рдзреНрдп рдХрд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╕рдорд╛рдЪрд╛рд░ рдмрдирд╛рдиреЗ рдЬреИрд╕реЗ рдЫреЛрдЯреЗ рд╕реЗ рдХрд╛рдо рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдСрд░реНрдЪрд░реНрдб рд╕реАрдПрдордПрд╕ рдореЗрдВ рд▓рд╛рдЗрдлрд╝реНрд░реЗ рдореЗрдВ рдПрдХ рдХрд╕реНрдЯрдо рдЦрдВрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдПрдХ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛:
рдмрд╛рдЧ рдХреА рд╕реНрдерд╛рдкрдирд╛:
рд╕рдорд╛рдЪрд╛рд░ рдЕрдиреБрднрд╛рдЧ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░
- рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред
- рд╕рд╛рдордЧреНрд░реА рд╣реАред
- рдЕрдиреБрд░реЛрдзред
- рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╛рдЗрдЯ рдкрд░ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рджрд┐рдЦреЗрдЧрд╛ред рдмрд╛рд╣рд░реА рддрддреНрд╡реЛрдВ рдХрд╛ рдЕрдиреБрдХреВрд▓рдиред
рдкреНрд░рдХрд╛рд░ "рд╕рдорд╛рдЪрд╛рд░" рдФрд░ рдЕрдиреБрд░реЛрдз рдХрд╛ рдирд┐рд░реНрдорд╛рдг (рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП):
1. рдПрдХ рдХрдВрдЯреЗрдВрдЯ рдЯрд╛рдЗрдк рдмрдирд╛рдПрдВ:




2. рд╕рдорд╛рдЪрд╛рд░ рдореЗрдВ рдПрдХ рддрд╕реНрд╡реАрд░ рдЬреЛрдбрд╝реЗрдВ:

3. рдПрдХ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдПрдБ
3.1ред

3.2ред рдЕрдм рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

3.3ред рдХреНрд░рдо рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:

3.4ред рдХреНрдпреЛрдВрдХрд┐ рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо рдХрд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдмрдирд╛рдПрдБ:

рдЕрдм рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рдПрдХ рдкреНрд░рдХреНрд╖реЗрдкрдг рд╣реЛрдЧрд╛ред рдЖрдк рдбреИрд╢рдмреЛрд░реНрдб рдореЗрдВ рдХреБрдЫ рд╕рдорд╛рдЪрд╛рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдЕрдиреБрдХреВрд▓рди
рдПрдХ рдереАрдо рдмрдирд╛рдПрдВ
рдЖрдкрдХреЛ рдХреЛрдб рдЬреЗрдирд░реЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
http://docs.orchardproject.net/Documentation/Command-line-scaffoldingрдЕрдЧрд▓рд╛, рд╕реНрдерд╛рдкрд┐рдд Orchard рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдЦреЛрд▓реЗрдВ -> рдмрд┐рди -> orchard.exe, рдЬрдм рддрдХ рдпрд╣ рдЖрд░рдВрднреАрдХреГрдд рди рд╣реЛ рдЬрд╛рдП, рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ: рд▓рд┐рдЦреЗрдВ: codegen рд╡рд┐рд╖рдп <рд╡рд┐рд╖рдп-рдирд╛рдо> / рдЖрдзрд╛рд░рд┐рдд: TheThemeMachine / CreateProject: true
рд╣рдо рдПрдХ рд╡рд┐рд╖рдп рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ:

рдФрд░ рд╣рдо рдПрдХ рд░реЗрдЬрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ ... рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реНрдЯреВрдбрд┐рдпреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ .cshtml рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдХреЗ рд╕рд╛рде рдЦреЛрд▓реЗрдВ рдФрд░ {EFF8FEA-EAE0-44A6-8774-FFD6453904014013 рд╕реЗ рдЬреЛрдбрд╝рдХрд░ ProjectTypeGuids рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред }ред рд╣рдорд╛рд░рд╛ рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: {E53F8FEA-EAE0-44A6-8774-FFD645390401}; {349c5851-65df-11da-9384-000658464621}; {fae04ec0-301f-11d3-bf4b-00-00-00-00-00-0000 рдЕрдм рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд░реНрддрдорд╛рди рдПрдХ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓реА рд╕рднреА рдереАрдо рдлрд╛рдЗрд▓реЗрдВ рдЖрдзрд╛рд░ рд╕реЗ рд▓реА рдЧрдИ рд╣реИрдВ, рдпрджрд┐ рдХреЛрдИ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ, рдпрд╛ рд╕реЗрдлрдореЛрдб рдереАрдо рд╕реЗ рд╣реИред рд╣рдореЗрдВ рдлрд╝реЗрд╡рд┐рдХреЙрди рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдлрд╝реЗрд╡рд┐рдХреЙрди рдХреЗрд╡рд▓ "Document.cshtml" рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рд╡рд┐рд╖рдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╣рд╛рдВ рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВред
рдЕрдм рд╣рдо Views рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ Document.cshtml рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░, рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдПрдХ рдлрд╝реЗрд╡рд┐рдХреЙрди рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА рдХреЛрдб рд╕реЗрдлрдХреЛрдб рдереАрдо рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреГрд╢реНрдп \ Document.cshtml:
@using Orchard.Mvc.Html; @using Orchard.UI.Resources; @{ RegisterLink(new LinkEntry { Type = "image/x-icon", Rel = "shortcut icon", Href = Url.Content("~/Themes/ETRTheme/Content/images/favicon-201209261628.ico") }); Script.Include("html5.js").UseCondition("lt IE 9").AtHead(); Script.Include("jquery.min.js").AtHead(); Script.Include("jquery-ui.min.js").AtHead(); Script.Include("knockout-2.2.1.js").AtHead(); Script.Include("jquery.lightbox.js").AtHead(); Script.Include("jquery.cycle.all.js").AtHead(); Script.Include("date.format.js").AtHead(); Script.Include("script.js").AtHead(); string title = Convert.ToString(Model.Title); string siteName = Convert.ToString(WorkContext.CurrentSite.SiteName); } <!DOCTYPE html> <html lang="@WorkContext.CurrentCulture" class="static @Html.ClassForPage()"> <head> <meta charset="utf-8" /> <title>@Html.Title(title, siteName)</title> @Display(Model.Head) <script> (function (d) { d.className = "dyn" + d.className.substring(6, d.className.length); })(document.documentElement);</script> </head> <body> @Display(Model.Body) @Display(Model.Tail) </body> </html>
рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдкреГрд╖реНрда рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, "@Display (Model.Body)" рдореЗрдВ рдпрд╣ Layout.cshtml рдХрд╣рддреА рд╣реИред
рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдкреЗрдЬ рд▓реЗрдЖрдЙрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ "рджрд┐рдЦрд╛рддрд╛ рд╣реИ"ред
UI рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдХрд╛рд░ рдмрджрд▓рдирд╛
рддрддреНрд╡реЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ, рдСрд░реНрдЪрд░реНрдб рдХрд┐рд╕ рддрддреНрд╡ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЪреБрдиреЗрдЧрд╛)ред
http://docs.orchardproject.net/Documentation/Accessing-and-rendering-shapes#NamingShapesandTemplatesрд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реЛрдВрдЧреЗ:
- рд╕рд╛рдордЧреНрд░реА- News.Summary.cshtml - рд╕рдорд╛рдЪрд╛рд░ рдХрд╛ рдЫреЛрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ред
- SliderGrid-ProjectionPage.cshtml - рдкреНрд░рдХреНрд╖реЗрдкрдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ред
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдорд╛рдЪрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ:
Views \ Content-News.Summary.cshtml:
@using Orchard.Utility.Extensions; @using Orchard.Fields.Fields; @using Orchard.Core.Common.Models; @using Orchard.ContentManagement; @using System.Text.RegularExpressions; @using Orchard.Tags.Models; @using System.Text; @using Orchard.MediaLibrary.Fields; @using Orchard.ContentManagement @{ ContentItem contentItem = Model.ContentItem; var contentTypeClassName = ((string)contentItem.ContentType).HtmlClassify(); var news = ((dynamic)contentItem).News; IEnumerable<ContentField> fields = news.Fields; var common = contentItem.As<CommonPart>(); var publishedDate = ""; if (common.PublishedUtc.HasValue) { var date = common.PublishedUtc.Value; publishedDate = date.ToString("d MMMM yyyy"); } MediaLibraryPickerField newsMainImage = null; bool newsHasImage = false; string imageUrl = null; string imageAlternateText = null; try { newsMainImage = (MediaLibraryPickerField)fields.First(f => f.Name == "NewsMainImage"); imageUrl = newsMainImage.MediaParts.First().MediaUrl; imageAlternateText = newsMainImage.MediaParts.First().AlternateText; newsHasImage = true; } catch (InvalidOperationException e) { newsHasImage = false; } var body = contentItem.As<BodyPart>(); var summaryBodyText = body.Text.RemoveTags().Trim().Replace(Environment.NewLine, " "); summaryBodyText = Regex.Replace(summaryBodyText, @"\s+", " "); var textLength = newsHasImage ? 400 : 500; textLength = textLength > summaryBodyText.Length ? summaryBodyText.Length : textLength; summaryBodyText = summaryBodyText.Substring(0, textLength); var tags = contentItem.As<TagsPart>().CurrentTags; var tagsHtml = new List<IHtmlString>(); foreach (var t in tags) { if (tagsHtml.Any()) { tagsHtml.Add(new HtmlString(", ")); } tagsHtml.Add(Html.ActionLink((string)t.TagName, "Search", "Home", new { area = "Orchard.Tags", tagName = (string)t.TagName }, new { })); } <div @if (newsHasImage) { <text>class="b-newsroll-item-inner"</text> } else { <text>class="b-newsroll-item-inner-no-image"</text> }> @if (common.PublishedUtc.HasValue) { <div class="b-newsroll-date"> @publishedDate </div> } @if (newsHasImage) { <div class="b-newsroll-image-wrapper"> <img class="b-newsroll-image" src="@Url.Content(@imageUrl)" @if (!String.IsNullOrWhiteSpace(imageAlternateText)) { <text>alt="@imageAlternateText"</text> }/> </div> } <div class="b-newsroll-content"> <div class="b-newsroll-text"> <p>@Html.Raw(summaryBodyText)</p> </div> <span class="b-newsroll-content-crop"></span> </div> <div class="b-newsroll-more"> @Html.ItemDisplayLink(T("Read more").ToString(), contentItem) </div> @if (tagsHtml.Any()) { <div class="b-newsroll-tags"> <span> @T("Tags:") </span> @foreach (var htmlString in tagsHtml) { @htmlString } </div> } </div> }
рд╕рдорд╛рдЪрд╛рд░ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд┐рдб рдмрдирд╛рдирд╛
рдЕрдм рд╣рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдЪрд╛рд░ рдЧреНрд░рд┐рдб рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо "рд╕реНрд▓рд╛рдЗрдбрд░рдЧреНрд░реЗрдб" рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ: рдХреЛрдбрдЬреЗрди рдореЙрдбреНрдпреВрд▓ рд╕реНрд▓рд╛рдЗрдбрд░рдбрд░ рдФрд░ рдЗрд╕рдореЗрдВ рдЖрдХреГрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ:
рд▓реЗрдЖрдЙрдЯ \ SliderGridLayoutForms.cs:
using System; using Orchard.DisplayManagement; using Orchard.Forms.Services; using Orchard.Localization; namespace SliderGrid.Layouts { public class SliderGridLayoutForms : IFormProvider { protected dynamic Shape { get; set; } public Localizer T { get; set; } public SliderGridLayoutForms( IShapeFactory shapeFactory) { Shape = shapeFactory; T = NullLocalizer.Instance; } public void Describe(DescribeContext context) { Func<IShapeFactory, object> form = shape => { var f = Shape.Form( Id: "SliderGridLayout", _HtmlProperties: Shape.Fieldset() ); return f; }; context.Form("SliderGridLayout", form); } } } Layouts\SliderGridLayout.cs: using System.Collections.Generic; using System.Linq; using Orchard.ContentManagement; using Orchard.DisplayManagement; using Orchard.Localization; using Orchard.Projections.Descriptors.Layout; using Orchard.Projections.Models; using Orchard.Projections.Services; namespace SliderGrid.Layouts { public class SliderGridLayout : ILayoutProvider { public Localizer T { get; set; } private readonly IContentManager _contentManager; protected dynamic Shape { get; set; } public SliderGridLayout(IShapeFactory shapeFactory, IContentManager contentManager) { _contentManager = contentManager; Shape = shapeFactory; T = NullLocalizer.Instance; } public void Describe(DescribeLayoutContext describe) { describe.For("Html", T("Html"), T("Html Layouts")) .Element("SliderGrid", T("SliderGrid"), T("Renders multiPageGrid of elements + slider."), DisplayLayout, RenderLayout, "SliderGridLayout" ); } public LocalizedString DisplayLayout(LayoutContext context) { return T("Renders multiPageGrid + slider."); } public dynamic RenderLayout(LayoutContext context, IEnumerable<LayoutComponentResult> layoutComponentResults) { IEnumerable<dynamic> shapes = context.LayoutRecord.Display == (int)LayoutRecord.Displays.Content ? layoutComponentResults.Select(x => _contentManager.BuildDisplay(x.ContentItem, context.LayoutRecord.DisplayType)) : layoutComponentResults.Select(x => x.Properties); return Shape.SliderGrid(Items: shapes); } } }
рдЧреНрд░рд┐рдб рдЪрд╛рд▓реВ рдХрд░реЗрдВ
рд╣рдо рд╕реНрд▓рд╛рдЗрдбрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ "рдореЙрдбреНрдпреВрд▓" рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд▓рд╛рд╕реНрдЯрдиреЗрдо рдЕрдиреБрд░реЛрдз рдХреЗ рд▓реЗрдЖрдЙрдЯ рдХреЛ рд╕реНрд▓рд╛рдЗрдбрд░рдбреНрд░рд┐рдб рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ:

рд╣рдо рдкреНрд░рдХреНрд╖реЗрдкрдг рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред

рдирд┐рд╖реНрдХрд░реНрд╖
рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд╛рдЪрд╛рд░ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдорд╛рдорд▓реЗ, рд╕рдорд╛рдЪрд╛рд░ рдореЗрдВ ContentType рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рд╕рдорд╛рдЪрд╛рд░ рд╕реВрдЪреА рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП - рдХреНрд╡реЗрд░реАред рддрд╛рдХрд┐ рд╣рдо рддрддреНрд╡реЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХреЗрдВ, рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╡рд┐рд╖рдп рдореЗрдВ рджреГрд╢реНрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреБрдЫ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЯреЗрдореНрдкрд▓реЗрдЯ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдСрд░реНрдЪрд░реНрдб рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдХрд┐рд╕ рдЖрдХрд╛рд░ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдХрдВрдЯреЗрдВрдЯрдкрд╛рд░реНрдЯ рд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ ContentTypeField рд▓рдШреБ рд╕рдорд╛рдЪрд╛рд░ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИред
рд╣рдорд╛рд░реЗ рдкреНрд░рдпреЛрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪреЗ рдХрд┐ рд╕рдорд╛рдЪрд╛рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рдСрд░реНрдЪрд░реНрдб рдФрд░ рд▓рд╛рдЗрдлрд╝рд░реЗ ... рд▓рдЧрднрдЧ рдПрдХ рд╣реА рд╣реИрдВред рд╡рд╣рд╛рдБ рдФрд░ рд╡рд╣рд╛рдБ рджреЛрдиреЛрдВ рд╡рд┐рд╖рдпреЛрдВ рдХрд╛ рдЕрдиреБрдХреВрд▓рди, рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди, рдЗрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрддрд┐ рд╕реВрдХреНрд╖реНрдо рдЕрдВрддрд░ рд╣реИ: рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдЬрдм рдЖрдкрдХреЛ рдмреНрд▓реЙрдХ рдЖрдЙрдЯрдкреБрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдорд╛рдЪрд╛рд░ рдпрд╛ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА), рд▓рд╛рдЗрдлрд╝рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ - рд╕рдорд╕реНрдпрд╛ рдЙрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкрд░ рдЖрддреА рд╣реИ рдЬрд┐рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рджрдо рдкрд░ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдЦреАрдВрдЪреЛред рдпрд╣ рдЬрд╛рд╡рд╛ рдореЗрдВ рдФрд░ рдЬреАрд╡рдирдХрд╛рд▓ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдХрд╛рдлреА рдЙрдЪреНрдЪ рдпреЛрдЧреНрдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдСрд░реНрдЪрд░реНрдб рдореЗрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреНрд╡реЗрд░реА рддрдВрддреНрд░, рдХреНрд╡реЗрд░реА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рд░ рдХреЛрдИ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред