예제 #1
0
        protected override DriverResult Editor(LayoutTemplatePart part, dynamic shapeHelper)
        {
            var isTemplate     = false;
            var typeDefinition = _contentDefinitionManager
                                 .GetTypeDefinition(part.ContentItem.ContentType);

            if (typeDefinition != null)
            {
                var LayoutTemplatePart = typeDefinition
                                         .Parts
                                         .SingleOrDefault(p => p.PartDefinition.Name == "LayoutTemplatePart");
                if (LayoutTemplatePart != null)
                {
                    isTemplate = LayoutTemplatePart.Settings.ContainsKey("isTemplate");
                }
            }

            IEnumerable <LayoutTemplatePart> layouts = null;

            if (isTemplate)
            {
                layouts = _layoutService
                          .GetLayouts();
            }

            var stylesheets = _stylesheetService.GetAvailableStylesheets().ToList();
            var classes     = stylesheets
                              .ToDictionary(
                s => s.VirtualPath,
                s => s.GetClasses());
            var fonts = stylesheets
                        .ToDictionary(
                s => s.VirtualPath,
                s => s.GetFonts());

            return(ContentShape("Parts_Layout_Edit",
                                () => shapeHelper.EditorTemplate(
                                    TemplateName: "Parts/Layout",
                                    Model: new LayoutViewModel {
                Layout = part,
                Layouts = layouts,
                ParentLayoutId = part.ParentLayoutId,
                Stylesheets = stylesheets,
                Stylesheet = stylesheets.FirstOrDefault(s => s.VirtualPath == part.StylesheetPath),
                CssClasses = classes,
                Fonts = fonts,
                LayoutElementEditors = _layoutService.GetLayoutElementEditors(),
                IsTemplate = isTemplate
            },
                                    Prefix: Prefix)));
        }