protected void btn_Save_Click(object sender, EventArgs e) { int id = WS.RequestInt("id"); DataEntities ent = new DataEntities(); TemplatePage tp = new TemplatePage(); try { tp = (from l in ent.TemplatePage where l.id == id select l).First(); } catch { } tp.Content = txt_Content.Text.ToSqlEnCode(); tp.CreateWith = ddl_CreateWith.SelectedValue.ToInt32(); tp.FileName = txt_FileName.Text; tp.PageName = txt_pageName.Text; tp.TempVar = FCKeditor1.Text; if (tp.id <= 0) { ent.AddToTemplatePage(tp); } ent.SaveChanges(); ent.Dispose(); CreatePage.CreatePages(tp); Js.AlertAndChangUrl("保存成功!", "PageTemplateList.aspx"); }
public string Case_List(HttpContext context) { TemplatePage page = Cms.Plugins.GetPage <Main>("admin/case_list.html"); page.AddVariable("page", new PageVariable()); return(page.ToString()); }
public override void OnInitTemplatePage(EventArgs e) { if (!Author.ExistsPassedAuthor(BasePage.RequestString("authorname"))) { TemplatePage.WriteErrMsg("您要查看的作者不存在!", SiteConfig.SiteInfo.VirtualPath + "Default.aspx"); } }
public string BasicSetting(HttpContext context) { PluginPackAttribute attr = this._plugin.GetAttribute(); TemplatePage page = this._app.GetPage(this._plugin, "mg/basic_setting.html"); string url = String.Format("http://{0}/{1}.sh.aspx/serve", context.Request.Url.Host, attr.WorkIndent); string token = attr.Settings["Weixin_Token"] ?? String.Empty.RandomLetters(6); string appId = attr.Settings["Weixin_AppId"] ?? ""; string appSecret = attr.Settings["Weixin_AppSecret"] ?? ""; string appEncodeString = attr.Settings["Weixin_AppEncodeString"] ?? ""; string wlc = attr.Settings["Weixin_WelcomeMessage"] ?? ""; string enterMessage = attr.Settings["Weixin_EnterMessage"] ?? ""; string defaultRspMesssage = attr.Settings["Weixin_DefaultResponseMessage"] ?? ""; page.AddVariable("data", new { url = url, token = token, appId = appId, appSecret = appSecret, aes = appEncodeString, welcomeMessage = wlc, enterMessage = enterMessage, defaultRspMessage = defaultRspMesssage, }); return(page.ToString()); }
/// <summary> /// 呈现内容,默认不压缩 /// </summary> /// <param name="content"></param> /// <param name="data"></param> /// <param name="compress"></param> /// <returns></returns> public static string Render(string content, object data, bool compress) { TemplatePage page = new TemplatePage(null, data); page.TemplateContent = content; return(page.ToString()); }
/// <summary> /// Recursive method builds website master pages and pages. /// </summary> /// <param name="tenantId">Identifies website being built.</param> /// <param name="page">Used to store identifier of page that will be created.</param> /// <param name="templatePage">Template page.</param> /// <param name="templateElements">Maintains dictionary of template elements and their corresponding master element copies.</param> /// <param name="navigationPages">List of pages that should be shown on site navigation.</param> /// <param name="unitOfWork">Unit of work.</param> private void BuildWebsite(long tenantId, Page page, TemplatePage templatePage, Dictionary <ElementKeyValue, ElementKeyValue> templateElements, List <Page> navigationPages, IUnitOfWork unitOfWork) { // Get master page from template page MasterPage masterPage = GetMasterPageFromTemplatePage(tenantId, page, templatePage, templateElements, unitOfWork); // Create master page long masterPageId = _masterPageRepository.Create(masterPage, unitOfWork); // We do not create page instances of administration master pages - these are created on the fly as needed if (!masterPage.Administration) { // Create page based on master page page.PageId = _pageService.Create(tenantId, page.ParentPageId, masterPageId, null, unitOfWork); page.Name = masterPage.PageName; if (templatePage.ShowOnNavigation) { navigationPages.Add(page); } } // Recursively create child pages foreach (TemplatePage childTemplatePage in templatePage.ChildTemplatePages) { Page childPage = new Page { ParentPageId = page.PageId, ParentPage = page, TenantId = tenantId }; BuildWebsite(tenantId, childPage, childTemplatePage, templateElements, navigationPages, unitOfWork); } }
private void CheckIsAuthenticated() { if (!PEContext.Current.User.Identity.IsAuthenticated) { TemplatePage.WriteErrMsg("该页需要登录才能查看!", "User/Login.aspx"); } }
public override void OnInitTemplateInfo(EventArgs e) { string sourceName = BasePage.RequestString("copyfrom"); if (!Source.ExistsPassedSource(sourceName)) { TemplatePage.WriteErrMsg("指定的来源不存在!"); } string dynamicConfigTemplatePath = TemplatePage.GetDynamicConfigTemplatePath(Path.GetFileNameWithoutExtension(this.Page.Request.FilePath)); NameValueCollection values = new NameValueCollection(); values.Add("copyfrom", DataSecurity.FilterBadChar(sourceName)); if (!string.IsNullOrEmpty(dynamicConfigTemplatePath)) { TemplateInfo info = new TemplateInfo(); info.QueryList = values; info.PageName = TemplatePage.RebuildPageName(base.Request.Url.LocalPath, base.Request.QueryString); info.TemplateContent = Template.GetTemplateContent(dynamicConfigTemplatePath); info.RootPath = HttpContext.Current.Request.PhysicalApplicationPath; info.CurrentPage = DataConverter.CLng(base.Request.QueryString["page"], 1); info.PageType = 1; base.TemplateInfo = info; } else { TemplatePage.WriteErrMsg("您查看的来源未设置模板!", SiteConfig.SiteInfo.VirtualPath + "Default.aspx"); } }
private static void AddBoxForAcroField(TemplatePage page, PdfPage pdfPage, PdfAcroField field, int fieldNumber) { if (!field.Elements.ContainsKey("/Rect")) { return; } var rect = field.Elements["/Rect"] as PdfArray; // or PdfRectangle? if (rect is null) { return; } var name = $"Pdf field {fieldNumber}"; if (field.Elements.ContainsKey("/TU")) { if (field.Elements["/TU"] is PdfString description && !string.IsNullOrWhiteSpace(description.Value)) { name = Strings.CleanKeyName(description.Value.ReplaceAsciiCompatible()); } } AddTemplateBox(page, pdfPage, rect, name !); }
public void Inject(TemplatePage page) { if (page == null) { throw new ArgumentNullException(nameof(page)); } PropertyInfo[] properties = page.GetType().GetRuntimeProperties() .Where(p => { return (p.IsDefined(typeof(RazorInjectAttribute)) && p.GetIndexParameters().Length == 0 && !p.SetMethod.IsStatic); }).ToArray(); foreach (var property in properties) { Type memberType = property.PropertyType; object instance = services.GetRequiredService(memberType); FastPropertySetter setter = _propertyCache.GetOrAdd(property, new FastPropertySetter(property)); setter.SetValue(page, instance); } }
public string EditMenu(HttpContext context) { int pi = 0; int si = -1; string mi = context.Request["mi"]; if (mi.Contains("-")) { string[] arr = mi.Split('-'); pi = int.Parse(arr[0]) - 1; si = int.Parse(arr[1]) - 1; } else { pi = int.Parse(mi) - 1; } TemplatePage page = this._app.GetPage(this._plugin, "mg/menu_edit.html"); String entityJson = JsonConvert.SerializeObject(WeixinHelper.GetMenuNode(pi, si)); page.AddVariable("entity", entityJson); page.AddVariable("pi", pi); page.AddVariable("si", si); return(page.ToString()); }
public void TestCompileFunction() { var temp = @" $lang(home) $navigator() ${archive.data(视频)} <div> $categories('prod\,uct',{ <div class=""col-md-3 col-lg-2 col-sm-4""> {name} </div> }) </div> "; IDataContainer dc = new NormalDataContainer(); TemplatePage tp = new TemplatePage(dc); tp.TemplateHandleObject = new TemplateMock(); tp.OnPreInit += TemplateMock.CompliedTemplate; tp.OnBeforeCompile += (TemplatePage page, ref String content) => { var pageArchive = new PageArchive(new ArchiveDto()); page.AddVariable("archive", pageArchive); }; tp.SetTemplateContent(temp); var content = tp.Compile(); Console.WriteLine(content); }
/// <summary> /// 基类事件方法 初始模板信息 /// </summary> /// <param name="e"></param> public override void OnInitTemplateInfo(EventArgs e) { //创建首页页节点对象 NodeInfo cacheNodeById = Nodes.GetCacheNodeById(-2); if (cacheNodeById.IsCreateListPage) {///将正斜杠 (/) 追加到虚拟路径的末尾(如果尚不存在正斜杠) BasePage.ResponseRedirect(VirtualPathUtility.AppendTrailingSlash(base.Request.ApplicationPath) + cacheNodeById.ListHtmlPageName("0")); } //创建模板对象 TemplateInfo info2 = new TemplateInfo(); info2.QueryList = base.Request.QueryString; info2.PageName = TemplatePage.RebuildPageName(base.Request.Url.LocalPath, base.Request.QueryString); if (cacheNodeById.IsNull) { TemplatePage.WriteErrMsg("首页节点未找到"); } info2.TemplateContent = Template.GetTemplateContent(cacheNodeById.DefaultTemplateFile); info2.RootPath = HttpContext.Current.Request.PhysicalApplicationPath; info2.CurrentPage = DataConverter.CLng(base.Request.QueryString["page"], 1); info2.IsDynamicPage = true; //设置其模板信息 base.TemplateInfo = info2; }
/// <summary> /// 单独页面 /// </summary> /// <param name="pagename"></param> protected void Page(string pagename) { TemplatePage tp = TemplatePageView.Find(string.Format("PageName=N'{0}'", pagename)); Response.Clear(); Response.Write(GetStatisPage(tp.Id)); }
public string GenerateMessageBody(string template, object model) { string result = null; try { var engine = EngineFactory.CreateEmbedded(model.GetType()); //result = engine.ParseString(template, model); ITemplateSource source = new LoadedTemplateSource(template); ModelTypeInfo modelInfo = new ModelTypeInfo(model.GetType()); CompilationResult compiled = engine.Core.CompileSource(source, modelInfo); compiled.EnsureSuccessful(); TemplatePage page = engine.Activate(compiled.CompiledType); page.PageContext = new PageContext { ModelTypeInfo = modelInfo }; result = engine.RunTemplate(page, model); } catch (TemplateCompilationException tex) { throw new MessageGenerationException($"Error generating message from template! {tex.CompilationErrors.FirstOrDefault()}", tex); } catch (Exception ex) { throw new MessageGenerationException("Unexpected error generating message from template!", ex); } return(result); }
/// <summary> /// 返回模板内容 /// </summary> /// <param name="templateId"></param> /// <param name="pageFunc">对模板处理前操作,可以添加数据对象</param> public static string Require(string templateId, TemplatePageHandler pageFunc) { using (CmsTemplates tpl = new CmsTemplates()) { TemplatePage page = new TemplatePage(templateId); //if (data != null) //{ // page.AddDataObject(data); //} page.TemplateHandleObject = tpl; page.OnPreInit += PreHandler; page.OnPreRender += CompliedTemplate; //注册扩展的模板解析事件 if (OnPreRender != null) { page.OnPreRender += OnPreRender; } if (pageFunc != null) { pageFunc(page); } return(page.ToString()); } }
public string Export_Import(HttpContext context) { TemplatePage page = Cms.Plugins.GetPage <Main>("admin/export_import.html"); page.AddVariable("page", new PageVariable()); page.AddVariable("case", new { json = new object() }); return(page.ToString()); }
public string Export_Setup(HttpContext context) { TemplatePage page = Cms.Plugins.GetPage <Main>("admin/export_setup.html"); page.AddVariable("page", new PageVariable()); page.AddVariable("export", new { setup = ExportHandle.Setup(context.Request["portal"]) }); return(page.ToString()); }
private static string RepeatPath(TemplatePage page) { if (page.RepeatMode.DataPath == null) { return("<invalid reference>"); } return(string.Join(".", page.RepeatMode.DataPath)); }
public string Menu(HttpContext context) { TemplatePage page = this._app.GetPage(this._plugin, "mg/menu.html"); String menuJson = JsonConvert.SerializeObject(WeixinHelper.GetMenuTreeNode()); page.AddVariable("menu", menuJson); return(page.ToString()); }
public string ArticleItems(HttpContext context) { string resId = context.Request["res_id"]; TemplatePage page = this._app.GetPage(this._plugin, "mg/article_itemlist.html"); page.AddVariable("resId", resId); return(page.ToCompressedString()); }
public string Case_Gallery(HttpContext context) { int caseId = int.Parse(context.Request["caseId"]); TemplatePage page = Cms.Plugins.GetPage <Main>("admin/case_gallery.html"); page.AddVariable("page", new PageVariable()); page.AddVariable("case", new { Id = caseId }); return(page.ToString()); }
/// <summary> /// 单独页面 /// </summary> /// <param name="pagename"></param> protected void Page(string pagename) { DataEntities ent = new DataEntities(); TemplatePage tp = (from l in ent.TemplatePage where l.PageName == pagename select l).FirstOrDefault(); ent.Dispose(); Response.Clear(); Response.Write(GetStatisPage(tp.id)); }
public string GetPage(string title, string content, string version, DateTime dateGenerated) { return(TemplatePage .Replace("%PAGE_HEADER%", PageHeader) .Replace("%TITLE%", title + PageTitleSuffix) .Replace("%CONTENT%", content) .Replace("%VERSION%", version) .Replace("%DATE_GENERATED%", dateGenerated.ToString("dd-MMM-yyyy"))); }
public static TemplatePage RegistEventHandlers(TemplatePage page) { using (CmsTemplates tpl = new CmsTemplates()){ page.TemplateHandleObject = tpl; page.OnPreInit += PreHandler; page.OnPreRender += CompliedTemplate; return(page); } }
public string CreateTextRes(HttpContext context) { TemplatePage page = this._app.GetPage(this._plugin, "mg/text_res.html"); page.AddVariable("entity", "{Id:0}"); page.AddVariable("content", ""); return(page.ToString()); }
private void Main() { TemplatePage tp = new TemplatePage(); tp.TemplateContent = "$m=item KEY:${item.key} Note:${item.note}<br />${m.key}"; tp.AddVariable("item", new {Key = "Key", Note = "Note"}); var x = System.Web.HttpContext.Current.Items; string y = tp.ToString(); // return y; }
private async Task <ViewBufferTextWriter> RenderPageAsync( TemplatePage page, PageContext context, bool invokeViewStarts) { var writer = context.Writer as ViewBufferTextWriter; if (writer == null) { Debug.Assert(_bufferScope != null); // If we get here, this is likely the top-level page (not a partial) - this means // that context.Writer is wrapping the output stream. We need to buffer, so create a buffered writer. ViewBuffer buffer = new ViewBuffer(_bufferScope, page.Path, ViewBuffer.ViewPageSize); writer = new ViewBufferTextWriter(buffer, context.Writer.Encoding, _htmlEncoder, context.Writer); } else { // This means we're writing something like a partial, where the output needs to be buffered. // Create a new buffer, but without the ability to flush. ViewBuffer buffer = new ViewBuffer(_bufferScope, page.Path, ViewBuffer.ViewPageSize); writer = new ViewBufferTextWriter(buffer, context.Writer.Encoding); } // The writer for the body is passed through the ViewContext, allowing things like HtmlHelpers // and ViewComponents to reference it. var oldWriter = context.Writer; var oldFilePath = context.ExecutingFilePath; context.Writer = writer; context.ExecutingFilePath = page.Path; try { //Apply page specific callbacks first ExecutePageCallbacks(page, context.PrerenderCallbacks); //Apply engine-global callbacks ExecutePageCallbacks(page, PreRenderCallbacks.ToList()); if (invokeViewStarts) { // Execute view starts using the same context + writer as the page to render. await RenderViewStartsAsync(context); } await RenderPageCoreAsync(page, context); return(writer); } finally { context.Writer = oldWriter; context.ExecutingFilePath = oldFilePath; } }
public TemplatePage GetTemplatePage(string filePath, PluginPackAttribute attr) { string pluginDirPath = attr.WorkSpace; string cacheId = String.Concat("plugin", "_tpl_", attr.WorkIndent, filePath); string html = WebCtx.Current.Cache.Get(cacheId) as string; if (html == null) { //模板文件放在/plugins/com.spdepository/pages/下 string tplFilePath = pluginDirPath + filePath; try { using (TextReader tr = new StreamReader(tplFilePath)) { html = tr.ReadToEnd(); tr.Dispose(); } WebCtx.Current.Cache.Insert(cacheId, html, tplFilePath); } catch (Exception exc) { throw new Exception(exc.Message + ", File:" + tplFilePath); } } TemplatePage tpl = new TemplatePage(); tpl.TemplateContent = html; string pluginPath = this._pluginPath + attr.WorkIndent; tpl.AddVariable("os", new { version = FwCtx.Version.GetVersion(), domain = WebCtx.Current.Domain, ppath = pluginPath, fpath = this._fpath, mjs = this._shareJs, sjs = this._shareJs, scss = this._shareCss, mcss = this._shareCss }); tpl.AddVariable("plugin", new { path = pluginPath, indent = attr.WorkIndent, name = attr.Name }); return(tpl); }
public string CreateMenu(HttpContext context) { int pi = int.Parse(context.Request["pi"]) - 1; TemplatePage page = this._app.GetPage(this._plugin, "mg/menu_create.html"); String menuJson = JsonConvert.SerializeObject(WeixinHelper.GetMenuTreeNode()); page.AddVariable("menu", menuJson); page.AddVariable("pi", pi); return(page.ToString()); }
private void Main() { TemplatePage tp = new TemplatePage(); tp.TemplateContent = "$m=item KEY:${item.key} Note:${item.note}<br />${m.key}"; tp.AddVariable("item", new { Key = "Key", Note = "Note" }); var x = System.Web.HttpContext.Current.Items; string y = tp.ToString(); // return y; }
/// <summary> /// 显示400页面 /// </summary> /// <returns></returns> public void RenderNotfound(string message, TemplatePageHandler handler) { Response.StatusCode = 404; string html = null; try { TemplatePage tpl = new TemplatePage(String.Format("/{0}/notfound", this.CurrentSite.Tpl)); if (handler != null) { handler(tpl); } tpl.Render(); return; } catch { html = "File not found!"; } Response.Write(html); }
/// <summary> /// 保存到文件 /// </summary> /// <param name="path"></param> /// <param name="templateID"></param> /// <param name="data"></param> public static void Save(string path, string templateID, object data) { TemplatePage page = new TemplatePage(templateID, data); page.OnPreRender += PreHandler; page.OnPreRender += Spc.Template.MultLangCmsTemplates.CompliedTemplate; //注册扩展的模板解析事件 if (OnPreRender != null) page.OnPreRender += OnPreRender; page.SaveToFile(path); }
/// <summary> /// 返回模板内容 /// </summary> /// <param name="templateID"></param> /// <param name="data"></param> public static string Require(string templateID, object data) { TemplatePage page=new TemplatePage(templateID, data); page.TemplateHandleObject = new Spc.Template.MultLangCmsTemplates(); page.OnPreInit += PreHandler; page.OnPreRender += Spc.Template.MultLangCmsTemplates.CompliedTemplate; //注册扩展的模板解析事件 if (OnPreRender != null) page.OnPreRender += OnPreRender; return page.ToString() ; }
public void AddToTemplatePage(TemplatePage templatePage) { base.AddObject("TemplatePage", templatePage); }
public static TemplatePage CreateTemplatePage(int id) { TemplatePage templatePage = new TemplatePage(); templatePage.id = id; return templatePage; }
/// <summary> /// 返回模板内容 /// </summary> /// <param name="templateId"></param> /// <param name="pageFunc">对模板处理前操作,可以添加数据对象</param> public static string Require(string templateId,TemplatePageHandler pageFunc) { using (CmsTemplates tpl = new CmsTemplates()) { TemplatePage page = new TemplatePage(templateId); //if (data != null) //{ // page.AddDataObject(data); //} page.TemplateHandleObject = tpl; page.OnPreInit += PreHandler; page.OnPreRender += CompliedTemplate; //注册扩展的模板解析事件 if (OnPreRender != null) page.OnPreRender += OnPreRender; if (pageFunc != null) pageFunc(page); return page.ToString(); } }
public static TemplatePage RegistEventHandlers(TemplatePage page) { using (CmsTemplates tpl = new CmsTemplates()){ page.TemplateHandleObject = tpl; page.OnPreInit += PreHandler; page.OnPreRender += CompliedTemplate; return page; } }
/// <summary> /// 呈现内容,默认不压缩 /// </summary> /// <param name="content"></param> /// <param name="data"></param> /// <param name="compress"></param> /// <returns></returns> public static string Render(string content, object data,bool compress) { TemplatePage page = new TemplatePage(null,data); page.TemplateContent = content; return page.ToString(); }
/// <summary> /// 保存到文件 /// </summary> /// <param name="path"></param> /// <param name="templateId"></param> /// <param name="data"></param> public static void Save(string path, string templateId, object data,out string html) { TemplatePage page = new TemplatePage(templateId, data); page.OnPreRender += PreHandler; page.OnPreRender += CompliedTemplate; //注册扩展的模板解析事件 if (OnPreRender != null) page.OnPreRender += OnPreRender; page.SaveToFile(path,out html); }