示例#1
0
        public ActionResult EditPlacement(string id)
        {
            if (!Services.Authorizer.Authorize(Permissions.EditContentTypes, T("Not allowed to edit a content type.")))
            {
                return(new HttpUnauthorizedResult());
            }

            var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(id);

            if (contentTypeDefinition == null)
            {
                return(HttpNotFound());
            }

            var content = Services.ContentManager.New(id);
            var shape   = Services.ContentManager.BuildEditor(content);

            var placementModel = new EditPlacementViewModel {
                PlacementSettings     = contentTypeDefinition.GetPlacement(PlacementType.Editor),
                AllPlacements         = _placementService.GetEditorPlacement(id).OrderBy(x => x.PlacementSettings.Position, new FlatPositionComparer()).ThenBy(x => x.PlacementSettings.ShapeType).ToList(),
                ContentTypeDefinition = contentTypeDefinition,
            };

            return(View(placementModel));
        }
        public ActionResult EditPlacement(string id)
        {
            if (!Services.Authorizer.Authorize(Permissions.EditContentTypes, T("Not allowed to edit a content type.")))
            {
                return(new HttpUnauthorizedResult());
            }

            var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(id);

            if (contentTypeDefinition == null)
            {
                return(HttpNotFound());
            }

            var grouped = _placementService.GetEditorPlacement(id)
                          .OrderBy(x => x.PlacementInfo.GetPosition(), new FlatPositionComparer())
                          .ThenBy(x => x.PlacementSettings.ShapeType)
                          .Where(e => e.PlacementSettings.Zone == "Content")
                          .GroupBy(x => x.PlacementInfo.GetTab())
                          .ToDictionary(x => x.Key, y => y.ToList());

            var content        = grouped.ContainsKey("") ? grouped[""] : new List <DriverResultPlacement>();
            var listPlacements = grouped.Values.SelectMany(e => e).ToList();

            grouped.Remove("");
            var placementModel = new EditPlacementViewModel {
                Content               = content,
                AllPlacements         = listPlacements,
                Tabs                  = grouped,
                ContentTypeDefinition = contentTypeDefinition,
            };

            return(View(placementModel));
        }