コード例 #1
0
        public void SaveDraft(Guid formId, PageStructure pageStructure)
        {
            var pageRepository = new FormRepository();
            var draft          = pageRepository.FindContentVersions(By.ContentId(formId), ContentEnvironment.Draft).Result.Single();

            new StructureNodeConverter().ApplyNewStructureToCmsPage(draft, pageStructure);
            pageRepository.Save(draft);
        }
コード例 #2
0
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            var formIdRaw   = Request["formId"];
            var formTypeRaw = Request["formType"];

            ContentTypePicker.Visible = string.IsNullOrEmpty(formTypeRaw) && string.IsNullOrEmpty(formIdRaw);
            if (ContentTypePicker.Visible)
            {
                ContentTypeDropDownList.Items.Add(new ListItem(string.Empty, string.Empty));
                var all = new RepositoryMetadataManager().Find();
                foreach (var contentType in all)
                {
                    var text = RepositoryTypeResolver.ResolveTypeByApiId(contentType.ApiId).Name;
                    ContentTypeDropDownList.Items.Add(new ListItem(text, contentType.ApiId.ToString()));
                }

                SelectContentTypeButton.Click += (sender, args) =>
                {
                    //todo: make this work regardless of the querystring already present.
                    var url = HttpContext.Current.Request.RawUrl + "&formType=" + ContentTypeDropDownList.SelectedValue;
                    HttpContext.Current.Response.Redirect(url);
                };
                return;
            }

            CmsForm cmsForm;

            if (string.IsNullOrEmpty(formIdRaw))
            {
                cmsForm = new CmsForm
                {
                    ContentId     = Guid.NewGuid(),
                    RepositoryUid = new Guid(formTypeRaw)
                }
            }
            ;
            else
            {
                var formRepository = new FormRepository();
                cmsForm = formRepository.FindContentVersions(By.ContentId(new Guid(formIdRaw)), ContentEnvironment.Draft).Result.Single();
            }

            //var mgr = new EditingContextManager();
            //var ec = mgr.GetOrCreateEditingContext(cmsForm);

            //CmsPageLayoutEngine.ActivateAndPlaceContent(RuntimePlaceHolder, ec.AllContent,PageRenderMode.PageDesigner);

            //RuntimePlaceHolder.Controls.AddAt(0, new DropTarget(RuntimePlaceHolder, DropTargetDirective.Begin));
            //RuntimePlaceHolder.Controls.Add(new DropTarget(RuntimePlaceHolder, DropTargetDirective.End));

            //this.Page.Init += (x,y) => this.Page.EnableDesignerDependencies();
        }
コード例 #3
0
        public InternalLayout GetInternalLayout()
        {
            EnsureLayoutInitialized();

            var layout = new InternalLayout();

            layout.PlaceHolderIds.Add(nameof(surface));

            var formRepository = new FormRepository();

            _cmsForm = formRepository.FindContentVersions(By.ContentId(FormId), ContentEnvironment.Live).Result.Single();

            foreach (var item in _cmsForm.ChildNodes)              //todo: better way.
            {
                item.PlacementContentPlaceHolderId = nameof(surface);
            }

            layout.DefaultContent.AddRange(_cmsForm.ChildNodes.Select(x => PresentationElementHelpers.ToPresentationElement(x)));
            return(layout);
        }