示例#1
0
 /// <summary>
 /// 设置实例
 /// </summary>
 /// <param name="anInstance"></param>
 public static void SetInstance(TemplateMap anInstance)
 {
     if (anInstance != null)
     {
         instance = anInstance;
     }
 }
示例#2
0
        /// <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();
        }
示例#3
0
        /// <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);
        }
示例#4
0
 /// <summary>
 /// 获取模板地图实例
 /// </summary>
 /// <returns></returns>
 public static TemplateMap GetTemplateMap()
 {
     if (instance == null)
     {
         lock (lockHelper)
         {
             if (instance == null)
             {
                 instance = new TemplateMap();
             }
         }
     }
     return(instance);
 }
示例#5
0
        /// <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);
        }
示例#6
0
        /// <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));
            }
        }
示例#7
0
 /// <summary>
 /// 重置,清空实例
 /// </summary>
 public static void ResetInstance()
 {
     instance = null;
 }