예제 #1
0
 private void ShowInfo(string _urlName)
 {
     Rain.Model.url_rewrite info = new Rain.BLL.url_rewrite().GetInfo(_urlName);
     this.txtName.Text             = info.name;
     this.txtName.ReadOnly         = true;
     this.ddlType.SelectedValue    = info.type;
     this.ddlChannel.SelectedValue = info.channel;
     this.txtPage.Text             = info.page;
     this.txtInherit.Text          = info.inherit;
     this.txtTemplet.Text          = info.templet;
     this.txtPageSize.Text         = info.pagesize;
     this.rptList.DataSource       = (object)info.url_rewrite_items;
     this.rptList.DataBind();
 }
예제 #2
0
파일: BaseMasterPage.cs 프로젝트: Hcq/Rain
        public string linkurl(string _key, params object[] _params)
        {
            Rain.Model.url_rewrite urlRewrite = new Rain.BLL.url_rewrite().GetList()[(object)_key] as Rain.Model.url_rewrite;
            if (urlRewrite == null)
            {
                return(string.Empty);
            }
            string linkStartString = this.GetLinkStartString(HttpContext.Current.Request.RawUrl.ToLower(), HttpContext.Current.Request.Url.Authority.ToLower());

            if (urlRewrite.url_rewrite_items.Count == 0)
            {
                if (this.config.staticstatus > 0)
                {
                    if (_params.Length > 0)
                    {
                        return(linkStartString + this.GetUrlExtension(urlRewrite.page, this.config.staticextension) + string.Format("{0}", _params));
                    }
                    return(linkStartString + this.GetUrlExtension(urlRewrite.page, this.config.staticextension));
                }
                if (_params.Length > 0)
                {
                    return(linkStartString + urlRewrite.page + string.Format("{0}", _params));
                }
                return(linkStartString + urlRewrite.page);
            }
            foreach (url_rewrite_item urlRewriteItem in urlRewrite.url_rewrite_items)
            {
                if (this.IsUrlMatch(urlRewriteItem, _params))
                {
                    if (this.config.staticstatus > 0)
                    {
                        return(linkStartString + string.Format(this.GetUrlExtension(urlRewriteItem.path, this.config.staticextension), _params));
                    }
                    string str = Regex.Replace(string.Format(urlRewriteItem.path, _params), urlRewriteItem.pattern, urlRewriteItem.querystring, RegexOptions.IgnoreCase);
                    if (str.Length > 0)
                    {
                        str = "?" + str;
                    }
                    return(linkStartString + urlRewrite.page + str);
                }
            }
            return(string.Empty);
        }
예제 #3
0
        private void MarkTemplates(string buildPath, string skinName)
        {
            string mapPath = Utils.GetMapPath(string.Format("{0}aspx/{1}/", (object)this.siteConfig.webpath, (object)buildPath));
            List <Rain.Model.url_rewrite> list = new Rain.BLL.url_rewrite().GetList("");
            DirectoryInfo directoryInfo        = new DirectoryInfo(mapPath);

            if (Directory.Exists(mapPath))
            {
                foreach (FileSystemInfo file in directoryInfo.GetFiles())
                {
                    file.Delete();
                }
            }
            foreach (Rain.Model.url_rewrite urlRewrite in list)
            {
                if (File.Exists(Utils.GetMapPath(string.Format("{0}templates/{1}/{2}", (object)this.siteConfig.webpath, (object)skinName, (object)urlRewrite.templet))))
                {
                    PageTemplate.GetTemplate(this.siteConfig.webpath, "templates", skinName, urlRewrite.templet, urlRewrite.page, urlRewrite.inherit, buildPath, urlRewrite.channel, urlRewrite.pagesize, 1);
                }
            }
        }
예제 #4
0
        private bool DoAdd()
        {
            Rain.BLL.url_rewrite   urlRewrite = new Rain.BLL.url_rewrite();
            Rain.Model.url_rewrite model      = new Rain.Model.url_rewrite();
            model.name    = this.txtName.Text.Trim();
            model.type    = this.ddlType.SelectedValue;
            model.channel = this.ddlChannel.SelectedValue;
            model.page    = this.txtPage.Text.Trim();
            model.inherit = this.txtInherit.Text.Trim();
            model.templet = this.txtTemplet.Text.Trim();
            if (!string.IsNullOrEmpty(this.txtPageSize.Text.Trim()))
            {
                model.pagesize = this.txtPageSize.Text.Trim();
            }
            List <url_rewrite_item> urlRewriteItemList = new List <url_rewrite_item>();

            string[] values1 = this.Request.Form.GetValues("itemPath");
            string[] values2 = this.Request.Form.GetValues("itemPattern");
            string[] values3 = this.Request.Form.GetValues("itemQuerystring");
            if (values1 != null && values2 != null && values3 != null)
            {
                for (int index = 0; index < values1.Length; ++index)
                {
                    urlRewriteItemList.Add(new url_rewrite_item()
                    {
                        path        = values1[index],
                        pattern     = values2[index],
                        querystring = values3[index]
                    });
                }
            }
            model.url_rewrite_items = urlRewriteItemList;
            if (!urlRewrite.Add(model))
            {
                return(false);
            }
            this.AddAdminLog(DTEnums.ActionEnum.Add.ToString(), "添加URL配置信息:" + model.name);
            return(true);
        }
예제 #5
0
파일: search.cs 프로젝트: Hcq/Rain
        private string get_url_rewrite(int channel_id, string call_index, int id)
        {
            if (channel_id == 0)
            {
                return(string.Empty);
            }
            string str         = id.ToString();
            string channelName = new Rain.BLL.channel().GetChannelName(channel_id);

            if (string.IsNullOrEmpty(channelName))
            {
                return(string.Empty);
            }
            if (!string.IsNullOrEmpty(call_index))
            {
                str = call_index;
            }
            Rain.Model.url_rewrite info = new Rain.BLL.url_rewrite().GetInfo(channelName, "detail");
            if (info == null)
            {
                return(string.Empty);
            }
            return(this.linkurl(info.name, (object)str));
        }
예제 #6
0
        public void getpublishsite(HttpContext context)
        {
            string        queryString1  = DTRequest.GetQueryString("lang");
            string        queryString2  = DTRequest.GetQueryString("name");
            string        queryString3  = DTRequest.GetQueryString("type");
            StringBuilder stringBuilder = new StringBuilder();

            Rain.BLL.url_rewrite          urlRewrite1    = new Rain.BLL.url_rewrite();
            List <Rain.Model.url_rewrite> urlRewriteList = !string.IsNullOrEmpty(queryString3) ? urlRewrite1.GetList(queryString2, queryString3) : urlRewrite1.GetList(queryString2);
            string empty = string.Empty;

            stringBuilder.Append("[");
            if (queryString3 == "indexlist")
            {
                foreach (Rain.Model.url_rewrite urlRewrite2 in !string.IsNullOrEmpty("list") ? urlRewrite1.GetList(queryString2, "list") : urlRewrite1.GetList(queryString2, "list"))
                {
                    if (urlRewrite2.url_rewrite_items.Count > 0 && (urlRewrite2.channel == string.Empty || urlRewrite2.channel == queryString2))
                    {
                        foreach (url_rewrite_item urlRewriteItem in urlRewrite2.url_rewrite_items)
                        {
                            if (stringBuilder.ToString().Length > 1)
                            {
                                stringBuilder.Append(",");
                            }
                            switch (urlRewrite2.type.ToLower())
                            {
                            case "list":
                                stringBuilder.Append(this.GetArticleIndexUrlList(queryString1, queryString2, urlRewrite2.page, urlRewriteItem.pattern, urlRewriteItem.path, urlRewriteItem.querystring, Utils.StrToInt(urlRewrite2.pagesize, 0)));
                                break;
                            }
                        }
                    }
                }
            }
            else
            {
                foreach (Rain.Model.url_rewrite urlRewrite2 in urlRewriteList)
                {
                    if (urlRewrite2.url_rewrite_items.Count > 0 && (urlRewrite2.channel == string.Empty || urlRewrite2.channel == queryString2))
                    {
                        foreach (url_rewrite_item urlRewriteItem in urlRewrite2.url_rewrite_items)
                        {
                            if (urlRewriteItem.querystring == string.Empty)
                            {
                                string str1 = string.Format("{0}/{1}/{2}", (object)"aspx", (object)queryString1, (object)urlRewrite2.page);
                                string str2 = string.Format("{0}/{1}/{2}", (object)"html", (object)queryString1, (object)Utils.GetUrlExtension(urlRewriteItem.pattern, this.config.staticextension));
                                if (stringBuilder.ToString().Length > 1)
                                {
                                    stringBuilder.Append(",");
                                }
                                stringBuilder.AppendFormat("\"{0}tools/admin_ajax.ashx?action=get_builder_html&lang={1}&html_filename=&indexy=&aspx_filename={2}&catalogue={3}\"", (object)this.config.webpath, (object)queryString1, (object)str1, (object)str2);
                            }
                            else
                            {
                                if (stringBuilder.ToString().Length > 1)
                                {
                                    stringBuilder.Append(",");
                                }
                                switch (urlRewrite2.type.ToLower())
                                {
                                case "list":
                                    stringBuilder.Append(this.GetArticleUrlList(queryString1, queryString2, urlRewrite2.page, urlRewriteItem.pattern, urlRewriteItem.path, urlRewriteItem.querystring, Utils.StrToInt(urlRewrite2.pagesize, 0)));
                                    break;

                                case "detail":
                                    stringBuilder.Append(this.GetDetailUrlList(queryString1, queryString2, urlRewrite2.page, urlRewriteItem.pattern, urlRewriteItem.path, urlRewriteItem.querystring));
                                    break;

                                case "category":
                                    stringBuilder.Append(this.GetCategoryUrlList(queryString1, queryString2, urlRewrite2.page, urlRewriteItem.pattern, urlRewriteItem.path, urlRewriteItem.querystring, Utils.StrToInt(urlRewrite2.pagesize, 0)));
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            stringBuilder.Append("]");
            context.Response.Write(stringBuilder.ToString());
        }
예제 #7
0
        private bool DoEdit(int _id)
        {
            Rain.BLL.channel   channel = new Rain.BLL.channel();
            Rain.Model.channel model1  = channel.GetModel(_id);
            string             name    = model1.name;

            model1.site_id   = Utils.StrToInt(this.ddlSiteId.SelectedValue, 0);
            model1.name      = this.txtName.Text.Trim();
            model1.title     = this.txtTitle.Text.Trim();
            model1.is_albums = 0;
            model1.is_attach = 0;
            model1.is_spec   = 0;
            if (this.cbIsAlbums.Checked)
            {
                model1.is_albums = 1;
            }
            if (this.cbIsAttach.Checked)
            {
                model1.is_attach = 1;
            }
            if (this.cbIsSpec.Checked)
            {
                model1.is_spec = 1;
            }
            model1.sort_id = Utils.StrToInt(this.txtSortId.Text.Trim(), 99);
            List <channel_field> channelFieldList = new List <channel_field>();

            for (int index = 0; index < this.cblAttributeField.Items.Count; ++index)
            {
                if (this.cblAttributeField.Items[index].Selected)
                {
                    string[] strArray = this.cblAttributeField.Items[index].Value.Split(',');
                    channelFieldList.Add(new channel_field()
                    {
                        channel_id = model1.id,
                        field_id   = Utils.StrToInt(strArray[1], 0)
                    });
                }
            }
            model1.channel_fields = channelFieldList;
            if (!channel.Update(model1))
            {
                return(false);
            }
            Rain.BLL.url_rewrite urlRewrite = new Rain.BLL.url_rewrite();
            urlRewrite.Remove("channel", name);
            string[] values1 = this.Request.Form.GetValues("item_type");
            string[] values2 = this.Request.Form.GetValues("item_name");
            string[] values3 = this.Request.Form.GetValues("item_page");
            string[] values4 = this.Request.Form.GetValues("item_templet");
            string[] values5 = this.Request.Form.GetValues("item_pagesize");
            string[] values6 = this.Request.Form.GetValues("item_rewrite");
            if (values1 != null && values2 != null && (values3 != null && values4 != null) && values5 != null && values6 != null && (values1.Length == values2.Length && values2.Length == values3.Length && (values3.Length == values4.Length && values4.Length == values5.Length) && values5.Length == values6.Length))
            {
                for (int index = 0; index < values1.Length; ++index)
                {
                    Rain.Model.url_rewrite model2 = new Rain.Model.url_rewrite()
                    {
                        name = values2[index].Trim(),
                        type = values1[index].Trim(),
                        page = values3[index].Trim()
                    };
                    model2.inherit = this.GetInherit(model2.type);
                    model2.templet = values4[index].Trim();
                    if (Utils.StrToInt(values5[index].Trim(), 0) > 0)
                    {
                        model2.pagesize = values5[index].Trim();
                    }
                    model2.channel = model1.name;
                    List <url_rewrite_item> urlRewriteItemList = new List <url_rewrite_item>();
                    string str1     = values6[index];
                    char[] chArray1 = new char[1] {
                        '&'
                    };
                    foreach (string str2 in str1.Split(chArray1))
                    {
                        char[] chArray2 = new char[1] {
                            ','
                        };
                        string[] strArray = str2.Split(chArray2);
                        if (strArray.Length == 3)
                        {
                            urlRewriteItemList.Add(new url_rewrite_item()
                            {
                                path        = strArray[0],
                                pattern     = strArray[1],
                                querystring = strArray[2]
                            });
                        }
                    }
                    model2.url_rewrite_items = urlRewriteItemList;
                    urlRewrite.Add(model2);
                }
            }
            this.AddAdminLog(DTEnums.ActionEnum.Edit.ToString(), "修改频道" + model1.title);
            return(true);
        }