Beispiel #1
0
        private void AddLayoutControls(PageManager pageManager, PageTemplate template, LayoutControlDescription[] layoutControls)
        {
            if (layoutControls == null)
            {
                return;
            }

            var siblingId = Guid.Empty;

            for (int i = 0; i < layoutControls.Length; i++)
            {
                var description = layoutControls[i];
                var layout      = new GridControl();
                layout.Layout = description.Path;
                var ctrlData = pageManager.CreateControl <TemplateControl>(isBackendObject: false);
                ctrlData.ObjectType  = layout.GetType().FullName;
                ctrlData.PlaceHolder = "Contentplaceholder1";
                ctrlData.SiblingId   = siblingId;
                siblingId            = ctrlData.Id;
                ctrlData.Caption     = description.Caption;
                ctrlData.Description = description.Description;

                pageManager.ReadProperties(layout, ctrlData);
                pageManager.SetControlId(template, ctrlData);

                ctrlData.SetDefaultPermissions(pageManager);
                template.Controls.Add(ctrlData);
            }
        }
        /// <summary>
        /// Creates the mvcWidget control.
        /// </summary>
        /// <param name="pageManager">The page manager.</param>
        /// <param name="page">The page.</param>
        /// <param name="mvcWidget">The MVC widget.</param>
        private void CreateControl(PageManager pageManager, PageDraft page, Telerik.Sitefinity.Mvc.Proxy.MvcControllerProxy mvcWidget, string widgetCaption, string placeholder = "Body")
        {
            var draftControlDefault = pageManager.CreateControl <PageDraftControl>(mvcWidget, placeholder);

            draftControlDefault.Caption = widgetCaption;
            pageManager.SetControlDefaultPermissions(draftControlDefault);
            page.Controls.Add(draftControlDefault);

            pageManager.PublishPageDraft(page, CultureInfo.CurrentUICulture);
            pageManager.SaveChanges();
        }
        private void AddNewsWidgetToPage(Guid pageId, MvcControllerProxy mvcWidget)
        {
            PageManager pageManager = PageManager.GetManager();

            pageManager.Provider.SuppressSecurityChecks = true;
            var pageDataId = pageManager.GetPageNode(pageId).PageId;
            var page       = pageManager.EditPage(pageDataId, CultureInfo.CurrentUICulture);

            var draftControlDefault = pageManager.CreateControl <PageDraftControl>(mvcWidget, "Contentplaceholder1");

            draftControlDefault.Caption = "News";
            pageManager.SetControlDefaultPermissions(draftControlDefault);
            page.Controls.Add(draftControlDefault);

            pageManager.PublishPageDraft(page, CultureInfo.CurrentUICulture);
            pageManager.SaveChanges();
        }
Beispiel #4
0
        public static PageDraftControl CreateLayoutControl(PageManager manager, string placeHolder, string caption, string layoutResource)
        {
            var pageControl = manager.CreateControl <PageDraftControl>();

            pageControl.Caption    = caption;
            pageControl.ObjectType = typeof(LayoutControl).FullName;

            pageControl.PlaceHolder     = placeHolder;
            pageControl.IsLayoutControl = true;
            manager.SetControlDefaultPermissions(pageControl);

/*			var prop = manager.CreateProperty();
 *                      prop.Name = "Layout";
 *                      prop.Value = layoutResource;
 *                      pageControl.Properties.Add(prop);*/

            return(pageControl);
        }
Beispiel #5
0
        /// <summary>
        /// Creates the mvcWidget control.
        /// </summary>
        /// <param name="pageManager">The page manager.</param>
        /// <param name="page">The page.</param>
        /// <param name="mvcWidget">The MVC widget.</param>
        private void CreateControl(PageManager pageManager, PageDraft page, Telerik.Sitefinity.Mvc.Proxy.MvcControllerProxy mvcWidget, string widgetCaption, string placeholder = "Body")
        {
            var draftControlDefault = pageManager.CreateControl <PageDraftControl>(mvcWidget, placeholder);

            draftControlDefault.Caption = widgetCaption;
            pageManager.SetControlDefaultPermissions(draftControlDefault);
            var firstControl = page.Controls.FirstOrDefault(c => c.PlaceHolder == placeholder && c.SiblingId == Guid.Empty);

            if (firstControl != null)
            {
                draftControlDefault.SiblingId = Guid.Empty;
                firstControl.SiblingId        = draftControlDefault.Id;
            }

            page.Controls.Add(draftControlDefault);

            pageManager.PublishPageDraft(page, CultureInfo.CurrentUICulture);
            pageManager.SaveChanges();
        }
Beispiel #6
0
        /// <summary>
        /// Adds Mvc widget to existing page
        /// </summary>
        /// <param name="pageId"></param>
        /// <param name="controllerType"></param>
        /// <param name="widgetName"></param>
        /// <param name="placeHolderId"></param>
        public void AddMvcWidgetToPage(Guid pageId, string controllerType, string widgetName, string placeHolderId)
        {
            PageManager pageManager = PageManager.GetManager();

            pageManager.Provider.SuppressSecurityChecks = true;
            var pageDataId = pageManager.GetPageNode(pageId).PageId;
            var page       = pageManager.EditPage(pageDataId, CultureInfo.CurrentUICulture);

            var mvcWidget = new Telerik.Sitefinity.Mvc.Proxy.MvcControllerProxy();

            mvcWidget.ControllerName = controllerType;

            var draftControlDefault = pageManager.CreateControl <PageDraftControl>(mvcWidget, placeHolderId);

            draftControlDefault.Caption = widgetName;

            pageManager.SetControlDefaultPermissions(draftControlDefault);
            page.Controls.Add(draftControlDefault);

            pageManager.PublishPageDraft(page, CultureInfo.CurrentUICulture);
            pageManager.SaveChanges();
        }
Beispiel #7
0
        public static void Create()
        {
            PageManager pageMgr = PageManager.GetManager();

            pageMgr.Provider.SuppressSecurityChecks = true;

            PageNode shellPage = pageMgr.GetPageNodes().Where(page => page.RootNodeId == SiteInitializer.BackendRootNodeId && page.Title == "Shell" && !page.IsDeleted).FirstOrDefault();

            if (shellPage == null)
            {
                var      pageId = Guid.NewGuid();
                PageNode parent = pageMgr.GetPageNodes().Where(page => page.RootNodeId == SiteInitializer.BackendRootNodeId && page.Title == "$Resources: PageResources,ToolsNodeTitle").FirstOrDefault();
                if (parent == null)
                {
                    parent = pageMgr.GetPageNodes().Where(page => page.RootNodeId == SiteInitializer.BackendRootNodeId && page.Title == "Sitefinity").FirstOrDefault();
                }

                PageTemplate template = pageMgr.GetTemplates().Where(t => t.Title == "Default Backend Template").FirstOrDefault();

                PageNode pageNode = pageMgr.CreatePage(parent, pageId, NodeType.Standard);
                PageData pageData = pageNode.GetPageData();

                pageData.Template = template;
                pageData.Culture  = Thread.CurrentThread.CurrentCulture.ToString();
                String pageName = "Shell";
                pageData.HtmlTitle             = pageName;
                pageNode.Name                  = pageName;
                pageNode.Description           = pageName;
                pageNode.Title                 = pageName;
                pageNode.UrlName               = "Shell";
                pageNode.ShowInNavigation      = true;
                pageNode.DateCreated           = DateTime.UtcNow;
                pageNode.LastModified          = DateTime.UtcNow;
                pageNode.ApprovalWorkflowState = "Published";

                PageDraft draft = pageMgr.EditPage(pageData.Id);

                // Add layout
//				var contentPlaceholder = GetContentPlaceholderId(pageData);
//				var contentCaption = "LayoutControlInContentPlaceholder";
//				AddLayoutControlToPage(pageId, contentPlaceholder, contentCaption, "");

                //
                var ctrl_css = new CssEmbedControl();
                ctrl_css.CustomCssCode = @"
	div.console {
		word-wrap: break-word;
	}
	div.console {
		padding-left: 10px;
		font-size: 14px;
		margin-top: 1em;
	}

		div.console div.jquery-console-inner {
			width: 1200px;
			height: 800px;
			background: #efefef;
			padding: 0.5em;
			overflow: auto;
		}

		div.console div.jquery-console-prompt-box {
			color: #444;
			font-family: monospace;
		}

		div.console div.jquery-console-focus span.jquery-console-cursor {
			background: #333;
			color: #eee;
			font-weight: bold;
		}

		div.console div.jquery-console-message-error {
			color: #ef0505;
			font-family: sans-serif;
			font-weight: bold;
			padding: 0.1em;
		}

		div.console div.jquery-console-message-success {
			color: #187718;
			font-family: monospace;
			padding: 0.1em;
		}

		div.console span.jquery-console-prompt-label {
			font-weight: bold;
		}
					"                    ;
                var pageControl = pageMgr.CreateControl <PageDraftControl>(ctrl_css, "Content");
                pageControl.Caption = "Style";
                pageMgr.SetControlDefaultPermissions(pageControl);
                draft.Controls.Add(pageControl);

                var ctrl_js0 = new JavaScriptEmbedControl();
                ctrl_js0.Url        = "https://code.jquery.com/jquery-2.1.1.min.js";
                pageControl         = pageMgr.CreateControl <PageDraftControl>(ctrl_js0, "Content");
                pageControl.Caption = "JavaScript 0";
                pageMgr.SetControlDefaultPermissions(pageControl);
                draft.Controls.Add(pageControl);

                var ctrl_js2 = new JavaScriptEmbedControl();
                ctrl_js2.ScriptEmbedPosition  = Telerik.Sitefinity.Web.UI.PublicControls.Enums.ScriptEmbedPosition.InPlace;
                ctrl_js2.CustomJavaScriptCode = @"
	var list = '';
	var root = '';
	var resource = 'pages';
	var site = '';
	var provider = '';
	var controller;
	$(document).ready(function () {
		var console = $('.console');
		controller = console.console({
			promptLabel: 'Pages> ',
			autofocus: true,
			completeHandle: function (promptText) {
				promptText = promptText.trim();
				if (promptText == '') return;
				var words = promptText.split(' ');
				var keyword = words[words.length - 1];
				var len = keyword.length;
				return list.filter(function (elt) { return elt.toLowerCase().startsWith(keyword.toLowerCase()); })
						   .map(function (elt) { return elt.substring(len, 36); });
			},
			cols: 80,
			commandValidate: function (line) {
				if (line == '') return false;
				else return true;
			},
			commandHandle: function (line, report) {
				$.ajax({
					url: '/Sitefinity/Services/ShellModule/ShellService.svc/Command', data: { root: root, rsc: resource, cmd: line, site: site, provider:provider },
					success: function (data) {
						if (data.response == undefined && data.indexOf('Temporarily unavailable due to maintenance') >= 0) {
							report([{ msg: 'Site is being restarted', className: 'jquery-console-message-error' }]);
							return;
						}
						if (data.response != '') list = data.response.split('\n');
						if (data.path != '') controller.promptLabel = data.path;
						if (data.root != '') root = data.root;
						if (data.resource != '') resource = data.resource;
						if (data.site != '') site = data.site;
						provider = data.provider;
						if (data.error != '') report([{ msg: data.error, className: 'jquery-console-message-error' }]);
						if (data.response != '' || data.error == '') report([{ msg: data.response, className: 'jquery-console-message-success' }]);
					},
					error: function (xhr, ajaxOptions, thrownError) {
						report([{ msg: 'Error: ' + xhr.status + '\n' + thrownError, className: 'jquery-console-message-error' }]);
					}
				});
			},
			animateScroll: true,
			promptHistory: true,
		});
	});
				"                ;
                pageControl         = pageMgr.CreateControl <PageDraftControl>(ctrl_js2, "Content");
                pageControl.Caption = "JavaScript 2";
                pageMgr.SetControlDefaultPermissions(pageControl);
                draft.Controls.Add(pageControl);

                //
                var ctrl_js1 = new JavaScriptEmbedControl();
                ctrl_js1.CustomJavaScriptCode = @"!function(e){var n=!!~navigator.userAgent.indexOf("" AppleWebKit/"");e.fn.console=function(o){function t(){N=0,X="""",F=0,v(),O=e('<div class=""jquery-console-prompt-box""></div>');var n=e('<span class=""jquery-console-prompt-label""></span>'),o=U.continuedPrompt?B:U.promptLabel;O.append(n.text(o).show()),n.html(n.html().replace("" "",""&nbsp;"")),P=e('<span class=""jquery-console-prompt""></span>'),O.append(P),R.append(O),H()}function r(e){return(e.keyCode==L.tab||192==e.keyCode)&&e.altKey}function s(e){if(0!=E.length){(F+=e)<0?F=E.length:F>E.length&&(F=0);X=0==F?Y:E[F-1],o.historyPreserveColumn?X.length<N+1?N=X.length:0==N&&(N=X.length):N=X.length,H()}}function c(){s(-1)}function i(){s(1)}function a(e){E.push(e),Y=""""}function l(){return N<X.length&&(X=X.substring(0,N)+X.substring(N+1),Y=X,!0)}function u(){l()&&H()}function f(){R.children("".jquery-console-prompt-box, .jquery-console-message"").remove(),U.report("" ""),U.promptText(""""),U.focus()}function p(){var e=jQuery.fn.jquery.split("".""),n=parseInt(e[0]),o=parseInt(e[1]);1==n&&o>6||n>1?R.prop({scrollTop:R.prop(""scrollHeight"")}):R.attr({scrollTop:R.attr(""scrollHeight"")})}function d(){""function""==typeof o.cancelHandle&&o.cancelHandle()}function m(){if(""function""==typeof o.commandHandle){h(),a(X);var e=X;U.continuedPrompt?Z?Z+=""\n""+X:Z=X:Z=void 0,Z&&(e=Z);var n=o.commandHandle(e,function(e){g(e)});U.continuedPrompt&&!Z&&(Z=X),""boolean""==typeof n?n?g():g(""Command failed."",""jquery-console-message-error""):""string""==typeof n?g(n,""jquery-console-message-success""):""object""==typeof n&&n.length?g(n):U.continuedPrompt&&g()}}function h(){J=!1}function v(){J=!0}function g(n,o){if(N=-1,H(),""string""==typeof n)b(n,o);else if(e.isArray(n))for(var r in n){var s=n[r];b(s.msg,s.className)}else R.append(n);t()}function y(e,n){var o=X;O.remove(),g(e,n),U.promptText(o)}function b(n,o){var t=e('<div class=""jquery-console-message""></div>');o&&t.addClass(o),t.filledText(n).hide(),R.append(t),t.show()}function C(e){return N+e>=0&&N+e<=X.length&&(N+=e,!0)}function j(){return!!C(1)&&(H(),!0)}function x(){return!!C(-1)&&(H(),!0)}function q(){C(-N)&&H()}function T(){C(X.length-N)&&H()}function w(e){if(""string""==typeof e){var n=e.charCodeAt();return n>=""A"".charCodeAt()&&n<=""Z"".charCodeAt()||n>=""a"".charCodeAt()&&n<=""z"".charCodeAt()||n>=""0"".charCodeAt()&&n<=""9"".charCodeAt()}return!1}function A(){if(""function""==typeof o.completeHandle){var e=o.completeHandle(X),n=e.length;if(1===n)U.promptText(X+e[0]);else if(n>1&&o.cols){for(var t=X,r=0,s=0;s<n;s++)r=Math.max(r,e[s].length);r+=2;var c=Math.floor(o.cols/r),i="""",a=0;for(s=0;s<n;s++){var l=e[s];i+=e[s];for(var u=l.length;u<r;u++)i+="" "";++a>=c&&(i+=""\n"",a=0)}g(i,""jquery-console-message-value""),U.promptText(t)}}}function I(){""function""==typeof o.completeIssuer&&o.completeIssuer(X)}function k(e,n){var t=n.length;if(1===t)U.promptText(e+n[0]);else if(t>1&&o.cols){for(var r=e,s=0,c=0;c<t;c++)s=Math.max(s,n[c].length);s+=2;var i=Math.floor(o.cols/s),a="""",l=0;for(c=0;c<t;c++){var u=n[c];a+=n[c];for(var f=u.length;f<s;f++)a+="" "";++l>=i&&(a+=""\n"",l=0)}g(a,""jquery-console-message-value""),U.promptText(r)}}function H(){var e=X,n="""";if(N>0&&""""==e)n=z;else if(N==X.length)n=K(e)+z;else{var o=e.substring(0,N),t=e.substring(N,N+1);t&&(t='<span class=""jquery-console-cursor"">'+K(t)+""</span>"");var r=e.substring(N+1);n=K(o)+t+K(r)}P.html(n),p()}function K(e){return e.replace(/&/g,""&amp;"").replace(/</g,""&lt;"").replace(/</g,""&lt;"").replace(/ /g,""&nbsp;"").replace(/\n/g,""<br />"")}var L={37:x,39:j,38:c,40:i,8:function(){C(-1)&&(l(),H())},46:u,35:T,36:q,13:function(){var e=X;if(""function""==typeof o.commandValidate){var n=o.commandValidate(e);1==n||0==n?n&&m():g(n,""jquery-console-message-error"")}else m()},18:function(){},9:function(){""function""==typeof o.completeHandle?A():I()}},M={65:q,69:T,68:u,78:i,80:c,66:x,70:j,75:function(){for(;l();)H()},76:f,85:function(){U.promptText("""")}};o.ctrlCodes&&e.extend(M,o.ctrlCodes);var O,P,S={70:function(){for(;N<X.length&&!w(X[N])&&j(););for(;N<X.length&&w(X[N])&&j(););},66:function(){for(;N-1>=0&&!w(X[N-1])&&x(););for(;N-1>=0&&w(X[N-1])&&x(););},68:function(){for(;N<X.length&&!w(X[N]);)l(),H();for(;N<X.length&&w(X[N]);)l(),H()}},W={13:function(){var e=""\n""+X.split(""\n"").slice(-1)[0].match(/^(\s*)/g)[0];X+=e,C(e.length),H()}},z='<span class=""jquery-console-cursor"">&nbsp;</span>',Q=e(this),R=e('<div class=""jquery-console-inner""></div>'),V=e('<textarea autocomplete=""off"" autocorrect=""off"" autocapitalize=""off"" spellcheck=""false"" class=""jquery-console-typer""></textarea>'),B=o&&o.continuedPromptLabel?o.continuedPromptLabel:""> "",N=0,X="""",Y="""",Z="""",D=void 0===o.fadeOnReset||o.fadeOnReset,E=[],F=0,G=0,J=!0,U={};U.promptLabel=o&&o.promptLabel?o.promptLabel:""> "",Q.append(R),R.append(V),V.css({position:""absolute"",top:0,left:""-9999px""}),o.welcomeMessage&&b(o.welcomeMessage,""jquery-console-welcome""),t(),o.autofocus&&(R.addClass(""jquery-console-focus""),V.focus(),setTimeout(function(){R.addClass(""jquery-console-focus""),V.focus()},100)),U.inner=R,U.typer=V,U.scrollToBottom=p,U.report=y,U.showCompletion=k,U.clearScreen=f,U.reset=function(){var n=void 0!==o.welcomeMessage,r=function(){R.find(""div"").each(function(){n?n=!1:e(this).remove()})};D?R.parent().fadeOut(function(){r(),t(),R.parent().fadeIn($)}):(r(),t(),$())};var $=function(){R.addClass(""jquery-console-focus""),V.focus()};return U.focus=function(){$()},U.notice=function(n,o){var t=e('<div class=""notice""></div>').append(e(""<div></div>"").text(n)).css({visibility:""hidden""});Q.append(t);var r=!0;if(""fadeout""==o)setTimeout(function(){t.fadeOut(function(){t.remove()})},4e3);else if(""prompt""==o){var s=e('<br/><div class=""action""><a href=""javascript:"">OK</a><div class=""clear""></div></div>');t.append(s),r=!1,s.click(function(){t.fadeOut(function(){t.remove(),R.css({opacity:1})})})}var c=t.height();return t.css({height:""0px"",visibility:""visible""}).animate({height:c+""px""},function(){r||R.css({opacity:.5})}),t.css(""cursor"",""default""),t},Q.click(function(){return!window.getSelection().toString()&&(R.addClass(""jquery-console-focus""),R.removeClass(""jquery-console-nofocus""),n?V.focusWithoutScrolling():V.css(""position"",""fixed"").focus(),p(),!1)}),V.blur(function(){R.removeClass(""jquery-console-focus""),R.addClass(""jquery-console-nofocus"")}),V.bind(""paste"",function(e){V.val(""""),setTimeout(function(){V.consoleInsert(V.val()),V.val("""")},0)}),V.keydown(function(e){G=0;var n=e.keyCode;if(e.ctrlKey&&67==n)return G=n,d(),!1;if(J){if(e.shiftKey&&n in W)return G=n,W[n](),!1;if(e.altKey&&n in S)return G=n,S[n](),!1;if(e.ctrlKey&&n in M)return G=n,M[n](),!1;if(n in L)return G=n,L[n](),!1}}),V.keypress(function(e){var t=e.keyCode||e.which;if(r(e))return!1;if((e.ctrlKey||e.metaKey)&&""v""==String.fromCharCode(t).toLowerCase())return!0;if(J&&G!=t&&t>=32){if(G)return!1;(void 0===o.charInsertTrigger||""function""==typeof o.charInsertTrigger&&o.charInsertTrigger(t,X))&&V.consoleInsert(t)}return!n&&void 0}),V.consoleInsert=function(e){var n=""number""==typeof e?String.fromCharCode(e):e,o=X.substring(0,N),t=X.substring(N);X=o+n+t,C(n.length),Y=X,H()},U.promptText=function(e){return""string""==typeof e&&(N=(X=e).length,H()),X},U},e.fn.filledText=function(n){return e(this).text(n),e(this).html(e(this).html().replace(/\t/g,""&nbsp;&nbsp;"").replace(/\n/g,""<br/>"")),this},e.fn.focusWithoutScrolling=function(){var n=window.scrollX,o=window.scrollY;e(this).focus(),window.scrollTo(n,o)}}(jQuery);";
                ctrl_js1.ScriptEmbedPosition  = Telerik.Sitefinity.Web.UI.PublicControls.Enums.ScriptEmbedPosition.InPlace;
                pageControl         = pageMgr.CreateControl <PageDraftControl>(ctrl_js1, "Content");
                pageControl.Caption = "JavaScript 1";
                pageMgr.SetControlDefaultPermissions(pageControl);
                draft.Controls.Add(pageControl);

                // Add content block
                var cb = new ContentBlock();
                cb.Html             = "<div class=\"console\"></div><br><br>";
                pageControl         = pageMgr.CreateControl <PageDraftControl>(cb, "Content");
                pageControl.Caption = "Shell";
                pageMgr.SetControlDefaultPermissions(pageControl);
                draft.Controls.Add(pageControl);

                // Saves the page
                var master = pageMgr.PagesLifecycle.CheckIn(draft);
                pageMgr.PagesLifecycle.Publish(master);

                pageMgr.SaveChanges();
            }
        }
        /// <summary>
        /// Creates the mvcWidget control.
        /// </summary>
        /// <param name="pageManager">The page manager.</param>
        /// <param name="page">The page.</param>
        /// <param name="mvcWidget">The MVC widget.</param>
        private void CreateControl(PageManager pageManager, PageDraft page, Telerik.Sitefinity.Mvc.Proxy.MvcControllerProxy mvcWidget, string widgetCaption, string placeholder = "Body")
        {
            var draftControlDefault = pageManager.CreateControl<PageDraftControl>(mvcWidget, placeholder);
            draftControlDefault.Caption = widgetCaption;
            pageManager.SetControlDefaultPermissions(draftControlDefault);
            page.Controls.Add(draftControlDefault);

            pageManager.PublishPageDraft(page, CultureInfo.CurrentUICulture);
            pageManager.SaveChanges();
        }
        private void AddLayoutControls(PageManager pageManager, PageTemplate template, LayoutControlDescription[] layoutControls)
        {
            if (layoutControls == null)
                return;

            var siblingId = Guid.Empty;
            for (int i = 0; i < layoutControls.Length; i++)
            {
                var description = layoutControls[i];
                var layout = new GridControl();
                layout.Layout = description.Path;
                var ctrlData = pageManager.CreateControl<TemplateControl>(isBackendObject: false);
                ctrlData.ObjectType = layout.GetType().FullName;
                ctrlData.PlaceHolder = "Contentplaceholder1";
                ctrlData.SiblingId = siblingId;
                siblingId = ctrlData.Id;
                ctrlData.Caption = description.Caption;
                ctrlData.Description = description.Description;

                pageManager.ReadProperties(layout, ctrlData);
                pageManager.SetControlId(template, ctrlData);

                ctrlData.SetDefaultPermissions(pageManager);
                template.Controls.Add(ctrlData);
            }
        }
        /// <summary>
        /// Registers the template.
        /// </summary>
        private void RegisterTemplate()
        {
            var present = this.pageManager.CreatePresentationItem <TemplatePresentation>();

            present.DataType = Presentation.HtmlDocument;
            present.Name     = "master";
            var resName = "Telerik.Sitefinity.Resources.Pages.Frontend.aspx";

            present.Data = ControlUtilities.GetTextResource(resName, Config.Get <ControlsConfig>().ResourcesAssemblyInfo);

            pageTemplate.MasterPage = string.Concat("~/App_Data/Sitefinity/WebsiteTemplates/", pageTemplate.Name, "/App_Master/page.master");

            for (int i = 0; i < templateobject.Layout.placeholders.Length; i++)
            {
                var placeholder = templateobject.Layout.placeholders[i];

                for (int j = 0; j < placeholder.Layoutwidget.Columns.Length; j++)
                {
                    var column = placeholder.Layoutwidget.Columns[j];

                    var widget = column.Widget;
                    if (widget.Type != null)
                    {
                        ControlData ctrlData = null;
                        if (widget.Type.ToLower() == "content block")
                        {
                            ContentBlockBase newContentBlock = new ContentBlockBase();
                            newContentBlock.Html               = widget.Properties.Text;
                            newContentBlock.CssClass           = widget.Cssclass;
                            newContentBlock.LayoutTemplatePath = "~/SFRes/Telerik.Sitefinity.Resources.Templates.Backend.GenericContent.ContentBlock.ascx";

                            var templateContentBlock = pageManager.CreateControl <Telerik.Sitefinity.Pages.Model.TemplateControl>(newContentBlock, widget.SfID);
                            templateContentBlock.Caption = "Content Block";

                            pageTemplate.Controls.Add(templateContentBlock);
                            ctrlData = templateContentBlock;
                        }
                        else if (widget.Type.ToLower() == "image")
                        {
                            ImageControl newImage = new ImageControl();
                            newImage.LayoutTemplatePath = "~/SFRes/Telerik.Sitefinity.Resources.Templates.PublicControls.ImageControl.ascx";
                            newImage.CssClass           = widget.Cssclass;
                            newImage.ImageId            = GetImageId(widget.Properties.Filename, pageTemplate.Name);

                            var templateImageControl = pageManager.CreateControl <Telerik.Sitefinity.Pages.Model.TemplateControl>(newImage, widget.SfID);
                            templateImageControl.Caption = "Image";

                            pageTemplate.Controls.Add(templateImageControl);
                            ctrlData = templateImageControl;
                        }
                        else if (widget.Type.ToLower() == "navigation")
                        {
                            string            type       = widget.Properties.Navigationtype;
                            NavigationControl navigation = new NavigationControl();

                            navigation.SelectionMode = PageSelectionModes.TopLevelPages;
                            NavigationModes navigationMode;

                            switch (type)
                            {
                            case "horizontalcontrol": navigationMode = NavigationModes.HorizontalSimple;
                                break;

                            case "horizontal2levelscontrol": navigationMode = NavigationModes.HorizontalDropDownMenu;
                                break;

                            case "tabscontrol": navigationMode = NavigationModes.HorizontalTabs;
                                break;

                            case "verticalcontrol": navigationMode = NavigationModes.VerticalSimple;
                                break;

                            case "treeviewcontrol": navigationMode = NavigationModes.VerticalTree;
                                break;

                            case "sitemapcontrol": navigationMode = NavigationModes.SiteMapInColumns;
                                break;

                            default: navigationMode = NavigationModes.HorizontalSimple;
                                break;
                            }

                            navigation.NavigationMode = navigationMode;
                            navigation.Skin           = widget.Cssclass;

                            var templateNavigationControl = pageManager.CreateControl <Telerik.Sitefinity.Pages.Model.TemplateControl>(navigation, widget.SfID);
                            templateNavigationControl.Caption = "Navigation";

                            pageTemplate.Controls.Add(templateNavigationControl);
                            ctrlData = templateNavigationControl;
                        }

                        var widgetCulture = this.GetCurrentLanguage();
                        pageManager.SetControlId(pageTemplate, ctrlData, widgetCulture);
                    }
                }

                //pageTemplate.Controls.Add(ctrlData);
            }

            pageTemplate.Category = Telerik.Sitefinity.Abstractions.SiteInitializer.CustomTemplatesCategoryId;
            pageManager.SaveChanges();

            // publish the template
            var draft  = pageManager.EditTemplate(pageTemplate.Id);
            var master = pageManager.TemplatesLifecycle.CheckOut(draft);

            master = pageManager.TemplatesLifecycle.CheckIn(master);
            pageManager.TemplatesLifecycle.Publish(master);
            pageManager.SaveChanges();
        }