private void AddContent(RenderingsPlaceHolder placementPlaceHolder, PageContent content,
                                    bool isFromLayout)
            {
                var activatedWidget = _contentActivator.ActivateCmsPageContent(content);

                activatedWidget.IsFromLayout = isFromLayout;

                var internalLayout = (activatedWidget as IHasInternalLayout)?.GetInternalLayout() ?? InternalLayout.Empty;

                foreach (var placeholderId in internalLayout.PlaceHolderIds)
                {
                    activatedWidget.PlaceHolders.Add(placeholderId, new RenderingsPlaceHolder(placeholderId));
                }


                var mergedContent   = new List <PageContent>();
                var placedByUser    = content.AllContent;
                var placedByDefault = internalLayout.DefaultContent;

                mergedContent.AddRange(placedByDefault);
                mergedContent.AddRange(placedByUser);

                if (mergedContent.Any())
                {
                    AddContent(activatedWidget, mergedContent, isFromLayout);
                }

                placementPlaceHolder.Renderings.Add(activatedWidget);
            }
        private void WriteSubstitution(PageCompositionElement pp, RenderAttributes renderAttributes, RenderingsPlaceHolder relevantPlaceHolder, ComposedHtmlWriter local)
        {
            //var renderDesignElements = !pp.IsFromLayout && renderAttributes.Mode == FragmentRenderMode.PageDesigner;

            //if (renderDesignElements)
            //{
            //    var dropTargetBegin = _pageDesignerHtmlFactory.CreateDropTargetBeginMarker(pp, relevantPlaceHolder);
            //    local.Append(dropTargetBegin);
            //}



            //foreach (var item in relevantPlaceHolder.Renderings)
            //    Render(item, renderAttributes, local);

            //if (renderDesignElements)
            //{
            //    var dropTargetEnd = _pageDesignerHtmlFactory.CreateDropTargetEndMarker();
            //    local.Append(dropTargetEnd);
            //}
        }
 public SubsitutionHtmlWriterDirective(RenderingsPlaceHolder ph)
 {
     _ph            = ph;
     _placeholderId = ph.Id;
 }
 public void AddLayoutContent(PageContent contentToActivate, RenderingsPlaceHolder page)
 {
     AddContent(page, contentToActivate, true);
 }