コード例 #1
0
ファイル: addBind.ashx.cs プロジェクト: jiaping/JPCMS
        public void ProcessRequest(HttpContext context)
        {
            string result = "";

            context.Response.ContentType = "text/html";
            TemplateBindConfig bc = new TemplateBindConfig();

            bc.Handler = context.Request["handler"];
            bc.Mode    = context.Request["mode"];
            bc.Model   = context.Request["model"];
            string fileName   = context.Request["filename"];
            string skinFolder = GeneralConfigs.GetConfig().DefaultTemplateGroupFileName;

            skinFolder = skinFolder.Remove(skinFolder.Length - 4);
            try
            {
                TemplateHelper TemplateHelper = HelperFactory.Instance.GetHelper <TemplateHelper>();
                TemplateHelper.SaveTemplateBind(bc, skinFolder, fileName);
                if (We7.Framework.AppCtx.IsDemoSite)
                {
                    context.Response.Write("对不起,此演示站点您没有该操作权限!");
                }
                else
                {
                    context.Response.Write("0");
                }
            }
            catch (Exception ex)
            {
                context.Response.Write(ex.Message);
            }
        }
コード例 #2
0
        /// <summary>
        /// 获取模板绑定配置项列表
        /// </summary>
        /// <returns></returns>
        public List <TemplateBindConfig> GetTemplateBindConfigList()
        {
            XmlDocument doc      = new XmlDocument();
            XmlNodeList nodes    = null;
            string      typePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config");
            string      typeName = Path.Combine(typePath, "TemplateType.xml");

            doc.Load(typeName);
            nodes = doc.SelectNodes("/configuration/item");
            List <TemplateBindConfig> list = new List <TemplateBindConfig>();

            foreach (XmlNode nodeType in nodes)
            {
                string name  = nodeType.Attributes["name"].Value;
                string value = nodeType.Attributes["value"].Value;
                foreach (XmlNode subItem in nodeType.ChildNodes)
                {
                    TemplateBindConfig tbc = new TemplateBindConfig();
                    tbc.Handler     = value;
                    tbc.HandlerName = name;
                    string n = subItem.Attributes["name"].Value;
                    string v = subItem.Attributes["value"].Value;
                    tbc.Description = name + n;
                    tbc.Mode        = v;
                    tbc.ModeText    = n;
                    list.Add(tbc);
                }
            }
            return(list);
        }
コード例 #3
0
        /// <summary>
        /// 保存模板绑定项
        /// </summary>
        /// <param name="bc"></param>
        /// <param name="skinFolder"></param>
        /// <param name="templateFile"></param>
        public void SaveTemplateBind(TemplateBindConfig bc, string skinFolder, string templateFile)
        {
            if (bc != null)
            {
                string handler = bc.Handler;
                string mode    = bc.Mode;
                string model   = bc.Model;
                bc = GetTemplateConfigSentence(bc);

                SkinInfo          tg   = GetSkinInfo(skinFolder + ".xml");//读取模板信息
                SkinInfo.SkinItem item = new SkinInfo.SkinItem();
                Template          tp   = GetTemplate(templateFile);
                if (tp != null)
                {
                    item.TemplateText = tp.Name;
                    item.Name         = tp.Name;
                    item.Description  = tp.Description;
                    item.Template     = tp.FileName;
                    if (handler == "model" && !string.IsNullOrEmpty(model))
                    {
                        ModelInfo mi = ModelHelper.GetModelInfoByName(model);
                        if (mi != null)
                        {
                            item.C_Model     = model;
                            item.C_ModelText = mi.Label;
                        }
                        else
                        {
                            throw new Exception("没有找到模型的信息文件,请重建内容模型索引再试。");
                        }
                    }

                    item.Location     = mode;
                    item.LocationText = bc.HandlerName + bc.ModeText;
                    item.Tag          = "";
                    item.Type         = handler;
                    if (!HaveSameItem(item, tg))
                    {
                        tg.Items.Add(item);
                        string sentence = item.C_ModelText + item.LocationText;
                        string fn       = SaveSkinInfoAndPreviewFile(tg, Path.GetFileNameWithoutExtension(skinFolder));
                        CreateMapFileFromSkinInfo(tg);
                        RefreshOneTempplateBindText(tg, tp);
                    }
                    else
                    {
                        throw new Exception("对不起,已经存在相同的绑定项,不能重复增加!如想修改绑定项,请先删除旧的再试。");
                    }
                }
                else
                {
                    throw new Exception("无法保存!不存在模板文件“" + templateFile + "”!");
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// 删除模板指定项
        /// </summary>
        /// <param name="bc"></param>
        /// <param name="skinFolder"></param>
        /// <param name="fileName"></param>
        public void RemoveTemplateBind(TemplateBindConfig bc, string skinFolder, string fileName)
        {
            SkinInfo tg = GetSkinInfo(skinFolder + ".xml");//读取模板信息

            if (bc != null)
            {
                string handler = bc.Handler;
                string mode    = bc.Mode;
                string model   = bc.Model;

                foreach (SkinInfo.SkinItem item in tg.Items)
                {
                    SkinInfo.SkinItem skin = item;
                    skin = ConvertOldVersionToNew(item);
                    if (StringCompare(model, skin.C_Model) &&
                        StringCompare(mode, skin.Location) &&
                        StringCompare("", skin.Tag) &&
                        StringCompare(handler, skin.Type) &&
                        StringCompare(fileName, skin.Template))
                    {
                        tg.Items.Remove(skin);
                        break;
                    }
                }

                SaveSkinInfoAndPreviewFile(tg, Path.GetFileNameWithoutExtension(skinFolder));
                CreateMapFileFromSkinInfo(tg);
                Template t = GetTemplate(fileName, skinFolder);
                RefreshOneTempplateBindText(tg, t);
            }
            else
            {
                foreach (SkinInfo.SkinItem item in tg.Items)
                {
                    SkinInfo.SkinItem skin = item;
                    skin = ConvertOldVersionToNew(item);
                    if (StringCompare(fileName, skin.Template))
                    {
                        tg.Items.Remove(skin);
                        break;  //修正删除模板要删除两次的BUG。原因是集合修改后不能foreach,会有异常。Update By dl
                    }
                }
                SaveSkinInfoAndPreviewFile(tg, Path.GetFileNameWithoutExtension(skinFolder));
                CreateMapFileFromSkinInfo(tg);

                //清除模板列表缓存
                HttpContext Context = HttpContext.Current;
                string      key     = string.Format(TemplatesKeyID, skinFolder);
                Context.Cache.Remove(key);
            }
        }
コード例 #5
0
        /// <summary>
        /// 获取模板指定配置中文描述
        /// </summary>
        /// <param name="bc"></param>
        /// <returns></returns>
        public TemplateBindConfig GetTemplateConfigSentence(TemplateBindConfig bc)
        {
            if (bc.Handler == "site" && string.IsNullOrEmpty(bc.Mode))
            {
                bc.Mode = "home";
            }
            else if (string.IsNullOrEmpty(bc.Mode))
            {
                bc.Mode = "default";
            }

            XmlDocument doc      = new XmlDocument();
            XmlNodeList nodes    = null;
            string      typePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config");
            string      typeName = Path.Combine(typePath, "TemplateType.xml");

            doc.Load(typeName);
            nodes = doc.SelectNodes("/configuration/item");
            string sentence = "";

            foreach (XmlNode nodeType in nodes)
            {
                string name  = nodeType.Attributes["name"].Value;
                string value = nodeType.Attributes["value"].Value;
                if (value == bc.Handler)
                {
                    sentence       = name;
                    bc.HandlerName = name;
                    foreach (XmlNode subItem in nodeType.ChildNodes)
                    {
                        string n = subItem.Attributes["name"].Value;
                        string v = subItem.Attributes["value"].Value;
                        if (v == bc.Mode)
                        {
                            sentence      += n;
                            bc.ModeText    = n;
                            bc.Description = sentence;
                            break;
                        }
                    }
                    break;
                }
            }
            if (!string.IsNullOrEmpty(bc.Model))
            {
                ModelInfo mi = ModelHelper.GetModelInfoByName(bc.Model);
                bc.Description = mi.Label + bc.Description;
            }
            return(bc);
        }