Common/PageTemplate.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.IO;
using System.Xml;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections;

namespace Common
{
    /// <summary>
    /// Template为页面模板类.
    /// </summary>
    public abstract class PageTemplate
    {
        public static Regex[] r = new Regex[1];

        static PageTemplate()
        {
            RegexOptions options = RegexOptions.None;
            r[0] = new Regex(@"<%template src=/([^\[\]\{\}\s]+)/%>", options);
        }

        /// <summary>
        /// 获得模板字符串,从设置中的模板路径来读取模板文件.
        /// </summary>
        /// <param name="sitePath">站点目录</param>
        /// <param name="skinName">模板名</param>
        /// <param name="templateName">模板文件的文件名称</param>
        /// <param name="nest">嵌套次数</param>
        /// <returns>string值,如果失败则为"",成功则为模板内容的string</returns>
        public static string GetTemplate(string sitePath, string skinName, string templateName, int nest)
        {
            StringBuilder strReturn = new StringBuilder(220000); //返回的字符
            string tempPath = sitePath + "templates";
            string pathFormatStr = "{0}\\{1}\\{2}"; //模板文件路径匹配格式
            string createFilePath; //模板文件物理路径

            //超过5次嵌套退出
            if (nest < 1)
            {
                nest = 1;
            }
            else if (nest > 5)
            {
                return "";
            }
            //检查模板文件是否存在
            if (!File.Exists(string.Format(pathFormatStr, Utils.GetMapPath(tempPath), skinName, templateName)))
            {
                return "";
            }
            //取得模板文件物理路径
            createFilePath = string.Format(pathFormatStr, Utils.GetMapPath(tempPath), skinName, templateName);

            //开始读写文件
            using (StreamReader objReader = new StreamReader(createFilePath, Encoding.UTF8))
            {
                StringBuilder textOutput = new StringBuilder(70000);
                textOutput.Append(objReader.ReadToEnd());
                objReader.Close();
后面还有 56 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。