コード例 #1
0
        /// <summary>
        /// 获取生成静态地址
        /// </summary>
        /// <param name="context"></param>
        public void getpublishsite(HttpContext context)
        {
            string lang = DTRequest.GetQueryString("lang");
            string name = DTRequest.GetQueryString("name");
            string type = DTRequest.GetQueryString("type");

            StringBuilder sbjson = new StringBuilder();


            //获得URL配置列表
            BLL.url_rewrite          bll = new BLL.url_rewrite();
            List <Model.url_rewrite> ls  = (!string.IsNullOrEmpty(type)) ? bll.GetList(name, type) : bll.GetList(name);
            string linkurl = string.Empty;

            sbjson.Append("[");
            if (type == "indexlist")
            {
                #region 针对特殊需求
                List <Model.url_rewrite> ls2 = (!string.IsNullOrEmpty("list")) ? bll.GetList(name, "list") : bll.GetList(name, "list");
                foreach (Model.url_rewrite modeltrewrite2 in ls2)
                {
                    if (modeltrewrite2.url_rewrite_items.Count > 0)
                    {
                        if (modeltrewrite2.channel == string.Empty || modeltrewrite2.channel == name)
                        {
                            //遍历URL字典的子节点
                            foreach (Model.url_rewrite_item item2 in modeltrewrite2.url_rewrite_items)
                            {
                                if (sbjson.ToString().Length > 1)
                                {
                                    sbjson.Append(",");
                                }
                                switch (modeltrewrite2.type.ToLower())
                                {
                                case "list":
                                    sbjson.Append(GetArticleIndexUrlList(lang, name, modeltrewrite2.page, item2.pattern, item2.path, item2.querystring, objchannel.GetPageSize(name)));
                                    break;
                                }
                            }
                        }
                    }
                }
                #endregion
            }
            else
            {
                foreach (Model.url_rewrite modeltrewrite in ls)
                {
                    if (modeltrewrite.url_rewrite_items.Count > 0)
                    {
                        if (modeltrewrite.channel == string.Empty || modeltrewrite.channel == name)
                        {
                            //遍历URL字典的子节点
                            foreach (Model.url_rewrite_item item in modeltrewrite.url_rewrite_items)
                            {
                                if (item.querystring == string.Empty)
                                {
                                    linkurl = string.Format("{0}/{1}/{2}", DTKeys.DIRECTORY_REWRITE_ASPX, lang, modeltrewrite.page);
                                    string HTMLPattern = string.Format("{0}/{1}/{2}", DTKeys.DIRECTORY_REWRITE_HTML, lang, Utils.GetUrlExtension(item.pattern, config.staticextension)); //替换扩展名
                                    if (sbjson.ToString().Length > 1)
                                    {
                                        sbjson.Append(",");
                                    }
                                    sbjson.AppendFormat(urlstr, config.webpath, lang, linkurl, HTMLPattern);
                                }
                                else
                                {
                                    if (sbjson.ToString().Length > 1)
                                    {
                                        sbjson.Append(",");
                                    }
                                    switch (modeltrewrite.type.ToLower())
                                    {
                                    case "list":
                                        sbjson.Append(GetArticleUrlList(lang, name, modeltrewrite.page, item.pattern, item.path, item.querystring, objchannel.GetPageSize(name)));
                                        break;

                                    case "detail":
                                        sbjson.Append(GetDetailUrlList(lang, name, modeltrewrite.page, item.pattern, item.path, item.querystring));
                                        break;

                                    case "category":
                                        sbjson.Append(GetCategoryUrlList(lang, name, modeltrewrite.page, item.pattern, item.path, item.querystring, objchannel.GetPageSize(name)));
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            sbjson.Append("]");
            context.Response.Write(sbjson.ToString());
        }