/// <summary> /// 设置实例 /// </summary> /// <param name="anInstance"></param> public static void SetInstance(TemplateMap anInstance) { if (anInstance != null) { instance = anInstance; } }
/// <summary> /// 根据模板组文件生成模版地图 /// </summary> /// <param name="skinInfo"></param> public void CreateMapFileFromSkinInfo(SkinInfo skinInfo) { string templatesMapFile = HttpContext.Current.Server.MapPath("~/_skins/templates.map"); TemplateMap tm = new TemplateMap(templatesMapFile); tm.Maps.Clear(); tm.Maps = TemplateMap.CreateMapList(skinInfo.Items); TemplateMap.SaveToMapFile(tm.Maps, templatesMapFile); TemplateMap.ResetInstance(); }
/// <summary> /// 根据模板项列表生成地图列表 /// </summary> /// <param name="skinItems"></param> /// <returns></returns> public static ArrayList CreateMapList(List <SkinInfo.SkinItem> skinItems) { ChannelHelper ChannelHelper = HelperFactory.Instance.GetHelper <ChannelHelper>(); ArrayList mapList = new ArrayList(); List <string> urlNames = new List <string>(); foreach (SkinInfo.SkinItem item in skinItems) { if (item.Type == "栏目" || item.Type == "channel") { if (!string.IsNullOrEmpty(item.C_Model)) { List <Channel> channels = ChannelHelper.GetChannelByModelName(item.C_Model); foreach (Channel ch in channels) { string url = TemplateMap.GenerateMapUrl(ch.FullUrl, item.Location); mapList.Add(new TemplateMap.MapItem(url, item.Template)); urlNames.Add(url); } } else { string url = TemplateMap.GenerateMapUrl("/*/", item.Location); mapList.Add(new TemplateMap.MapItem(url, item.Template)); urlNames.Add(url); } if (!string.IsNullOrEmpty(item.Tag)) { List <Channel> channels = ChannelHelper.GetChannelsByTags(item.Tag.Split(new string[] { ",", "," }, StringSplitOptions.RemoveEmptyEntries)); foreach (Channel ch in channels) { string url = TemplateMap.GenerateMapUrl(ch.FullUrl, item.Location); if (!urlNames.Contains(url)) { mapList.Add(new TemplateMap.MapItem(url, item.Template)); urlNames.Add(url); } } } } else if (item.Type == "站点" || item.Type == "site") { string url = TemplateMap.GenerateMapUrl("/", item.Location); if (!urlNames.Contains(url)) { mapList.Add(new TemplateMap.MapItem(url, item.Template)); urlNames.Add(url); } } } return(mapList); }
/// <summary> /// 获取模板地图实例 /// </summary> /// <returns></returns> public static TemplateMap GetTemplateMap() { if (instance == null) { lock (lockHelper) { if (instance == null) { instance = new TemplateMap(); } } } return(instance); }
/// <summary> /// 获取模板可用来预览的url地址列表 /// </summary> /// <param name="template">模板</param> /// <param name="skinFolder">模板组目录</param> /// <returns></returns> public List <string> GetPrevewUrls(string template, string skinFolder) { List <string> urls = TemplateMap.GetUrlListFromTemplate(template); List <string> realUrls = new List <string>(); if (urls.Count == 0) { string skinfile = Path.Combine(HttpContext.Current.Server.MapPath("/" + GeneralConfigs.GetConfig().SiteSkinsBasePath + "/"), skinFolder + ".xml"); if (File.Exists(skinfile)) { SkinInfo data = GetSkinInfo(skinfile); ArrayList maplist = TemplateMap.CreateMapListFromTemplate(template, data); foreach (TemplateMap.MapItem map in maplist) { urls.Add(map.Url); } } } realUrls = CreateUrlsFromMaps(urls); return(realUrls); }
/// <summary> /// 根据配置选择不同的模板选择器 /// </summary> /// <param name="ColumnMode"></param> /// <param name="ColumnID"></param> /// <param name="SearchWord"></param> /// <param name="SeSearchWord"></param> /// <returns></returns> public string GetTemplateByHandlers(string ColumnMode, string ColumnID, string SearchWord, string SeSearchWord) { GeneralConfigInfo gi = GeneralConfigs.GetConfig(); if (gi.StartTemplateMap) { HttpContext Context = HttpContext.Current; string channelUrl = We7Helper.GetChannelUrlFromUrl(Context.Request.RawUrl); string templatePath = We7Helper.GetParamValueFromUrl(Context.Request.RawUrl, "template"); if (string.IsNullOrEmpty(templatePath)) { if (channelUrl == "/" && ColumnMode == "") { templatePath = TemplateMap.GetTemplateFromMap("welcome", channelUrl); if (string.IsNullOrEmpty(templatePath)) { templatePath = templatePath = TemplateMap.GetTemplateFromMap("home", channelUrl); } } else { templatePath = TemplateMap.GetTemplateFromMap(ColumnMode, channelUrl); } if (!string.IsNullOrEmpty(templatePath)) { GeneralConfigInfo si = GeneralConfigs.GetConfig(); templatePath = GetTemplatePath(si.DefaultTemplateGroupFileName, templatePath); } } return(templatePath); } else { return(GetThisPageTemplate(ColumnMode, ColumnID, SearchWord, SeSearchWord)); } }
/// <summary> /// 重置,清空实例 /// </summary> public static void ResetInstance() { instance = null; }