showauthor.cs

来自「动易SiteFactory&#8482 网上商店系统1.0源代码」· CS 代码 · 共 162 行

CS
162
字号
namespace PowerEasy.WebSite
{
    using PowerEasy.Accessories;
    using PowerEasy.Common;
    using PowerEasy.Components;
    using PowerEasy.Model.TemplateProc;
    using PowerEasy.Templates;
    using PowerEasy.Web.UI;
    using System;
    using System.Collections.Specialized;
    using System.Globalization;
    using System.IO;
    using System.Text;
    using System.Web;
    using System.Web.UI;

    public class ShowAuthor : BasePage
    {
        private string GetTemplatePath()
        {
            string str = string.Empty;
            string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(this.Page.Request.FilePath);
            string str3 = string.Empty;
            foreach (FrontTemplate template in SiteConfig.FrontTemplateList)
            {
                if (string.Compare(fileNameWithoutExtension, template.Key, true, CultureInfo.CurrentCulture) == 0)
                {
                    str = template.Value;
                    continue;
                }
                if (string.Compare("DynamicPageDefault", template.Key, true, CultureInfo.CurrentCulture) == 0)
                {
                    str3 = template.Value;
                }
            }
            if (string.IsNullOrEmpty(str))
            {
                return str3;
            }
            return str;
        }

        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
        }

        public static string RebuildPageName(string filename, NameValueCollection query)
        {
            if (string.IsNullOrEmpty(filename))
            {
                return string.Empty;
            }
            string[] strArray = filename.Split(new char[] { '/' });
            if (strArray.Length > 0)
            {
                filename = strArray[strArray.Length - 1];
            }
            if (filename.IndexOf('?') > 0)
            {
                filename = filename.Substring(0, filename.IndexOf('?') - 1);
            }
            StringBuilder builder = new StringBuilder(filename);
            if (query.Count > 0)
            {
                bool flag = false;
                for (int i = 0; i < query.Count; i++)
                {
                    if (i == 0)
                    {
                        builder.Append("?");
                    }
                    else
                    {
                        builder.Append("&");
                    }
                    if (query.GetKey(i) == "page")
                    {
                        builder.Append("page={$pageid/}");
                        flag = true;
                    }
                    else
                    {
                        builder.Append(query.GetKey(i) + "=" + DataSecurity.FilterBadChar(query.Get(i)));
                    }
                }
                if (!flag)
                {
                    if (builder.Length > filename.Length)
                    {
                        builder.Append("&page={$pageid/}");
                    }
                    else
                    {
                        builder.Append("?page={$pageid/}");
                    }
                }
            }
            else
            {
                builder.Append("?page={$pageid/}");
            }
            return builder.ToString();
        }

        protected override void Render(HtmlTextWriter writer)
        {
            string authorName = BasePage.RequestString("authorname");
            if (!Author.ExistsPassedAuthor(authorName))
            {
                WriteErrMsg("您要查看的作者不存在!", SiteConfig.SiteInfo.VirtualPath + "Default.aspx");
            }
            string str2 = BasePage.RequestString("updatetime");
            DateTime? nullable = null;
            if (!string.IsNullOrEmpty(str2))
            {
                nullable = new DateTime?(DataConverter.CDate(str2));
            }
            string templatePath = this.GetTemplatePath();
            NameValueCollection values = new NameValueCollection();
            values.Add("authorname", DataSecurity.FilterBadChar(authorName));
            if (!nullable.HasValue)
            {
                values.Add("updatetime", string.Empty);
            }
            else
            {
                values.Add("updatetime", nullable.Value.ToString("yyyy-MM-dd"));
            }
            if (!string.IsNullOrEmpty(templatePath))
            {
                TemplateInfo templateInfo = new TemplateInfo();
                templateInfo.QueryList = values;
                templateInfo.PageName = RebuildPageName(base.Request.Url.LocalPath, base.Request.QueryString);
                templateInfo.TemplateContent = Template.GetTemplateContent(templatePath);
                templateInfo.RootPath = HttpContext.Current.Request.PhysicalApplicationPath;
                templateInfo.CurrentPage = DataConverter.CLng(base.Request.QueryString["page"], 1);
                templateInfo.PageType = 1;
                templateInfo = TemplateTransform.GetHtml(templateInfo);
                writer.Write(templateInfo.TemplateContent);
            }
            else
            {
                WriteErrMsg("您查看的作者未设置模板!", SiteConfig.SiteInfo.VirtualPath + "Default.aspx");
            }
        }

        public static void WriteErrMsg(string errorMessage)
        {
            WriteErrMsg(errorMessage, string.Empty);
        }

        public static void WriteErrMsg(string errorMessage, string returnurl)
        {
            HttpContext.Current.Items["ErrorMessage"] = errorMessage;
            HttpContext.Current.Items["ReturnUrl"] = returnurl;
            HttpContext.Current.Server.Transfer("~/Prompt/ShowError.aspx");
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?