Backup/Discuz.Forum/ForumPageTemplate.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Data;
using System.Text.RegularExpressions;
using Discuz.Common;
namespace Discuz.Forum
{
/// <summary>
/// 论坛模板生成类
/// </summary>
public class ForumPageTemplate : PageTemplate
{
/// <summary>
/// 解析特殊变量
/// </summary>
/// <param name="forumPath">模板路径</param>
/// <param name="skinName">皮肤名</param>
/// <param name="strTemplate">模板内容</param>
/// <returns></returns>
public override string ReplaceSpecialTemplate(string forumPath,string skinName,string strTemplate)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append(strTemplate);
Match m;
Regex r = new Regex(@"({([^\[\]/\{\}='\s]+)})", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Compiled);
for (m = r.Match(strTemplate); m.Success; m = m.NextMatch())
{
if (m.Groups[0].ToString() == "{forumversion}")
sb = sb.Replace(m.Groups[0].ToString(), Utils.GetAssemblyVersion());
else if (m.Groups[0].ToString() == "{forumproductname}")
sb = sb.Replace(m.Groups[0].ToString(), Utils.GetAssemblyProductName());
}
foreach(DataRow dr in GetTemplateVarList(forumPath,skinName).Rows)
{
sb = sb.Replace(dr["variablename"].ToString().Trim(), dr["variablevalue"].ToString().Trim());
}
return sb.ToString();
}
/// <summary>
/// 获得模板变量列表
/// </summary>
/// <param name="forumpath">模板路径</param>
/// <param name="skinName">皮肤名</param>
/// <returns></returns>
public static DataTable GetTemplateVarList(string forumpath,string skinName)
{
Discuz.Cache.DNTCache cache = Cache.DNTCache.GetCacheService();
DataTable dt = cache.RetrieveObject("/Forum/" + skinName + "/TemplateVariable") as DataTable;
if(dt == null)
{
DataSet dsSrc = new DataSet("template");
string[] filename = { Utils.GetMapPath(forumpath + "templates/" + skinName + "/templatevariable.xml") };
if (Utils.FileExists(filename[0]))
{
后面还有 29 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
